You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.5KB

  1. <?php
  2. namespace domain\Document\Document;
  3. use domain\Document\DeliveryNote\DeliveryNoteRepository;
  4. use domain\Document\Invoice\InvoiceRepository;
  5. use domain\Document\Quotation\QuotationRepository;
  6. use domain\_\AbstractRepository;
  7. class DocumentRepository extends AbstractRepository
  8. {
  9. protected DeliveryNoteRepository $deliveryNoteRepository;
  10. protected InvoiceRepository $invoiceRepository;
  11. protected QuotationRepository $quotationRepository;
  12. public function loadDependencies(): void
  13. {
  14. $this->deliveryNoteRepository = $this->loadService(DeliveryNoteRepository::class);
  15. $this->invoiceRepository = $this->loadService(InvoiceRepository::class);
  16. $this->quotationRepository = $this->loadService(QuotationRepository::class);
  17. }
  18. public function getDefaultOptionsSearch(): array
  19. {
  20. return [];
  21. }
  22. public function findOneDocumentByIdAndClass($idDocument, $classDocument)
  23. {
  24. $model = null;
  25. if($idDocument) {
  26. if($classDocument == 'DeliveryNote') {
  27. $model = $this->deliveryNoteRepository->findOneDeliveryNoteById($idDocument);
  28. }
  29. elseif($classDocument == 'Quotation') {
  30. $model = $this->quotationRepository->findOneQuotationById($idDocument);
  31. }
  32. elseif($classDocument == 'Invoice') {
  33. $model = $this->invoiceRepository->findOneInvoiceById($idDocument);
  34. }
  35. }
  36. return $model;
  37. }
  38. }