<?phpdeclare(strict_types=1);namespace App\CoreBundle\Model\OrderPdf;use App\CoreBundle\Form\Admin\QuickSearch\QuickSearchFormData;use App\CoreBundle\Model\UploadedFile\UploadedFileFacade;use Doctrine\ORM\EntityManagerInterface;use WPO\WC\PDF_Invoices\Compatibility\Order;class OrderPdfFacade{ /** * @var \Doctrine\ORM\EntityManagerInterface */ protected $em; /** * @var \App\CoreBundle\Model\OrderPdf\OrderPdfRepository */ protected $orderPdfRepository; /** * @var \App\CoreBundle\Model\OrderPdf\OrderPdfFactoryInterface */ protected $orderPdfFactory; /** * @var \App\CoreBundle\Model\UploadedFile\UploadedFileFacade */ protected $uploadedFileFacade; public function __construct( EntityManagerInterface $em, OrderPdfRepository $orderPdfRepository, OrderPdfFactoryInterface $orderPdfFactory, UploadedFileFacade $uploadedFileFacade ) { $this->em = $em; $this->orderPdfRepository = $orderPdfRepository; $this->orderPdfFactory = $orderPdfFactory; $this->uploadedFileFacade = $uploadedFileFacade; } /** * @param int $orderPdfId * @return \App\CoreBundle\Model\OrderPdf\OrderPdf */ public function getById(int $orderPdfId): OrderPdf { return $this->orderPdfRepository->getById($orderPdfId); } /** * @return \App\CoreBundle\Model\OrderPdf\OrderPdf[] */ public function getAll(): array { return $this->orderPdfRepository->getAll(); } /** * @param \App\CoreBundle\Model\OrderPdf\OrderPdfData $orderPdfata * @return \App\CoreBundle\Model\OrderPdf\OrderPdf */ public function create(OrderPdfData $orderPdfData): OrderPdf {// if (!$this->em->isOpen()) {// $this->em = $this->em->create(// $this->em->getConnection(),// $this->em->getConfiguration()// );// } $orderPdf = $this->orderPdfFactory->create($orderPdfData); $this->em->persist($orderPdf); $this->em->flush(); if (!empty($orderPdfData->file->uploadedFiles)) { $this->uploadedFileFacade->manageFiles($orderPdf, $orderPdfData->file); } return $orderPdf; } /** * @param int $orderPdfId * @param \App\CoreBundle\Model\OrderPdf\OrderPdfData $orderPdfata * @return \App\CoreBundle\Model\OrderPdf\OrderPdf */ public function edit(int $orderPdfId, OrderPdfData $orderPdfData): OrderPdf { $orderPdf = $this->orderPdfRepository->getById($orderPdfId); $orderPdf->edit($orderPdfData); $this->em->flush(); if (!empty($orderPdfData->file->uploadedFiles)) { $this->uploadedFileFacade->manageFiles($orderPdf, $orderPdfData->file); } return $orderPdf; } /** * @param OrderPdf $orderPdf * @param array $orders * @return void */ public function refreshOrders(OrderPdf $orderPdf, array $orders): void { $oldOrders = $orderPdf->getOrders(); } /** * @param \App\CoreBundle\Form\Admin\QuickSearch\QuickSearchFormData $quickSearchData * @return \Doctrine\ORM\QueryBuilder */ public function getOrderPdfListQueryBuilderByQuickSearchData(QuickSearchFormData $quickSearchData) { return $this->orderPdfRepository->getOrderPdfListQueryBuilderByQuickSearchData( $quickSearchData ); } /** * @param int $orderPdfId */ public function deleteById($orderPdfId) { $orderPdf = $this->orderPdfRepository->getById($orderPdfId); $this->em->remove($orderPdf); $this->em->flush(); }}