%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 13.59.26.221 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/sale/lib/repository/ |
Upload File : |
<?php namespace Bitrix\Sale\Repository; use Bitrix\Sale; /** * Class ShipmentRepository * @package Bitrix\Sale\Repository * @internal */ final class ShipmentRepository { /** @var ShipmentRepository */ private static $instance; /** * ShipmentRepository constructor. */ private function __construct() {} /** * @return ShipmentRepository */ public static function getInstance(): ShipmentRepository { if (is_null(static::$instance)) { static::$instance = new ShipmentRepository(); } return static::$instance; } /** * @param int $id * @return \Bitrix\Sale\Shipment|null */ public function getById(int $id): ?Sale\Shipment { /** @var Sale\Shipment $shipmentClass */ $shipmentClass = Sale\Registry::getInstance(Sale\Registry::REGISTRY_TYPE_ORDER)->getShipmentClassName(); $shipmentRow = $shipmentClass::getList([ 'select' => ['ID', 'ORDER_ID'], 'filter' => [ '=ID' => $id ] ])->fetch(); if (!$shipmentRow) { return null; } return static::getInstance()->getByRow($shipmentRow); } /** * @param array $ids * @return array */ public function getByIds(array $ids): array { $result = []; /** @var Sale\Shipment $shipmentClass */ $shipmentClass = Sale\Registry::getInstance(Sale\Registry::REGISTRY_TYPE_ORDER)->getShipmentClassName(); $shipmentList = $shipmentClass::getList([ 'select' => ['ID', 'ORDER_ID'], 'filter' => [ '=ID' => $ids ] ]); while ($shipmentRow = $shipmentList->fetch()) { $shipment = static::getInstance()->getByRow($shipmentRow); if (is_null($shipment)) { continue; } $result[] = $shipment; } return $result; } /** * @param array $shipmenRow * @return Sale\Shipment|null */ private function getByRow(array $shipmenRow): ?Sale\Shipment { $orderClassName = Sale\Registry::getInstance(Sale\Registry::REGISTRY_TYPE_ORDER)->getOrderClassName(); /** @var Sale\Order $orderClassName */ $order = $orderClassName::load($shipmenRow['ORDER_ID']); if ($order === null) { return null; } $shipmentCollection = $order->getShipmentCollection(); /** @var \Bitrix\Sale\Shipment $shipment */ foreach ($shipmentCollection as $shipment) { if ($shipment->getId() !== (int)$shipmenRow['ID']) { continue; } return $shipment; } return null; } }