* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License version 3.0 */ namespace PrestaShop\Module\PsxMarketingWithGoogle\Provider; use Carrier; use Currency; use Language; use PrestaShop\Module\PsxMarketingWithGoogle\Adapter\ConfigurationAdapter; use PrestaShop\Module\PsxMarketingWithGoogle\Builder\CarrierBuilder; use PrestaShop\Module\PsxMarketingWithGoogle\DTO\Carrier as DTOCarrier; use RangePrice; use RangeWeight; class CarrierDataProvider { /** * @var ConfigurationAdapter */ private $configurationAdapter; /** * @var CarrierBuilder */ private $carrierBuilder; public function __construct( ConfigurationAdapter $configurationAdapter, CarrierBuilder $carrierBuilder ) { $this->configurationAdapter = $configurationAdapter; $this->carrierBuilder = $carrierBuilder; } public function getFormattedData(): array { $language = new Language($this->configurationAdapter->get('PS_LANG_DEFAULT')); $currency = new Currency($this->configurationAdapter->get('PS_CURRENCY_DEFAULT')); $carriers = Carrier::getCarriers($language->id, false, false, false, null, Carrier::ALL_CARRIERS); /** @var DTOCarrier[] $carrierLines */ $carrierLines = $this->carrierBuilder->buildCarriers( $carriers, $language, $currency, $this->configurationAdapter->get('PS_WEIGHT_UNIT') ); return $carrierLines; } /** * @param array $deliveryPriceByRange * * @return false|RangeWeight|RangePrice * * @throws \PrestaShopDatabaseException * @throws \PrestaShopException */ public function getCarrierRange(array $deliveryPriceByRange) { if (isset($deliveryPriceByRange['id_range_weight'])) { return new RangeWeight($deliveryPriceByRange['id_range_weight']); } if (isset($deliveryPriceByRange['id_range_price'])) { return new RangePrice($deliveryPriceByRange['id_range_price']); } return false; } }