1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
orderdelete.php
См. документацию.
1<?
2namespace Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Requests;
3
4use Bitrix\Main;
5use Bitrix\Main\Localization\Loc;
6use Bitrix\Sale\Delivery\Requests;
7use Bitrix\Sale\Delivery\Requests\ShipmentTable;
8use Sale\Handlers\Delivery\Additional\DeliveryRequests\RusPost\Reference;
9
10Loc::loadMessages(__FILE__);
11
18class OrderDelete extends Base
19{
20 protected $path = "/1.0/shipment";
21 protected $type = 'DELETE';
22 protected $idsMap = array(); // array('internalId' => 'externalId', ....)
23
29 protected function convertResponse($rawData, $requestData)
30 {
31 $result = new Requests\Result();
32 $deleteResults = array();
33 $idsMapFlipped = array_flip($this->idsMap);
34
35 if(is_array($rawData['errors']))
36 {
37 foreach($rawData['errors'] as $error)
38 {
39 if(!isset($requestData[$error['position']]))
40 continue;
41
42 $externalId = $requestData[$error['position']];
43 $internalId = $idsMapFlipped[$externalId];
44
45 if(!isset($deleteResults[$internalId]))
46 $deleteResults[$internalId] = new Requests\ShipmentResult($internalId, $externalId);
47
48 if($error['error-code'] == 'NOT_FOUND')
49 continue;
50
51 $message = Reference::getErrorDescription($error['error-code'], 'DELETE /1.0/backlog');
52
53 if(!empty($error['error-details']))
54 $message .= ' ('.$error['error-details'].')';
55
56 $deleteResults[$internalId]->addError(new Main\Error($message));
57 }
58 }
59
60 if(is_array($rawData['result-ids']))
61 {
62 foreach($rawData['result-ids'] as $externalId)
63 {
64 $internalId = $idsMapFlipped[$externalId];
65
66 if(!isset($deleteResults[$internalId]))
67 $deleteResults[$internalId] = new Requests\ShipmentResult($internalId, $externalId);
68 }
69 }
70
71 $result->setResults($deleteResults);
72 return $result;
73 }
74
80 public function createBody(array $shipmentIds, array $additional = array())
81 {
82 $result = new Requests\Result();
83
84 $res = ShipmentTable::getList(array(
85 'filter' => array(
86 '=SHIPMENT_ID' => $shipmentIds
87 )
88 ));
89
90 while($row = $res->fetch())
91 if($row['EXTERNAL_ID'] <> '')
92 $this->idsMap[$row['SHIPMENT_ID']] = $row['EXTERNAL_ID'];
93
94 if(!empty($this->idsMap))
95 $result->setData(array_values($this->idsMap));
96 else
97 $result->addError(new Main\Error(Loc::getMessage('SALE_DLVRS_ADD_DREQ_ROD_01').' "'.implode('", "',$shipmentIds).'"'));
98
99 return $result;
100 }
101}
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
$result
Определения get_property_values.php:14
trait Error
Определения error.php:11
$message
Определения payment.php:8
$error
Определения subscription_card_product.php:20