]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
additional filds to cancel
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 18 Jul 2025 10:29:10 +0000 (13:29 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 18 Jul 2025 10:29:10 +0000 (13:29 +0300)
erp24/api2/controllers/DataController.php
erp24/api2/controllers/OrdersController.php
erp24/migrations/m250718_093101_add_cancelled_order_source_date_fields_to_marketplace_orders_table.php [new file with mode: 0644]

index 803d4d2a9bdcf3ce474dd1cdb2087395bccb1c42..60fee578e12804bfeadf9e8b7592e759c87cd887 100644 (file)
@@ -833,7 +833,7 @@ class DataController extends BaseController
                     ", " . ($marketplaceOrderDelivery->street ?? '') .
                     ", " . ($marketplaceOrderDelivery->house ?? '') .
                     ", " . ($marketplaceOrderDelivery->apartment ?? "");
-                    $deliveryToDate = null;
+                $deliveryToDate = null;
                 $deliveryToTime = null;
                 if ($marketplaceOrder->delivery_to) {
                     $deliveryTo = explode(' ', $marketplaceOrder->delivery_to);
@@ -859,7 +859,7 @@ class DataController extends BaseController
                     'marketplace_name' => $marketplaceOrder->marketplace_name ?? 'ЯндексМаркет',
                     'link' => $marketplaceOrder->order_link ?? '',
                     'order_number' => $marketplaceOrder->marketplace_order_id,
-                    'delivery_date' => $deliveryToDate ?? '',
+                    'delivery_date' => $deliveryToDate ? date('d.m.Y', strtotime($deliveryToDate)) : '',
                     'delivery_time' => $deliveryToTime ?? '',
                     'delivery_type' => $delivery_type,
                     'delivery_address' => $deliveryAddress,
@@ -909,7 +909,7 @@ class DataController extends BaseController
             ->andWhere([
                 'between',
                 'creation_date',
-                date('Y-m-d 00:00:00', strtotime('-3 weeks', time())),
+                date('Y-m-d 00:00:00', strtotime(time())),
                 date('Y-m-d 23:59:59', time())
             ])
             ->all();
@@ -918,11 +918,13 @@ class DataController extends BaseController
             /* @var MarketplaceOrders $marketplaceOrder */
                             $result[] = [
                     'order_id' => $marketplaceOrder->guid ];
-            $marketplaceOrder->cancelled_order_sent = MarketplaceOrders::STATUSES_1C_CANCELLED_ORDER_SENT_IN_1C;
-            if (!$marketplaceOrder->save()) {
+           // $marketplaceOrder->cancelled_order_date = date('Y-m-d H:m:s');
+
+           // $marketplaceOrder->cancelled_order_sent = MarketplaceOrders::STATUSES_1C_CANCELLED_ORDER_SENT_IN_1C;
+            /* if (!$marketplaceOrder->save()) {
                 LogService::apiErrorLog(json_encode(["error_id" => 0, "error" => $marketplaceOrder->getErrors()], JSON_UNESCAPED_UNICODE));
                 Yii::error('Ошибка сохранения ' . json_encode($marketplaceOrder->getErrors(), JSON_UNESCAPED_UNICODE));
-            }
+            } */
 
         }
         return $result;
@@ -2480,6 +2482,74 @@ class DataController extends BaseController
                 }
 
             }
+            if (!empty($result['cancelled_orders'])) {
+                foreach ($result['cancelled_orders'] as $arr) {
+                    $marketplaceOrders = null;
+                    $marketplaceOrdersGuidArr = [];
+
+                    $marketplaceOrders = MarketplaceOrders::find()->where(['guid' => $arr])->one();
+                    $marketplaceOrdersGuidArr[] = $marketplaceOrders->guid;
+
+                    if (!empty($marketplaceOrders)) {
+                        /** @var MarketplaceOrders $marketplaceOrders */
+
+                        if (!empty($arr["errors"]) || !empty($arr["error"]) || !empty($arr["errors_items"])) {
+                            $errorText = '';
+                            if (!empty($arr["errors"])) {
+                                   
+
+                                foreach ($arr["errors"] as $errorRow) {
+                                    if (!empty($errorRow['error'])) {
+                                        $errorText .= $errorRow['error'];
+
+                                        $errorText .= ' ,' . $errorRow['error_description'];
+                                        if (!empty($errorRow['error_json'])) {
+                                            foreach ($errorRow['error_json'] as $errorJsonRow) {
+                                                $errorText .= ' , поле: ' . $errorJsonRow['field'];
+                                                $errorText .= ' , ошибка: ' . $errorJsonRow['error'];
+                                            }
+                                        }
+                                    }                                   
+                                }
+                            }
+
+                            if (!empty($arr["error"])) {
+                                //"error": "Ошибка преобразования ИД документа",
+                                //"error_description": "ИД документа 01202307-2705-1039-09bc-100015809667 уже записан в системе",
+                                $errorText .= $arr["error"];
+                                $errorText .= ' ,' . $arr['error_description'];
+                            }
+
+                            $marketplaceOrders->status_1c = MarketplaceOrders::STATUSES_1C_ERROR_1C;
+                            $marketplaceOrders->error_text = $errorText;
+                            $marketplaceOrders->save();
+                            if ($marketplaceOrders->getErrors()) {
+                                LogService::apiErrorLog(
+                                    json_encode(
+                                        ["error_id" => 41, "error" => $marketplaceOrders->getErrors()],
+                                        JSON_UNESCAPED_UNICODE
+                                    )
+                                );
+                            }
+                        } else {
+                           $marketplaceOrder->cancelled_order_sent = MarketplaceOrders::STATUSES_1C_CANCELLED_ORDER_SENT_IN_1C;
+                            $marketplaceOrders->save();
+                            if ($marketplaceOrders->getErrors()) {
+                                LogService::apiErrorLog(
+                                    json_encode(
+                                        ["error_id" => 41, "error" => $marketplaceOrders->getErrors()],
+                                        JSON_UNESCAPED_UNICODE
+                                    )
+                                );
+                            }
+                        }
+                    }
+                }
+
+                
+
+            }
+
         } catch (Exception $e) {
             file_put_contents(self::OUT_DIR . '/log_error.txt', PHP_EOL . date("d.m.Y H:i:s", time()) . $e->getMessage() . " " . $e->getLine(), FILE_APPEND);
         } finally {
@@ -2982,6 +3052,10 @@ class DataController extends BaseController
                     $marketplaceOrder->substatus_id = $substatus->id;
                 }
             }
+            if (in_array($statusId1C->status_id, ['1013', '1006'])) {
+                $marketplaceOrder->cancelled_order_source = '1c';
+                $marketplaceOrder->cancelled_order_date = date('Y-m-d H:m:s');
+            }
             $marketplaceOrder->status_processing_1c = $statusId1C->id;
             $marketplaceOrder->seller_id = $mpOrder['seller_id'] ?? null;
             $marketplaceOrder->number_1c = $mpOrder['number'] ?? null;
index 8696d71373b0a49148e062dec34dd88802daa888..8d189a0bc3fadcafb5567fae567cabefdc1e0915 100644 (file)
@@ -164,6 +164,10 @@ class OrdersController extends BaseController
             if($orderSellerId) {
                 $order->seller_id = $orderSellerId;
             }
+            if (in_array($statusId1C->status_id, ['1013', '1006'])) {
+                $marketplaceOrder->cancelled_order_source = '1c';
+                $marketplaceOrder->cancelled_order_date = date('Y-m-d H:m:s');
+            }
             $order->status_processing_1c = $statusId1C->id;
 
             if ($order->save()) {
diff --git a/erp24/migrations/m250718_093101_add_cancelled_order_source_date_fields_to_marketplace_orders_table.php b/erp24/migrations/m250718_093101_add_cancelled_order_source_date_fields_to_marketplace_orders_table.php
new file mode 100644 (file)
index 0000000..0c4cdff
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+
+use yii\db\Migration;
+
+class m250718_093101_add_cancelled_order_source_date_fields_to_marketplace_orders_table extends Migration
+{
+    const TABLE_NAME = 'erp24.marketplace_orders';
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+        $table = $this->db->schema->getTableSchema(self::TABLE_NAME);
+        if ($table === null) {
+            return;
+        }
+
+        if (!$this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('cancelled_order_source')) {
+            $this->addColumn(
+                self::TABLE_NAME,
+                'cancelled_order_source',
+                $this->string()->null()->comment('Источник отмененного заказа')
+            );
+        }
+        if (!$this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('cancelled_order_date')) {
+            $this->addColumn(
+                self::TABLE_NAME,
+                'cancelled_order_date',
+                $this->timestamp()->null()->comment('Время отправки отмененного заказа в 1С')
+            );
+        }
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+        if ($this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('cancelled_order_source')) {
+            $this->dropColumn(self::TABLE_NAME, 'cancelled_order_source');
+        }
+        if ($this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('cancelled_order_date')) {
+            $this->dropColumn(self::TABLE_NAME, 'cancelled_order_date');
+        }
+    }
+    
+    /*
+    // Use up()/down() to run migration code without a transaction.
+    public function up()
+    {
+
+    }
+
+    public function down()
+    {
+        echo "m250718_093101_add_cancelled_order_source_date_fields_to_marketplace_orders_table cannot be reverted.\n";
+
+        return false;
+    }
+    */
+}