]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Проверка на повторное создание чеков
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 19 Jun 2025 12:08:25 +0000 (15:08 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 19 Jun 2025 12:08:25 +0000 (15:08 +0300)
erp24/media/controllers/NotificationController.php

index 06cdd3853038a76df64b6591b226a3342191234b..1b789e7cd4e3caeb5ecda15d3ecf0ace90c5a2b6 100644 (file)
@@ -213,37 +213,56 @@ class NotificationController extends Controller
 
                     /* @var $marketplaceOrder MarketplaceOrders */
                     if ($newStatusCode == 'DELIVERED' && $newSubstatusCode == 'DELIVERY_SERVICE_DELIVERED' && $marketplaceOrder) {
-                        $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()));
+                        $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()));
+                            }
                         }
                     }