From 811fb1892d84ec10f400706ee699f582e13bfb25 Mon Sep 17 00:00:00 2001 From: fomichev Date: Wed, 9 Apr 2025 14:00:28 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8?= =?utf8?q?=D0=B5=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=D0=BE=D0=B2=20?= =?utf8?q?=D0=B8=D0=B7=20=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/api2/controllers/OrdersController.php | 37 ++++++++++++++++----- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/erp24/api2/controllers/OrdersController.php b/erp24/api2/controllers/OrdersController.php index 9199e2a1..ba522123 100644 --- a/erp24/api2/controllers/OrdersController.php +++ b/erp24/api2/controllers/OrdersController.php @@ -43,7 +43,10 @@ class OrdersController extends BaseController LogService::apiErrorLog(Json::encode($err, JSON_UNESCAPED_UNICODE)); return $this->asJson($err); } - + $debug = false; + if (isset($data['status_update']) || is_array($data['status_update'])) { + $debug = true; + } $mess = []; // статусы маркетплейса @@ -117,13 +120,31 @@ class OrdersController extends BaseController in_array($statusId1C->status, ['Отказ', 'Собрано']) && $order->marketplace_id == 2 ) { - $updateResult = MarketplaceService::updateOrderStatus( - $order->warehouse_guid, - $order->marketplace_order_id, - $orderStatus1CToCodes[0], - $orderStatus1CToCodes[1] - ); - $mess["message_status_update"] = $updateResult; + if (!$debug) { + $updateResult = MarketplaceService::updateOrderStatus( + $order->warehouse_guid, + $order->marketplace_order_id, + $orderStatus1CToCodes[0], + $orderStatus1CToCodes[1] + ); + } else { + $updateResult = $data['status_update']; + } + $mess["message_status_update"] = $updateResult; + if (isset($updateResult[$order->warehouse_guid]) && is_array($updateResult[$order->warehouse_guid])) { + foreach ($updateResult[$order->warehouse_guid] as $updatedOrder) { + if ($updatedOrder['id'] == $order->marketplace_order_id) { + if (isset($statuses[$updatedOrder['status']]) && isset($statuses[$updatedOrder['substatus']])) { + $order->status_id = $statuses[$updatedOrder['status']]; + $order->substatus_id = $statuses[$updatedOrder['substatus']]; + } else { + Yii::error("Не найдены id для статусов: {$updatedOrder['status']} или {$updatedOrder['substatus']}."); + } + } + } + } else { + Yii::error("Неверная структура updateResult: отсутствует ключ для магазина {$order->warehouse_guid}."); + } } else { if (!empty($orderStatus1CToCodes)) { $order->status_id = $statusId; -- 2.39.5