* @copyright 2007-2021 PrestaShop SA * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA */ namespace Core\App\Service; class InvoiceService { protected $marketplaceInvoiceRepository; protected $marketplaceProductRepository; protected $facturisInvoiceRepository; protected $facturisCustomerRepository; protected $facturisProductRepository; protected $settingsRepository; public function __construct( \Core\App\Repository\Marketplace\InvoiceInterface $marketplaceInvoiceRepository, \Core\App\Repository\Marketplace\ProductInterface $marketplaceProductRepository, \Core\App\Repository\Facturis\CustomerInterface $facturisCustomerRepository, \Core\App\Repository\Facturis\ProductInterface $facturisProductRepository, \Core\App\Repository\Facturis\InvoiceInterface $facturisInvoiceRepository, \Core\App\Repository\Marketplace\SettingsInterface $settingsRepository ) { $this->marketplaceInvoiceRepository = $marketplaceInvoiceRepository; $this->marketplaceProductRepository = $marketplaceProductRepository; $this->facturisInvoiceRepository = $facturisInvoiceRepository; $this->facturisCustomerRepository = $facturisCustomerRepository; $this->facturisProductRepository = $facturisProductRepository; $this->settingsRepository = $settingsRepository; } public function add($orderId) { $facturisCustomers = $this->facturisCustomerRepository->getAll(); $facturisProducts = $this->facturisProductRepository->getAll(); $this->marketplaceInvoiceRepository->setRemoteCustomers($facturisCustomers); $this->marketplaceInvoiceRepository->setRemoteProducts($facturisProducts); /*if(!empty($series)) { $this->marketplaceInvoiceRepository->setInvoiceSerie($series); } else { $this->marketplaceInvoiceRepository->setInvoiceSerie($this->settingsRepository->getOptionProformaSerie()); }*/ $this->marketplaceInvoiceRepository->setInvoiceSerie($this->settingsRepository->getOptionInvoiceSerie()); $withOutDiscount = true; $marketplaceProducts = $this->marketplaceProductRepository->getAll($withOutDiscount); $this->marketplaceInvoiceRepository->setLocalProducts((array) $marketplaceProducts); $this->marketplaceInvoiceRepository->setWithDiscount($this->settingsRepository->getOptionWithDiscount()); $marketplaceInvoice = $this->marketplaceInvoiceRepository->getByOrderId($orderId); if (!empty($marketplaceInvoice)) { $result = $this->facturisInvoiceRepository->add($marketplaceInvoice); // $this->marketplaceInvoiceRepository->addInvoice($marketplaceInvoice, $result); return $result; } } }