Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/cvetdv.ru/bitrix/modules/sale/handlers/delivery/additional/ruspost/ |
Upload File : |
<? namespace Sale\Handlers\Delivery\Additional\RusPost; use Bitrix\Main\Error; use \Bitrix\Sale\Delivery\Services; use Bitrix\Sale\Result; /** * Class Helper * @package Sale\Handlers\Delivery\Additional\RusPost */ class Helper { /** * @param int $deliveryId * @param bool $useCache * @return array * @throws \Bitrix\Main\ArgumentNullException * @throws \Bitrix\Main\SystemException */ public static function getEnabledShippingPointsList($deliveryId, $useCache = true) { $deliveryId = (int)$deliveryId; if($deliveryId <= 0) { return []; } if(!($deliveryService = Services\Manager::getObjectById($deliveryId))) { return []; } if($useCache) { $ttl = 86400; //day $cacheId = "SaleHandlersDeliveryAdditionalRusPost". $deliveryId. "ShippingPoints". md5(serialize($deliveryService->getConfigValues()) ); $cacheManager = \Bitrix\Main\Application::getInstance()->getManagedCache(); if($cacheManager->read($ttl, $cacheId)) { return $cacheManager->get($cacheId); } } $res = self::getEnabledShippingPointsListResult($deliveryId); $result = $res->getData(); if($useCache) { $cacheManager->set($cacheId, $result); } return $result; } /** * @param int $deliveryId * @return Result * @throws \Bitrix\Main\ArgumentNullException * @throws \Bitrix\Main\SystemException */ public static function getEnabledShippingPointsListResult($deliveryId) { $result = new Result(); $deliveryId = (int)$deliveryId; if($deliveryId <= 0) { $result->addError(new Error('deliveryId is less than zero')); return $result; } if(!($deliveryService = Services\Manager::getObjectById($deliveryId))) { $result->addError(new Error('Can\t obtain delivery object')); return $result; } /** @var Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Handler $deliveryRequest*/ if(!($deliveryRequest = $deliveryService->getDeliveryRequestHandler())) { $result->addError(new Error('Can\t obtain request handler')); return $result; } if(get_class($deliveryRequest) != 'Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Handler') { $result->addError(new Error('Can\t obtain class Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Handler')); return $result; } $points = []; /** @var Result $res */ $res = $deliveryRequest->send('USER_SETTINGS', []); if($res->isSuccess()) { $data = $res->getData(); if(is_array($data['shipping-points'])) { foreach($data['shipping-points'] as $sPoint) { if($sPoint['enabled'] == 1) { $points[$sPoint['operator-postcode']] = $sPoint; } } } $result->setData($points); } else { $result->addErrors($res->getErrors()); } return $result; } /** * @param \Sale\Handlers\Delivery\AdditionalHandler $deliveryService * @return array */ public static function getSelectedShippingPoint($deliveryService) { if(!$deliveryService) { return []; } $result = []; $config = $deliveryService->getConfigValues(); if(isset($config['MAIN']['SHIPPING_POINT']['VALUE'])) { $result = $config['MAIN']['SHIPPING_POINT']; } return $result; } }