From 28b86b5cd193f7283a6988fa527d413829483333 Mon Sep 17 00:00:00 2001 From: Vladimir Fomichev Date: Wed, 3 Sep 2025 13:27:59 +0300 Subject: [PATCH] =?utf8?q?=D0=9D=D0=B5=20=D0=BC=D0=B5=D0=BD=D1=8F=D1=82?= =?utf8?q?=D1=8C=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=20=D0=BE=D1=82?= =?utf8?q?=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=20=D0=B7=D0=B0?= =?utf8?q?=D0=BA=D0=B0=D0=B7=D0=BE=D0=B2=20=D0=B2=20ERp=20=D0=B8=D0=B7=201?= =?utf8?q?C=20=D0=B5=D1=81=D0=BB=D0=B8=20=D1=81=D1=82=D0=B0=D1=82=D1=83?= =?utf8?q?=D1=81=20=D0=B8=D0=B7=201=D0=A1=20=D0=BE=D1=82=D0=BB=D0=B8=D1=87?= =?utf8?q?=D0=B5=D0=BD=20=D0=BE=D1=82=20=D0=BE=D1=82=D0=BC=D0=B5=D0=BD?= =?utf8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/api2/controllers/DataController.php | 28 +++++++++++++++++------ 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/erp24/api2/controllers/DataController.php b/erp24/api2/controllers/DataController.php index 28a225a6..237f122c 100644 --- a/erp24/api2/controllers/DataController.php +++ b/erp24/api2/controllers/DataController.php @@ -3070,7 +3070,7 @@ class DataController extends BaseController $result = null; if (!$mpOrder['status']) { $result['message'] = 'Статус не передан'; - $result['status'] = null; + $result['status'] = 'error'; return $result; } // статусы маркетплейса @@ -3084,7 +3084,7 @@ class DataController extends BaseController $status = $mpOrder['status']; $marketplaceOrder = MarketplaceOrders::find() ->where(['guid' => $mpOrder['id']]) - ->andWhere(['<>', 'status_id', $cancelledStatusId]) + // ->andWhere(['<>', 'status_id', $cancelledStatusId]) ->one(); if ($marketplaceOrder) { @@ -3093,6 +3093,23 @@ class DataController extends BaseController if ($marketplaceOrder->fake == 1) { $debug = true; } + $marketplaceId = $marketplaceOrder->marketplace_id; + $cancelledStatusesCode = MarketplaceOrder1cStatuses::find() + ->select(['status_id']) + ->where(['marketplace_id' => $marketplaceId]) + ->andWhere(['order_status_id' => $cancelledStatusId]) + ->scalar(); + + $statusId1C = MarketplaceOrder1cStatuses::find() + ->where(['marketplace_id' => $marketplaceId]) + ->andWhere(['status_id' => $status]) + ->one(); + + if ($marketplaceOrder->status_id === $cancelledStatusId && $status !== $cancelledStatusesCode) { + $result['message'] = 'Заказ отменен ' . $mpOrder['id'];; + $result['status'] = 'cancelled_order'; + return $result; + } $statuses1cWithCancelledId = ArrayHelper::getColumn(MarketplaceOrder1cStatuses::find() ->select(['status_id']) @@ -3109,12 +3126,7 @@ class DataController extends BaseController $statuses = ArrayHelper::map($statuses, 'code', 'id'); $statusCodes = array_unique(array_keys($statuses)); - $marketplaceId = $marketplaceOrder->marketplace_id; - $statusId1C = MarketplaceOrder1cStatuses::find() - ->where(['marketplace_id' => $marketplaceId]) - ->andWhere(['status_id' => $status]) - ->one(); if (empty($statusId1C)) { $mess["result"] = 'error'; $mess["message_order"] = "Статус не найден"; @@ -3162,6 +3174,8 @@ class DataController extends BaseController $marketplaceOrder->status_processing_1c = $statusId1C->id; $marketplaceOrder->seller_id = $mpOrder['seller_id'] ?? null; $marketplaceOrder->number_1c = $mpOrder['number'] ?? null; + + if ($marketplaceOrder->save()) { // Обновляем историю статусов MarketplaceService::createOrUpdateStatusHistory($marketplaceOrder->id, $status->id, $substatus->id, [ -- 2.39.5