]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Метод создания чеков
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 19 Jun 2025 13:29:21 +0000 (16:29 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 19 Jun 2025 13:29:21 +0000 (16:29 +0300)
erp24/media/controllers/NotificationController.php
erp24/services/MarketplaceService.php

index 1b789e7cd4e3caeb5ecda15d3ecf0ace90c5a2b6..f206630587a3c7ab6fc58ade80eccbc0d7eebb66 100644 (file)
@@ -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',
index 8345c547b72899b3b26a209b7b98a142e6f22686..b72c3e825453627ee0ab4986293d38ac699b0492 100644 (file)
@@ -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;
+    }
+
 
 }