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/rospirotorg.ru/bitrix/modules/sale/lib/controller/ |
Upload File : |
<?php namespace Bitrix\Sale\Controller; use Bitrix\Main\Error; use Bitrix\Sale\Delivery\Requests; use Bitrix\Sale\Repository\ShipmentRepository; /** * Class DeliveryRequest * @package Bitrix\Sale\Controller */ class DeliveryRequest extends \Bitrix\Main\Engine\Controller { /** * @param array $shipmentIds * @param array $additional * @param int|null $deliveryId * @return Requests\Result[]|null */ public function createAction(array $shipmentIds, array $additional = [], int $deliveryId = null) { if (!$this->checkPermission('U')) { return null; } if (is_null($deliveryId)) { if ($shipmentIds && $shipmentIds[0]) { $shipment = ShipmentRepository::getInstance()->getById((int)$shipmentIds[0]); if ($shipment && $shipment->getDelivery()) { $deliveryId = $shipment->getDelivery()->getId(); } } } /** @var Requests\Result $result */ $result = Requests\Manager::createDeliveryRequest($deliveryId, $shipmentIds, $additional); if (!$result->isSuccess()) { $this->addErrors($result->getErrors()); return null; } return [ 'result' => true, 'message' => $this->getMessageFromResult($result) ]; } /** * @param int $requestId * @param string $actionType * @param array $additional * @return array|null */ public function executeAction(int $requestId, string $actionType, array $additional = []) { if (!$this->checkPermission('U')) { return null; } /** @var Requests\Result $result */ $result = Requests\Manager::executeDeliveryRequestAction($requestId, $actionType, $additional); if (!$result->isSuccess()) { $this->addErrors($result->getErrors()); return null; } return [ 'result' => true, 'message' => $this->getMessageFromResult($result) ]; } /** * @param int $requestId * @return array|null */ public function deleteAction(int $requestId) { if (!$this->checkPermission('U')) { return null; } /** @var Requests\Result $result */ $result = Requests\Manager::deleteDeliveryRequest($requestId); if (!$result->isSuccess()) { $this->addErrors($result->getErrors()); return null; } return [ 'result' => true, 'message' => $this->getMessageFromResult($result) ]; } /** * @param Requests\Result $result * @return string */ private function getMessageFromResult(Requests\Result $result): string { return implode( '; ', array_map( function ($message) { return $message->getMessage(); }, $result->getMessages() ) ); } /** * @param string $permissionType * @return bool */ private function checkPermission(string $permissionType): bool { $result = $GLOBALS['APPLICATION']->GetGroupRight('sale') >= $permissionType; if (!$result) { $this->addError(new Error('Access denied')); } return $result; } }