2namespace Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests;
5use Bitrix\Main\Localization\Loc;
6use Bitrix\Sale\Delivery\Requests;
7use Bitrix\Sale\Delivery\Requests\ShipmentTable;
8use Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Reference;
10Loc::loadMessages(__FILE__);
18class OrderDelete
extends Base
20 protected $path =
"/1.0/shipment";
21 protected $type =
'DELETE';
22 protected $idsMap =
array();
29 protected function convertResponse($rawData, $requestData)
31 $result =
new Requests\Result();
32 $deleteResults =
array();
33 $idsMapFlipped = array_flip($this->idsMap);
35 if(is_array($rawData[
'errors']))
37 foreach($rawData[
'errors'] as
$error)
39 if(!isset($requestData[
$error[
'position']]))
42 $externalId = $requestData[
$error[
'position']];
43 $internalId = $idsMapFlipped[$externalId];
45 if(!isset($deleteResults[$internalId]))
46 $deleteResults[$internalId] =
new Requests\ShipmentResult($internalId, $externalId);
48 if(
$error[
'error-code'] ==
'NOT_FOUND')
51 $message = Reference::getErrorDescription(
$error[
'error-code'],
'DELETE /1.0/backlog');
53 if(!empty(
$error[
'error-details']))
54 $message .=
' ('.$error[
'error-details'].
')';
56 $deleteResults[$internalId]->addError(
new Main\
Error(
$message));
60 if(is_array($rawData[
'result-ids']))
62 foreach($rawData[
'result-ids'] as $externalId)
64 $internalId = $idsMapFlipped[$externalId];
66 if(!isset($deleteResults[$internalId]))
67 $deleteResults[$internalId] =
new Requests\ShipmentResult($internalId, $externalId);
71 $result->setResults($deleteResults);
80 public function createBody(
array $shipmentIds,
array $additional =
array())
82 $result =
new Requests\Result();
86 '=SHIPMENT_ID' => $shipmentIds
90 while($row =
$res->fetch())
91 if($row[
'EXTERNAL_ID'] <>
'')
92 $this->idsMap[$row[
'SHIPMENT_ID']] = $row[
'EXTERNAL_ID'];
94 if(!empty($this->idsMap))
95 $result->setData(array_values($this->idsMap));
97 $result->addError(
new Main\
Error(Loc::getMessage(
'SALE_DLVRS_ADD_DREQ_ROD_01').
' "'.implode(
'", "',$shipmentIds).
'"'));
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)