]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добавление колонок в marketplace_orders
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 7 Mar 2025 09:33:06 +0000 (12:33 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 7 Mar 2025 09:33:06 +0000 (12:33 +0300)
erp24/migrations/m250307_084838_add_columns_marketplace_name_to_marketplace_orders_table.php [new file with mode: 0644]
erp24/records/MarketplaceOrders.php
erp24/services/MarketplaceService.php

diff --git a/erp24/migrations/m250307_084838_add_columns_marketplace_name_to_marketplace_orders_table.php b/erp24/migrations/m250307_084838_add_columns_marketplace_name_to_marketplace_orders_table.php
new file mode 100644 (file)
index 0000000..c166b9a
--- /dev/null
@@ -0,0 +1,92 @@
+<?php
+
+use yii\db\Migration;
+
+class m250307_084838_add_columns_marketplace_name_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 ($table->getColumn('marketplace_name') === null) {
+            $this->addColumn(
+                self::TABLE_NAME,
+                'marketplace_name',
+                $this->string()->null()->comment('Наименование маркетплейса')
+            );
+        }
+        if ($table->getColumn('marketplace_id') === null) {
+            $this->addColumn(
+                self::TABLE_NAME,
+                'marketplace_id',
+                $this->integer()->null()->comment('ID маркетплейса')
+            );
+        }
+
+        $this->execute("
+            UPDATE " . self::TABLE_NAME . " AS o
+            SET marketplace_id = (
+                SELECT s.warehouse_id
+                FROM erp24.marketplace_store s
+                WHERE s.warehouse_guid::TEXT = o.warehouse_guid::TEXT
+                LIMIT 1
+            )
+            WHERE o.warehouse_guid IS NOT NULL;
+        ");
+
+        $this->execute("
+            UPDATE " . self::TABLE_NAME . "
+            SET marketplace_name = CASE
+                WHEN marketplace_id = 1 THEN 'ФлауВау'
+                WHEN marketplace_id = 2 THEN 'ЯндексМаркет'
+                ELSE marketplace_name
+            END;
+        ");
+        $this->alterColumn(
+            self::TABLE_NAME,
+            'marketplace_id',
+            $this->integer()->notNull()->comment('ID маркетплейса')
+        );
+        $this->alterColumn(
+            self::TABLE_NAME,
+            'marketplace_name',
+            $this->string()->notNull()->comment('Наименование маркетплейса')
+        );
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+        if ($this->db->schema->getTableSchema(self::TABLE_NAME) === null) {
+            return;
+        }
+
+        if ($this->db->schema->getTableSchema(self::TABLE_NAME)->getColumn('marketplace_name') !== null) {
+            $this->dropColumn(self::TABLE_NAME, 'marketplace_name');
+            $this->dropColumn(self::TABLE_NAME, 'marketplace_id');
+        }
+    }
+    /*
+    // Use up()/down() to run migration code without a transaction.
+    public function up()
+    {
+
+    }
+
+    public function down()
+    {
+        echo "m250307_084838_add_columns_marketplace_name_to_marketplace_orders_table cannot be reverted.\n";
+
+        return false;
+    }
+    */
+}
index 0dc211cccbba3592237001399a24394238f1a139..3ff02841e92c3c5b51db01b04e0edf929a59d33b 100644 (file)
@@ -28,6 +28,8 @@ use Yii;
  * @property string|null $raw_data Полный сырой ответ API
  * @property string|null $guid GUID заказа в 1С
  * @property int|null $status_1c Статус заказа в 1С
+ * @property int|null $marketplace_name Наименование маркетплейса 'ФлауВау' 'ЯндексМаркет'
+ * @property int|null $marketplace_id ID маркетплейса: 1 - Flowwow, 2 - YandexMarket
  */
 class MarketplaceOrders extends \yii\db\ActiveRecord
 {
@@ -52,12 +54,12 @@ class MarketplaceOrders extends \yii\db\ActiveRecord
             [['store_id', 'warehouse_guid', 'returned_at', 'return_data', 'raw_data', 'guid'], 'default', 'value' => null],
             [['cancel_requested'], 'default', 'value' => 0],
             [['status_1c'], 'default', 'value' => 1],
-            [['marketplace_order_id', 'status_id', 'substatus_id', 'creation_date', 'updated_at', 'total', 'delivery_total', 'buyer_total_before_discount', 'tax_system', 'payment_type', 'payment_method'], 'required'],
+            [['marketplace_order_id', 'marketplace_id', 'marketplace_name', 'status_id', 'substatus_id', 'creation_date', 'updated_at', 'total', 'delivery_total', 'buyer_total_before_discount', 'tax_system', 'payment_type', 'payment_method'], 'required'],
             [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c'], 'default', 'value' => null],
             [[ 'fake'], 'default', 'value' => 0],
-            [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c'], 'integer'],
+            [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'marketplace_id'], 'integer'],
             [['creation_date', 'updated_at', 'returned_at'], 'safe'],
-            [['return_data', 'raw_data'], 'string'],
+            [['return_data', 'raw_data', 'marketplace_name'], 'string'],
             [['total', 'delivery_total', 'buyer_total_before_discount'], 'number'],
             [['marketplace_order_id'], 'string', 'max' => 64],
             [['warehouse_guid', 'guid'], 'string', 'max' => 36],
@@ -93,6 +95,8 @@ class MarketplaceOrders extends \yii\db\ActiveRecord
             'raw_data' => 'Полный сырой ответ API',
             'guid' => 'GUID заказа в 1С',
             'status_1c' => 'Статус заказа в 1С',
+            'marketplace_name' => 'Наименование маркетплейса',
+            'marketplace_id' => 'ID маркетплейса: 1 - Flowwow, 2 - YandexMarket',
         ];
     }
 
index adafe4b5d40d00b32dd6e0a37dfed0432b4c4e79..47b513110f7d7ef4068e038c67b5fc4e50f2b08b 100644 (file)
@@ -986,6 +986,9 @@ class MarketplaceService
                         $store = MarketplaceStore::findOne(['warehouse_guid' => $warehouseGuid]);
                         $marketplaceOrder->store_id = $store ? $store->store_id : null;
                         $marketplaceOrder->warehouse_guid = $warehouseGuid;
+                        $marketplaceOrder->marketplace_id = $store->warehouse_id ?? 2;
+                        $warehouseNames = MarketplaceStore::getWarehouseId();
+                        $marketplaceOrder->marketplace_name = $warehouseNames[$marketplaceOrder->marketplace_id];
                     }
 
                     $marketplaceOrder->status_id = (int)$statusId;