From: fomichev Date: Thu, 20 Feb 2025 12:46:37 +0000 (+0300) Subject: Изменение вида таблиц и поиска X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=c9b5ae5670186013e0571f377c735e2cdd002f63;p=erp24_rep%2Fyii-erp24%2F.git Изменение вида таблиц и поиска --- diff --git a/erp24/records/MarketplaceOrderStatusHistory.php b/erp24/records/MarketplaceOrderStatusHistory.php index 25212740..781acf70 100644 --- a/erp24/records/MarketplaceOrderStatusHistory.php +++ b/erp24/records/MarketplaceOrderStatusHistory.php @@ -60,5 +60,13 @@ class MarketplaceOrderStatusHistory extends \yii\db\ActiveRecord 'initiator' => 'Инициатор изменения', ]; } + public function getStatus() + { + return $this->hasOne(MarketplaceOrderStatusTypes::class, ['id' => 'status_id']); + } + public function getSubstatus() + { + return $this->hasOne(MarketplaceOrderStatusTypes::class, ['id' => 'substatus_id']); + } } diff --git a/erp24/records/MarketplaceOrderStatusHistorySearch.php b/erp24/records/MarketplaceOrderStatusHistorySearch.php index 779c9f7f..0e28766e 100644 --- a/erp24/records/MarketplaceOrderStatusHistorySearch.php +++ b/erp24/records/MarketplaceOrderStatusHistorySearch.php @@ -6,11 +6,14 @@ use yii\base\Model; use yii\data\ActiveDataProvider; use yii_app\records\MarketplaceOrderStatusHistory; + /** * MarketplaceOrderStatusHistorySearch represents the model behind the search form of `yii_app\records\MarketplaceOrderStatusHistory`. */ class MarketplaceOrderStatusHistorySearch extends MarketplaceOrderStatusHistory { + public $status_code; // Добавляем свойство для поиска по коду статуса + public $substatus_code; // Добавляем свойство для поиска по коду подстатуса /** * {@inheritdoc} */ @@ -18,7 +21,7 @@ class MarketplaceOrderStatusHistorySearch extends MarketplaceOrderStatusHistory { return [ [['id', 'order_id', 'status_id', 'substatus_id', 'active'], 'integer'], - [['date_from', 'date_end', 'initiator'], 'safe'], + [['date_from', 'date_end', 'initiator', 'status_code', 'substatus_code'], 'safe'], ]; } @@ -41,7 +44,8 @@ class MarketplaceOrderStatusHistorySearch extends MarketplaceOrderStatusHistory */ public function search($params, $formName = null) { - $query = MarketplaceOrderStatusHistory::find(); + $query = MarketplaceOrderStatusHistory::find() + ->joinWith(['status statusAlias', 'substatus substatusAlias']); // add conditions that should always apply here @@ -69,6 +73,11 @@ class MarketplaceOrderStatusHistorySearch extends MarketplaceOrderStatusHistory ]); $query->andFilterWhere(['ilike', 'initiator', $this->initiator]); + // Фильтр по коду статуса (с псевдонимом) + $query->andFilterWhere(['ilike', 'statusAlias.code', $this->status_code]); + + // Фильтр по коду подстатуса (с псевдонимом) + $query->andFilterWhere(['ilike', 'substatusAlias.code', $this->substatus_code]); return $dataProvider; } diff --git a/erp24/views/marketplace-order-status-history/index.php b/erp24/views/marketplace-order-status-history/index.php index bff79ec2..6eef9d2e 100644 --- a/erp24/views/marketplace-order-status-history/index.php +++ b/erp24/views/marketplace-order-status-history/index.php @@ -10,7 +10,7 @@ use yii\grid\GridView; /** @var yii_app\records\MarketplaceOrderStatusHistorySearch $searchModel */ /** @var yii\data\ActiveDataProvider $dataProvider */ -$this->title = 'Marketplace Order Status Histories'; +$this->title = 'История статусов'; $this->params['breadcrumbs'][] = $this->title; ?>
@@ -42,9 +42,45 @@ $this->params['breadcrumbs'][] = $this->title; ]); } ], - 'status_id', - 'substatus_id', - 'active', + [ + 'attribute' => 'status_id', + 'format' => 'raw', + 'value' => function ($model) { + $status = $model->status->code ?? ''; + $class = ''; + if ($status === 'DELIVERED') { + $class = 'bg-success text-white'; + } elseif ($status === 'CANCELLED') { + $class = 'bg-danger text-white'; + } + return Html::tag('span', $status, ['class' => "badge $class"]); + }, + 'filter' => Html::input('text', 'MarketplaceOrdersSearch[status_code]', $searchModel->status_code, ['class' => 'form-control']), + ], + [ + 'attribute' => 'substatus_id', + 'value' => function ($model) { + return $model->substatus->code ?? '-'; + }, + 'filter' => Html::input('text', 'MarketplaceOrdersSearch[substatus_code]', $searchModel->substatus_code, ['class' => 'form-control']), + ], + [ + 'attribute' => 'active', + 'format' => 'raw', + 'value' => function ($model) { + $text = ''; + $class = ''; + if ($model->active === 1) { + $class = 'bg-success text-white'; + $text = 'Активная'; + } elseif ($model->active === 0) { + $class = 'bg-danger text-white'; + $text = 'Неактивная'; + } + return Html::tag('span', $text, ['class' => "badge $class"]); + }, + 'filter' => Html::input('text', 'MarketplaceOrdersSearch[status_code]', $searchModel->status_code, ['class' => 'form-control']), + ], 'date_from', 'date_end', 'initiator:ntext',