From f1a803cb538d600d4029d8c947e24166b71fa47e Mon Sep 17 00:00:00 2001 From: fomichev Date: Wed, 16 Jul 2025 18:05:54 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?utf8?q?=D0=B8=D0=B5=20=D0=BF=D1=80=D0=B8=D0=B2=D1=8F=D0=B7=D0=BA=D0=B8?= =?utf8?q?=20=D1=81=D1=82=D0=B0=D1=82=D1=83=D1=81=D0=BE=D0=B2=20=D0=B7?= =?utf8?q?=D0=B0=D0=BA=D0=B0=D0=B7=D0=B0=20=D0=BA=20=D1=81=D1=82=D0=B0?= =?utf8?q?=D1=82=D1=83=D1=81=D1=83=20=D0=BE=D0=B1=D1=80=D0=B0=D0=B1=D0=BE?= =?utf8?q?=D1=82=D0=BA=D0=B8=201=D0=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../MarketplaceOrder1cStatusesController.php | 9 ++- ..._statuses_id_to_statuses_1c_processing.php | 62 +++++++++++++++++++ erp24/records/MarketplaceOrder1cStatuses.php | 24 ++++++- .../marketplace-order1c-statuses/_form.php | 17 +++++ .../marketplace-order1c-statuses/create.php | 1 + .../marketplace-order1c-statuses/update.php | 1 + .../marketplace-order1c-statuses/view.php | 12 ++++ 7 files changed, 123 insertions(+), 3 deletions(-) create mode 100644 erp24/migrations/m250716_143137_add_mp_orders_statuses_id_to_statuses_1c_processing.php diff --git a/erp24/controllers/crud/MarketplaceOrder1cStatusesController.php b/erp24/controllers/crud/MarketplaceOrder1cStatusesController.php index a75c5970..6f2e98d9 100644 --- a/erp24/controllers/crud/MarketplaceOrder1cStatusesController.php +++ b/erp24/controllers/crud/MarketplaceOrder1cStatusesController.php @@ -11,6 +11,7 @@ use yii\web\Controller; use yii\web\NotFoundHttpException; use yii\filters\VerbFilter; use yii_app\records\MarketplaceOrder1cStatusesRelations; +use yii_app\records\MarketplaceOrderStatusTypes; use yii_app\services\LessonService; /** @@ -91,7 +92,8 @@ class MarketplaceOrder1cStatusesController extends Controller public function actionCreate() { $model = new MarketplaceOrder1cStatuses(); - + $orderStatusTypes = MarketplaceOrderStatusTypes::find()->all(); + $orderStatusTypesMap = ArrayHelper::map($orderStatusTypes, 'id', 'code'); $relationModels = [new MarketplaceOrder1cStatusesRelations()]; $allStatuses = MarketplaceOrder1cStatuses::find() ->select(['id','status','marketplace_id']) @@ -147,6 +149,7 @@ class MarketplaceOrder1cStatusesController extends Controller 'model' => $model, 'relationModels' => $relationModels, 'statusOptions' => $statusOptionsByMarketplace, + 'orderStatusTypes' => $orderStatusTypesMap ]); } @@ -160,7 +163,8 @@ class MarketplaceOrder1cStatusesController extends Controller public function actionUpdate($id) { $model = $this->findModel($id); - + $orderStatusTypes = MarketplaceOrderStatusTypes::find()->all(); + $orderStatusTypesMap = ArrayHelper::map($orderStatusTypes, 'id', 'code'); $existingRelations = $model->getRelationsFrom()->all(); $relationModels = count($existingRelations) ? $existingRelations : [new MarketplaceOrder1cStatusesRelations()]; @@ -232,6 +236,7 @@ class MarketplaceOrder1cStatusesController extends Controller 'model' => $model, 'relationModels' => $relationModels, 'statusOptions' => $statusOptionsByMarketplace, + 'orderStatusTypes' => $orderStatusTypesMap ]); } diff --git a/erp24/migrations/m250716_143137_add_mp_orders_statuses_id_to_statuses_1c_processing.php b/erp24/migrations/m250716_143137_add_mp_orders_statuses_id_to_statuses_1c_processing.php new file mode 100644 index 00000000..af946c97 --- /dev/null +++ b/erp24/migrations/m250716_143137_add_mp_orders_statuses_id_to_statuses_1c_processing.php @@ -0,0 +1,62 @@ +db->schema->getTableSchema(self::TABLE_NAME); + if ($table === null) { + return; + } + + if (!$this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('order_status_id')) { + $this->addColumn( + self::TABLE_NAME, + 'order_status_id', + $this->integer()->null()->comment('Ссылка на статус заказа в МП'), + ); + } + if (!$this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('order_substatus_id')) { + $this->addColumn( + self::TABLE_NAME, + 'order_substatus_id', + $this->integer()->null()->comment('Ссылка на субстатус заказа в МП'), + ); + } + } + + /** + * {@inheritdoc} + */ + public function safeDown() + { + if ($this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('order_status_id')) { + $this->dropColumn(self::TABLE_NAME, 'order_status_id'); + } + if ($this->db->schema->getTableSchema(self::TABLE_NAME, true)->getColumn('order_substatus_id')) { + $this->dropColumn(self::TABLE_NAME, 'order_substatus_id'); + } + } + + + /* + // Use up()/down() to run migration code without a transaction. + public function up() + { + + } + + public function down() + { + echo "m250716_143137_add_mp_orders_statuses_id_to_statuses_1c_processing cannot be reverted.\n"; + + return false; + } + */ +} diff --git a/erp24/records/MarketplaceOrder1cStatuses.php b/erp24/records/MarketplaceOrder1cStatuses.php index 28530fb4..f6c674f8 100644 --- a/erp24/records/MarketplaceOrder1cStatuses.php +++ b/erp24/records/MarketplaceOrder1cStatuses.php @@ -16,6 +16,8 @@ use yii\db\ActiveQuery; * @property string $status Статус * @property string $status_instruction Инструкция к статусу * @property int $posit Порядок статусов + * @property int|null $order_status_id Ссылка на статус заказа в МП + * @property int|null $order_substatus_id Ссылка на субстатус заказа в МП */ class MarketplaceOrder1cStatuses extends \yii\db\ActiveRecord { @@ -53,7 +55,7 @@ class MarketplaceOrder1cStatuses extends \yii\db\ActiveRecord [['marketplace_id', 'status_id', 'status', 'status_instruction'], 'required'], [['marketplace_id'], 'default', 'value' => null], [['posit', 'allowed_reserve', 'allowed_closing'], 'default', 'value' => 0], - [['marketplace_id', 'posit', 'allowed_reserve', 'allowed_closing'], 'integer'], + [['marketplace_id', 'posit', 'allowed_reserve', 'allowed_closing', 'order_status_id', 'order_substatus_id'], 'integer'], [['status_instruction', 'status_id'], 'string'], [['status_id', 'status'], 'string', 'max' => 100], ]; @@ -73,6 +75,8 @@ class MarketplaceOrder1cStatuses extends \yii\db\ActiveRecord 'status' => 'Статус', 'status_instruction' => 'Инструкция к статусу', 'posit' => 'Порядок статусов', + 'order_status_id' => 'Ссылка на статус заказа в МП', + 'order_substatus_id' => 'Ссылка на субстатус заказа в МП', ]; } @@ -108,4 +112,22 @@ class MarketplaceOrder1cStatuses extends \yii\db\ActiveRecord ['id' => 'status_id_from'] )->via('relationsTo'); } + + /** + * Основной статус заказа + * @return \yii\db\ActiveQuery + */ + public function getOrderStatus() + { + return $this->hasOne(MarketplaceOrderStatusTypes::class, ['id' => 'order_status_id']); + } + + /** + * Субстатус заказа + * @return \yii\db\ActiveQuery + */ + public function getOrderSubstatus() + { + return $this->hasOne(MarketplaceOrderStatusTypes::class, ['id' => 'order_substatus_id']); + } } diff --git a/erp24/views/crud/marketplace-order1c-statuses/_form.php b/erp24/views/crud/marketplace-order1c-statuses/_form.php index 8cb9eb6a..0650665d 100644 --- a/erp24/views/crud/marketplace-order1c-statuses/_form.php +++ b/erp24/views/crud/marketplace-order1c-statuses/_form.php @@ -66,6 +66,23 @@ $this->registerJsFile( 'id' => 'marketplace-order1cstatuses-allowed_closing', ] ) ?> + field($model, 'order_status_id') + ->dropDownList( + $orderStatusTypes, + [ + 'prompt' => 'Привяжите статус заказа', + 'id' => 'marketplace-order1cstatuses-order_status_id', + ] + ) ?> + + field($model, 'order_substatus_id') + ->dropDownList( + $orderStatusTypes, + [ + 'prompt' => 'Привяжите субстатус заказа', + 'id' => 'marketplace-order1cstatuses-order_substatus_id', + ] + ) ?> field($model, 'status_instruction')->textarea(['rows' => 4]) ?>
diff --git a/erp24/views/crud/marketplace-order1c-statuses/create.php b/erp24/views/crud/marketplace-order1c-statuses/create.php index e3140d6b..64b519b6 100644 --- a/erp24/views/crud/marketplace-order1c-statuses/create.php +++ b/erp24/views/crud/marketplace-order1c-statuses/create.php @@ -17,6 +17,7 @@ $this->params['breadcrumbs'][] = $this->title; 'model' => $model, 'relationModels' => $relationModels, 'statusOptions' => $statusOptions, + 'orderStatusTypes' => $orderStatusTypes ]) ?>
diff --git a/erp24/views/crud/marketplace-order1c-statuses/update.php b/erp24/views/crud/marketplace-order1c-statuses/update.php index f359703d..a9ac6e55 100644 --- a/erp24/views/crud/marketplace-order1c-statuses/update.php +++ b/erp24/views/crud/marketplace-order1c-statuses/update.php @@ -21,6 +21,7 @@ $this->params['breadcrumbs'][] = 'Update'; 'model' => $model, 'relationModels' => $relationModels, 'statusOptions' => $statusOptions, + 'orderStatusTypes' => $orderStatusTypes ]) ?> diff --git a/erp24/views/crud/marketplace-order1c-statuses/view.php b/erp24/views/crud/marketplace-order1c-statuses/view.php index 3a2f7f3f..e73e6949 100644 --- a/erp24/views/crud/marketplace-order1c-statuses/view.php +++ b/erp24/views/crud/marketplace-order1c-statuses/view.php @@ -55,6 +55,18 @@ $this->params['breadcrumbs'][] = $this->title; return $model->allowed_closing === 0 ? 'Нет' : 'Да'; } ], + [ + 'attribute' => 'order_status_id', + 'value' => function ($model) { + return $model->orderStatus->code ?? 'Нет привязки'; + } + ], + [ + 'attribute' => 'order_substatus_id', + 'value' => function ($model) { + return $model->orderSubstatus->code ?? 'Нет привязки'; + } + ], 'status_instruction:ntext', [ 'label' => 'Связанные статусы', -- 2.39.5