From b3b8783ba954d31a2c45c481409c1e55a920291d Mon Sep 17 00:00:00 2001 From: fomichev Date: Thu, 19 Jun 2025 16:29:21 +0300 Subject: [PATCH] =?utf8?q?=D0=9C=D0=B5=D1=82=D0=BE=D0=B4=20=D1=81=D0=BE?= =?utf8?q?=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=87=D0=B5=D0=BA=D0=BE?= =?utf8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../controllers/NotificationController.php | 58 ++--------- erp24/services/MarketplaceService.php | 99 ++++++++++++------- 2 files changed, 69 insertions(+), 88 deletions(-) diff --git a/erp24/media/controllers/NotificationController.php b/erp24/media/controllers/NotificationController.php index 1b789e7c..f2066305 100644 --- a/erp24/media/controllers/NotificationController.php +++ b/erp24/media/controllers/NotificationController.php @@ -213,57 +213,7 @@ class NotificationController extends Controller /* @var $marketplaceOrder MarketplaceOrders */ if ($newStatusCode == 'DELIVERED' && $newSubstatusCode == 'DELIVERY_SERVICE_DELIVERED' && $marketplaceOrder) { - - $existingCheck = CreateChecks::find() - ->where(['marketplace_order_id' => $marketplaceOrder->marketplace_order_id]) - ->exists(); - - if (!$existingCheck) { - $createChecks = new CreateChecks; - $createChecks->order_guid = ''; - $createChecks->marketplace_order_id = $marketplaceOrder->marketplace_order_id; - - $eit = ExportImportTable::find() - ->select(['export_val']) - ->where([ - 'entity' => 'city_store', - 'export_id' => 1, - 'entity_id' => $marketplaceOrder->store_id - ]) - ->one(); - $createChecks->store_id = $eit->export_val ?? ''; - $createChecks->date_up = $marketplaceOrder->delivery_to; - $createChecks->check_id = DataHelper::createGuidMy('02'); - $createChecks->guid = $createChecks->check_id; - $createChecks->type = 'Продажа'; - $items = []; - foreach ($marketplaceOrder->items as $item) { - /* @var $item MarketplaceOrderItems */ - $productsId = Products1c::find() - ->select(['id']) - ->where(['articule' => $item->offer_id]) - ->one(); - - $items[] = [ - 'product_id' => $productsId->id ?? '', - 'quantity' => $item->count, - 'seller_id' => '', - 'marketplace_order_id' => $marketplaceOrder->marketplace_order_id, - ]; - } - - $createChecks->items = Json::encode($items); - $createChecks->payments = ''; - $createChecks->held = 1; - $createChecks->comments = ''; - $createChecks->date = date('Y-m-d H:i:s'); - $createChecks->is_marketplace = 1; - $createChecks->marketplace_name = $marketplaceOrder->marketplace_name; - - if (!$createChecks->save()) { - Yii::warning("ORDER_ID_: " . Json::encode($createChecks->getErrors())); - } - } + $isCheckCreated = MarketplaceService::createCheckForMarketplaceOrder($marketplaceOrder); } if (!$marketplaceOrder) { @@ -278,6 +228,12 @@ class NotificationController extends Controller ]); } $result = MarketplaceService::processOrders($orderData); + + $marketplaceOrderNew = MarketplaceOrders::find() + ->where(['marketplace_order_id' => (string)$orderId]) + ->one(); + /* @var $marketplaceOrderNew MarketplaceOrders */ + $isCheckCreated = MarketplaceService::createCheckForMarketplaceOrder($marketplaceOrderNew); return $this->asJson([ 'version' => '1.0.0', 'name' => 'БазаЦветов24', diff --git a/erp24/services/MarketplaceService.php b/erp24/services/MarketplaceService.php index 8345c547..b72c3e82 100644 --- a/erp24/services/MarketplaceService.php +++ b/erp24/services/MarketplaceService.php @@ -1753,44 +1753,12 @@ class MarketplaceService $substatusCode = 'DELIVERY_SERVICE_DELIVERED'; } $count = self::processFlowwowOrders($order, $store, $statusCode, $substatusCode, $message['subject_index']); - - if ($statusCode == 'DELIVERED' && $substatusCode == 'DELIVERY_SERVICE_DELIVERED') { - $marketplaceOrder = MarketplaceOrders::find() - ->where(['marketplace_order_id' => (string)key($order)]) - ->one(); + $marketplaceOrder = MarketplaceOrders::find() + ->where(['marketplace_order_id' => (string)key($order)]) + ->one(); + if ($statusCode == 'DELIVERED' && $substatusCode == 'DELIVERY_SERVICE_DELIVERED' && $marketplaceOrder) { /* @var $marketplaceOrder MarketplaceOrders */ - $createChecks = new CreateChecks; - $createChecks->order_guid = ''; - $createChecks->marketplace_order_id = $marketplaceOrder->marketplace_order_id; - - $eit = ExportImportTable::find()->select(['export_val'])->where(['entity' => 'city_store', 'export_id' => 1, 'entity_id' => $marketplaceOrder->store_id])->one(); - $createChecks->store_id = $eit->export_val ?? ''; - $createChecks->date_up = $marketplaceOrder->delivery_to; - $createChecks->check_id = DataHelper::createGuidMy('02'); - $createChecks->guid = $createChecks->check_id; - $createChecks->type = 'Продажа'; - $items = []; - foreach ($marketplaceOrder->items as $item) { - /* @var $item MarketplaceOrderItems */ - $productsId = Products1c::find()->select(['id'])->where(['articule' => $item->offer_id])->one(); - $items [] = [ - 'product_id' => $productsId->id ?? '', - 'quantity' => $item->count, - 'seller_id' => '', - 'marketplace_order_id' => $marketplaceOrder->marketplace_order_id, - ]; - } - $createChecks->items = Json::encode($items); - $createChecks->payments = ''; - $createChecks->held = 1; - $createChecks->comments = ''; - $createChecks->date = date('Y-m-d H:i:s'); - $createChecks->is_marketplace = 1; - $createChecks->marketplace_name = $marketplaceOrder->marketplace_name; - $createChecks->save(); - if ($createChecks->getErrors()) { - Yii::warning("ORDER_ID_: " . Json::encode($createChecks->getErrors())); - } + $isCheckCreated = self::createCheckForMarketplaceOrder($marketplaceOrder); } } return $count; @@ -2431,5 +2399,62 @@ class MarketplaceService } } + public static function createCheckForMarketplaceOrder (MarketplaceOrders $marketplaceOrder): bool + { + $existingCheck = CreateChecks::find() + ->where(['marketplace_order_id' => $marketplaceOrder->marketplace_order_id]) + ->exists(); + + if (!$existingCheck) { + $createChecks = new CreateChecks; + $createChecks->order_guid = ''; + $createChecks->marketplace_order_id = $marketplaceOrder->marketplace_order_id; + + $eit = ExportImportTable::find() + ->select(['export_val']) + ->where([ + 'entity' => 'city_store', + 'export_id' => 1, + 'entity_id' => $marketplaceOrder->store_id + ]) + ->one(); + $createChecks->store_id = $eit->export_val ?? ''; + $createChecks->date_up = $marketplaceOrder->delivery_to; + $createChecks->check_id = DataHelper::createGuidMy('02'); + $createChecks->guid = $createChecks->check_id; + $createChecks->type = 'Продажа'; + $items = []; + foreach ($marketplaceOrder->items as $item) { + /* @var $item MarketplaceOrderItems */ + $productsId = Products1c::find() + ->select(['id']) + ->where(['articule' => $item->offer_id]) + ->one(); + + $items[] = [ + 'product_id' => $productsId->id ?? '', + 'quantity' => $item->count, + 'seller_id' => '', + 'marketplace_order_id' => $marketplaceOrder->marketplace_order_id, + ]; + } + + $createChecks->items = Json::encode($items); + $createChecks->payments = ''; + $createChecks->held = 1; + $createChecks->comments = ''; + $createChecks->date = date('Y-m-d H:i:s'); + $createChecks->is_marketplace = 1; + $createChecks->marketplace_name = $marketplaceOrder->marketplace_name; + + if ($createChecks->save()) { + return true; + } else { + Yii::warning("ORDER_ID_: " . Json::encode($createChecks->getErrors())); + } + } + return false; + } + } -- 2.39.5