* @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 AvizeService { protected $marketplaceAvizeRepository; protected $marketplaceProductRepository; protected $facturisAvizeRepository; protected $facturisCustomerRepository; protected $facturisProductRepository; protected $settingsRepository; public function __construct( \Core\App\Repository\Marketplace\AvizeInterface $marketplaceAvizeRepository, \Core\App\Repository\Marketplace\ProductInterface $marketplaceProductRepository, \Core\App\Repository\Facturis\CustomerInterface $facturisCustomerRepository, \Core\App\Repository\Facturis\ProductInterface $facturisProductRepository, \Core\App\Repository\Facturis\AvizeInterface $facturisAvizeRepository, \Core\App\Repository\Marketplace\SettingsInterface $settingsRepository ) { $this->marketplaceAvizeRepository = $marketplaceAvizeRepository; $this->marketplaceProductRepository = $marketplaceProductRepository; $this->facturisAvizeRepository = $facturisAvizeRepository; $this->facturisCustomerRepository = $facturisCustomerRepository; $this->facturisProductRepository = $facturisProductRepository; $this->settingsRepository = $settingsRepository; } public function sync() { $facturisCustomers = $this->facturisCustomerRepository->getAll(); $facturisProducts = $this->facturisProductRepository->getAll(); $this->marketplaceAvizeRepository->setRemoteCustomers($facturisCustomers); $this->marketplaceAvizeRepository->setRemoteProducts($facturisProducts); $this->marketplaceAvizeRepository->setOrderedDaysAgo($this->settingsRepository->getOptionOrderedDaysAgo()); $this->marketplaceAvizeRepository->setAvizeSerie( $this->settingsRepository->getOptionAvizeSerie() ); $withOutDiscount = true; $marketplaceProducts = $this->marketplaceProductRepository->getAll($withOutDiscount); $this->marketplaceAvizeRepository->setLocalProducts((array) $marketplaceProducts); $this->marketplaceAvizeRepository->setWithDiscount($this->settingsRepository->getOptionWithDiscount()); $marketplaceAvizes = $this->marketplaceAvizeRepository->getAll(); if (!empty($marketplaceAvizes)) { foreach ($marketplaceAvizes as $marketplaceAvize) { $result = $this->facturisAvizeRepository->add($marketplaceAvize); // $this->marketplaceAvizeRepository->addAvize($marketplaceAvize, $result); } } } public function add($orderId) { $result = array(); $facturisCustomers = $this->facturisCustomerRepository->getAll(); $facturisProducts = $this->facturisProductRepository->getAll(); $this->marketplaceAvizeRepository->setRemoteCustomers($facturisCustomers); $this->marketplaceAvizeRepository->setRemoteProducts($facturisProducts); $avizeSerie2 = $this->settingsRepository->getOptionAvizeSerie2(); if (!empty($avizeSerie2)) { $this->marketplaceAvizeRepository->setAvizeSerie($avizeSerie2); } else { $this->marketplaceAvizeRepository->setAvizeSerie($this->settingsRepository->getOptionAvizeSerie()); } $withOutDiscount = true; $marketplaceProducts = $this->marketplaceProductRepository->getAll($withOutDiscount); $this->marketplaceAvizeRepository->setLocalProducts((array) $marketplaceProducts); $this->marketplaceAvizeRepository->setWithDiscount($this->settingsRepository->getOptionWithDiscount()); $marketplaceAvize = $this->marketplaceAvizeRepository->getByOrderId($orderId); if (!empty($marketplaceAvize)) { $result = $this->facturisAvizeRepository->add($marketplaceAvize); $this->marketplaceAvizeRepository->addAvize($marketplaceAvize, $result); return $result; } return $result; } }