]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Получение статусов из ответа
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 9 Apr 2025 11:00:28 +0000 (14:00 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 9 Apr 2025 11:00:28 +0000 (14:00 +0300)
erp24/api2/controllers/OrdersController.php

index 9199e2a17dc69d3adbd349b450e3aab04ff73106..ba52212377351fbd78500c014a8c2485afd2f388 100644 (file)
@@ -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;