use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii_app\records\MarketplaceOrder1cStatusesRelations;
+use yii_app\records\MarketplaceOrderStatusTypes;
use yii_app\services\LessonService;
/**
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'])
'model' => $model,
'relationModels' => $relationModels,
'statusOptions' => $statusOptionsByMarketplace,
+ 'orderStatusTypes' => $orderStatusTypesMap
]);
}
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()];
'model' => $model,
'relationModels' => $relationModels,
'statusOptions' => $statusOptionsByMarketplace,
+ 'orderStatusTypes' => $orderStatusTypesMap
]);
}
--- /dev/null
+<?php
+
+use yii\db\Migration;
+
+class m250716_143137_add_mp_orders_statuses_id_to_statuses_1c_processing extends Migration
+{
+ const TABLE_NAME = 'erp24.marketplace_order_1c_statuses';
+ /**
+ * {@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('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;
+ }
+ */
+}
* @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
{
[['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],
];
'status' => 'Статус',
'status_instruction' => 'Инструкция к статусу',
'posit' => 'Порядок статусов',
+ 'order_status_id' => 'Ссылка на статус заказа в МП',
+ 'order_substatus_id' => 'Ссылка на субстатус заказа в МП',
];
}
['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']);
+ }
}
'id' => 'marketplace-order1cstatuses-allowed_closing',
]
) ?>
+ <?= $form->field($model, 'order_status_id')
+ ->dropDownList(
+ $orderStatusTypes,
+ [
+ 'prompt' => 'Привяжите статус заказа',
+ 'id' => 'marketplace-order1cstatuses-order_status_id',
+ ]
+ ) ?>
+
+ <?= $form->field($model, 'order_substatus_id')
+ ->dropDownList(
+ $orderStatusTypes,
+ [
+ 'prompt' => 'Привяжите субстатус заказа',
+ 'id' => 'marketplace-order1cstatuses-order_substatus_id',
+ ]
+ ) ?>
<?= $form->field($model, 'status_instruction')->textarea(['rows' => 4]) ?>
<div class="form-group">
'model' => $model,
'relationModels' => $relationModels,
'statusOptions' => $statusOptions,
+ 'orderStatusTypes' => $orderStatusTypes
]) ?>
</div>
'model' => $model,
'relationModels' => $relationModels,
'statusOptions' => $statusOptions,
+ 'orderStatusTypes' => $orderStatusTypes
]) ?>
</div>
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' => 'Связанные статусы',