From: fomichev Date: Tue, 25 Mar 2025 14:07:21 +0000 (+0300) Subject: Смена статуса в МП X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=da648ccd028e5219ee09a10c969d6e5d36bfee84;p=erp24_rep%2Fyii-erp24%2F.git Смена статуса в МП --- diff --git a/erp24/api2/controllers/OrdersController.php b/erp24/api2/controllers/OrdersController.php index 9e7b275a..ee49df6c 100644 --- a/erp24/api2/controllers/OrdersController.php +++ b/erp24/api2/controllers/OrdersController.php @@ -39,9 +39,34 @@ class OrdersController extends BaseController ' ' . date("d.m.Y H:i:s", time()) . ' JSON: ' . $json . ' ', FILE_APPEND ); - $orderGuid = $result['order_id']; - $orderStatus = $result['status']; + $__API_PARAMS = ['order_id', 'status']; + + foreach ($__API_PARAMS as $paramName) { + if (empty($result[$paramName])) { + if ($paramName != 'order_id') { + LogService::apiErrorLog( + json_encode( + ["error_id" => 0, "error" => "$paramName is required"], + JSON_UNESCAPED_UNICODE + ) + ); + } + if ($paramName != 'status') { + LogService::apiErrorLog( + json_encode( + ["error_id" => 0, "error" => "$paramName is required"], + JSON_UNESCAPED_UNICODE + ) + ); + } + return $this->asJson(["error_id" => 0, "error" => "$paramName is required"]); + } + } + + $orderGuid = $result['order_id']; + $orderStatus = $result['status']; + $updateResult = null; $orderStatus1CCodes = MarketplaceOrders::getStatusCodes($orderStatus); $statuses = MarketplaceOrderStatusTypes::find() ->select(['id', 'code']) @@ -52,11 +77,22 @@ class OrdersController extends BaseController $statusCodes = array_unique(array_keys($statuses)); $statusId = MarketplaceService::getOrCreateStatus($orderStatus1CCodes[0], $statuses, $statusCodes); $substatusId = MarketplaceService::getOrCreateStatus($orderStatus1CCodes[1], $statuses, $statusCodes); - $order = MarketplaceOrders::find() - ->where(['guid' => $orderGuid]) - ->one(); + $order = MarketplaceOrders::find() + ->where(['guid' => $orderGuid]) + ->one(); if ($order && !empty($orderStatus1CCodes)) { + if ( + in_array($result['status'], [MarketplaceOrders::STATUS_CANCELLED, MarketplaceOrders::STATUS_READY]) && + $order->marketplace_id == 2 + ) { + $updateResult = MarketplaceService::updateOrderStatus( + $order->warehouse_guid, + $order->marketplace_order_id, + $orderStatus1CCodes[0], + $orderStatus1CCodes[1] + ); + } $order->status_id = $statusId; $order->substatus_id = $substatusId; if ($order->save()) { @@ -65,15 +101,24 @@ class OrdersController extends BaseController ]; MarketplaceService::createOrUpdateStatusHistory($order->id, $statusId, $substatusId, $orderDetails); + } else { + Yii::error( + 'Ошибка обновления статусов' . json_encode( + $order->getErrors(), + JSON_UNESCAPED_UNICODE + ), + __METHOD__ + ); } } - //MarketplaceService::updateOrderStatus($order->warehouse_id, $order->marketplace_order_id, $orderStatus1CCodes[0], $orderStatus1CCodes[1]); $mess["result"] = true; $mess["message_order"] = "Статус получен"; $mess["message_order_guid"] = $orderGuid; $mess["message_status"] = $orderStatus; + $mess["message_status_update"] = $updateResult; + LogService::apiLogs(1, json_encode($mess, JSON_UNESCAPED_UNICODE)); file_put_contents( self::OUT_DIR . '/changed_orders_' . $fl . '.json',