From: fomichev Date: Tue, 8 Apr 2025 10:28:16 +0000 (+0300) Subject: Добавление поля 'status_processing_1c' X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=7500b2fa778f42190b25d9a22f81c96a23986ef1;p=erp24_rep%2Fyii-erp24%2F.git Добавление поля 'status_processing_1c' --- diff --git a/erp24/api2/controllers/DataController.php b/erp24/api2/controllers/DataController.php index 50988923..8833b5e1 100644 --- a/erp24/api2/controllers/DataController.php +++ b/erp24/api2/controllers/DataController.php @@ -25,6 +25,7 @@ use yii_app\records\ExportImportTable; use yii_app\records\Incoming; use yii_app\records\IncomingItems; use yii_app\records\MarketplaceOrders; +use yii_app\records\MarketplaceOrderStatusTypes; use yii_app\records\OrdersAmo; use yii_app\records\PaymentTypes; use yii_app\records\Prices; @@ -704,10 +705,15 @@ class DataController extends BaseController } private function getMarketplaceNewOrders(): array { + $statusId = MarketplaceOrderStatusTypes::find() + ->where(['code' => 'PROCESSING'])->one()->id; + $substatusId = MarketplaceOrderStatusTypes::find() + ->where(['code' => 'STARTED'])->one()->id; $marketplaceOrders = MarketplaceOrders::find() ->where([ 'status_1c' => MarketplaceOrders::STATUSES_1C_CREATED_IN_ERP, - 'status_id' => 1, + 'status_id' => $statusId, + 'substatus_id' => $substatusId, ])->andWhere([ 'between', 'creation_date', @@ -2224,7 +2230,7 @@ class DataController extends BaseController if (!empty($result['created_new_orders'])) { foreach ($result['created_new_orders'] as $arr) { - MarketplaceOrders::updateAll(['status_1c' => 2], ['guid' => $arr['id']]); + MarketplaceOrders::updateAll(['status_1c' => MarketplaceOrders::STATUSES_1C_SENDED_TO_1C], ['guid' => $arr['id']]); } } @@ -2288,7 +2294,7 @@ class DataController extends BaseController } } - $marketplaceOrders->status_1c = MarketplaceOrders::STATUSES_1C_ERROR_1С; + $marketplaceOrders->status_1c = MarketplaceOrders::STATUSES_1C_ERROR_1C; $marketplaceOrders->error_text = $errorText; $marketplaceOrders->save(); if ($marketplaceOrders->getErrors()) { diff --git a/erp24/api2/controllers/OrdersController.php b/erp24/api2/controllers/OrdersController.php index d21ac932..c0e0ccaf 100644 --- a/erp24/api2/controllers/OrdersController.php +++ b/erp24/api2/controllers/OrdersController.php @@ -92,8 +92,8 @@ class OrdersController extends BaseController $statusId1C = MarketplaceOrder1cStatuses::find() ->where(['marketplace_id' => $marketplaceId]) - ->andWhere(['status' => $orderStatus]) - ->one()->id; + ->andWhere(['status_id' => $orderStatus]) + ->one(); if (empty($statusId1C)) { $mess["result"] = 'error'; $mess["message_order"] = "Статус не найден"; @@ -108,13 +108,13 @@ class OrdersController extends BaseController } // Получаем статусы МП по статусу 1С - $orderStatus1CToCodes = MarketplaceOrders::getStatusCodes($orderStatus); + $orderStatus1CToCodes = MarketplaceOrders::getStatusCodes($statusId1C->status); $statusId = MarketplaceService::getOrCreateStatus($orderStatus1CToCodes[0], $statuses, $statusCodes); $substatusId = MarketplaceService::getOrCreateStatus($orderStatus1CToCodes[1], $statuses, $statusCodes); if ( - in_array($singleOrder['status'], ['Отказ', 'Собрано']) && + in_array($statusId1C->status, ['Отказ', 'Собрано']) && $order->marketplace_id == 2 ) { /* $updateResult = MarketplaceService::updateOrderStatus( @@ -130,7 +130,7 @@ class OrdersController extends BaseController $order->substatus_id = $substatusId; } } - $order->status_1c = $statusId1C; + $order->status_processing_1c = $statusId1C->id; if ($order->save()) { // Обновляем историю статусов @@ -141,7 +141,7 @@ class OrdersController extends BaseController "order_id" => $orderGuid, "result" => true, "message" => "Статус обновлён", - "status" => $orderStatus + "status" => $order->status_processing_1c ]; } else { Yii::error('Ошибка сохранения: ' . Json::encode($order->getErrors(), JSON_UNESCAPED_UNICODE)); diff --git a/erp24/migrations/m250408_090416_add_status_processing_1c_column_to_marketplace_orders_table.php b/erp24/migrations/m250408_090416_add_status_processing_1c_column_to_marketplace_orders_table.php new file mode 100644 index 00000000..f4d078a9 --- /dev/null +++ b/erp24/migrations/m250408_090416_add_status_processing_1c_column_to_marketplace_orders_table.php @@ -0,0 +1,39 @@ +db->schema->getTableSchema(self::TABLE_NAME); + if ($table === null) { + return; + } + + if (!$this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('status_processing_1c')) { + $this->addColumn( + self::TABLE_NAME, + 'status_processing_1c', + $this->integer()->null()->comment('Статус обработки заказа в 1С') + ); + } + } + + /** + * {@inheritdoc} + */ + public function safeDown() + { + if ($this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('status_processing_1c')) { + $this->dropColumn(self::TABLE_NAME, 'status_processing_1c'); + } + } +} diff --git a/erp24/records/MarketplaceOrders.php b/erp24/records/MarketplaceOrders.php index e10ecaa9..025ff03e 100644 --- a/erp24/records/MarketplaceOrders.php +++ b/erp24/records/MarketplaceOrders.php @@ -33,6 +33,7 @@ use Yii; * @property string $error_text * @property string|null $number_1c Название документа в 1с * @property string|null $telegram_error ошибка телеграмма + * @property string|null $status_processing_1c Статус обработки заказа в 1С */ class MarketplaceOrders extends \yii\db\ActiveRecord { @@ -41,15 +42,16 @@ class MarketplaceOrders extends \yii\db\ActiveRecord const STATUS_TELEGRAM_SENT = 2; const STATUS_TELEGRAM_ERROR = 8; - const STATUSES_1C_ERROR_1С = -3; - const STATUSES_1C_CREATED_IN_ERP = -2; - const STATUSES_1C_SENDED_TO_1C = -1; - const STATUSES_1C_CREATED_IN_1C = 0; + const STATUSES_1C_ERROR_1C = 4; + const STATUSES_1C_CREATED_IN_ERP = 1; + const STATUSES_1C_SENDED_TO_1C = 2; + const STATUSES_1C_CREATED_IN_1C = 3; const STATUSES_1C = [ self::STATUSES_1C_CREATED_IN_ERP => 'Создан в ЕРП', self::STATUSES_1C_SENDED_TO_1C => 'Отправлен в 1C', self::STATUSES_1C_CREATED_IN_1C => 'Создан в 1C', + self::STATUSES_1C_ERROR_1C => 'Ошибка в 1C', ]; @@ -82,9 +84,9 @@ class MarketplaceOrders extends \yii\db\ActiveRecord [['store_id', 'warehouse_guid', 'returned_at', 'return_data', 'raw_data', 'guid'], 'default', 'value' => null], [['cancel_requested', 'status_telegram'], 'default', 'value' => 0], [['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], + [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'status_processing_1c'], 'default', 'value' => null], [[ 'fake'], 'default', 'value' => 0], - [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'marketplace_id', 'status_telegram'], 'integer'], + [['store_id', 'status_id', 'substatus_id', 'fake', 'cancel_requested', 'status_1c', 'marketplace_id', 'status_telegram', 'status_processing_1c'], 'integer'], [['creation_date', 'updated_at', 'returned_at'], 'safe'], [['return_data', 'raw_data', 'marketplace_name', 'telegram_error'], 'string'], [['total', 'delivery_total', 'buyer_total_before_discount'], 'number'], @@ -129,6 +131,7 @@ class MarketplaceOrders extends \yii\db\ActiveRecord 'number_1c' => 'Номер документа в 1с', 'status_telegram' => 'Статус отправки в телеграм', 'telegram_error' => 'Ошибка телеграмма', + 'status_processing_1c' => 'Статус обработки заказа в 1С', ]; } @@ -157,7 +160,7 @@ class MarketplaceOrders extends \yii\db\ActiveRecord public function getStatus1c() { - return $this->hasOne(MarketplaceOrder1cStatuses::class, ['id' => 'status_1c']); + return $this->hasOne(MarketplaceOrder1cStatuses::class, ['id' => 'status_processing_1c']); } diff --git a/erp24/views/marketplace-orders/index.php b/erp24/views/marketplace-orders/index.php index 136dd316..ace9dda7 100644 --- a/erp24/views/marketplace-orders/index.php +++ b/erp24/views/marketplace-orders/index.php @@ -114,7 +114,13 @@ YiiAsset::register($this); [ 'attribute' => 'status_1c', 'value' => function ($model) { - return $model->status1c->status ?? MarketplaceOrders::STATUSES_1C[$model->status_1c]; + return MarketplaceOrders::STATUSES_1C[$model->status_1c]; + } + ], + [ + 'attribute' => 'status_processing_1c', + 'value' => function ($model) { + return $model->status1c->status ?? null; } ], [ diff --git a/erp24/views/marketplace-orders/view.php b/erp24/views/marketplace-orders/view.php index 7f876a39..7e6b74df 100644 --- a/erp24/views/marketplace-orders/view.php +++ b/erp24/views/marketplace-orders/view.php @@ -58,7 +58,13 @@ $this->params['breadcrumbs'][] = $this->title; [ 'attribute' => 'status_1c', 'value' => function ($model) { - return $model->status1c->status ?? MarketplaceOrders::STATUSES_1C[$model->status_1c]; + return MarketplaceOrders::STATUSES_1C[$model->status_1c]; + } + ], + [ + 'attribute' => 'status_processing_1c', + 'value' => function ($model) { + return $model->status1c->status ?? null; } ], ],