]);
}
- if ($filter->date_from || $filter->date_to || $filter->is_archive !== null && $filter->is_archive !== '') {
+ if ($filter->date_from || $filter->date_to || (int)$filter->is_archive == 1) {
$hasDateFrom = !empty($filter->date_from);
$hasDateTo = !empty($filter->date_to);
$dateExists = MatrixBouquetActuality::find()
->alias('a')
->where('a.bouquet_id = bc.id');
- if ($filter->is_archive !== null && $filter->is_archive !== '') {
+ if ((int)$filter->is_archive == 1) {
$dateExists->andWhere(['a.is_archive' => (int)$filter->is_archive]);
}
}
$query->with(['actualities' => function ($subQuery) use ($filter, $hasDateFrom, $hasDateTo, $dateFrom, $dateTo) {
- if ($filter->is_archive !== null && $filter->is_archive !== '') {
+ if ((int)$filter->is_archive == 1) {
$subQuery->andWhere(['is_archive' => (int)$filter->is_archive]);
}
$rows = [];
foreach ($bouquets as $bouquet) {
$acts = $bouquet->actualities;
+ $price = $bouquet->priceRel;
if ($acts) {
foreach ($acts as $act) {
$rows[] = [
'product' => $bouquet,
'actuality' => $act,
+ 'price' => $price,
];
}
} else {
$rows[] = [
'product' => $bouquet,
'actuality' => null,
+ 'price' => $price,
];
}
}
return ['success'=>false,'message'=>current($model->getFirstErrors()) ?: 'Ошибка сохранения'];
}
- public function actionCreateChild($parent_id)
+ public function actionCreateChild($parent_id = null)
{
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
$child = new MatrixType();
$child->load(Yii::$app->request->post(), '');
- $child->parent_id = (int)$parent_id ?? null;
+ if (!empty($parent_id)) {
+ $child->parent_id = (int)$parent_id;
+ }
+
if ($child->save()) {
Yii::$app->session->setFlash('success', 'Запись создана', false);
return [
[['name'], 'filter', 'filter' => 'trim'],
[['name'], 'required'],
- [['created_by', 'updated_by', 'deleted_by', 'active', 'parent_id', 'deleted'], 'integer'],
+ [['created_by', 'updated_by', 'deleted_by', 'active', 'deleted'], 'integer'],
[['created_at', 'updated_at', 'deleted_at'], 'safe'],
[['name'], 'string', 'max' => 255],
+ [['parent_id'], 'integer'],
+ [['parent_id'], 'default', 'value' => null],
// Уникальность имени в рамках одной группы
[
['name', 'parent_id'],
[
'attribute' => 'price',
'label' => 'Цена',
- 'value' => function($row) { return $row['price']; },
+ 'value' => function($row) { return $row['price']->price; },
'format' => ['decimal', 2],
],
[
- 'label' => 'Актуальность ассортимента',
+ 'label' => 'Актуальность',
'format' => 'raw',
'contentOptions' => ['style'=>'white-space:nowrap; min-width:100px;'],
'value' => function ($row, $k, $i) use ($months) {
'contentOptions' => ['style'=>'width:160px; text-align:center;'],
'value' => function ($row, $key, $index) {
$product = $row['product'];
- $btnArchOn = Html::button('+ Добавить интервал', [
- 'class' => 'btn btn-xs btn-outline-primary ms-2 add-actuality-row',
+ $btnArchOn = Html::button('В архив', [
+ 'class' => 'btn btn-xs btn-danger ms-2 add-actuality-row',
'type' => 'button',
- 'title' => 'Ð\94обавиÑ\82Ñ\8c инÑ\82еÑ\80вал',
+ 'title' => 'Ð\92 аÑ\80Ñ\85ив',
'data-guid' => $product->id,
'data-name' => $product->name,
]);
- $btnArchOff = Html::button('+ Добавить интервал', [
- 'class' => 'btn btn-xs btn-outline-primary ms-2 add-actuality-row',
+ $btnArchOff = Html::button('Из архива', [
+ 'class' => 'btn btn-xs btn-secondary ms-2 add-actuality-row',
'type' => 'button',
- 'title' => 'Ð\94обавиÑ\82Ñ\8c инÑ\82еÑ\80вал',
+ 'title' => 'Ð\98з аÑ\80Ñ\85ива',
'data-guid' => $product->id,
'data-name' => $product->name,
]);
<h5 class="modal-title">Создание новой группы</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"><i class="fa fa-times"></i></button>
</div>
- <form class="ajax-form" data-action="<?= Url::to(['matrix-type/create-child', 'parent_id' => 0]) ?>" data-success="created" data-parent-id="<?= 0 ?>">
+ <form class="ajax-form" data-action="<?= Url::to(['matrix-type/create-child']) ?>" data-success="created" data-parent-id="<?= 0 ?>">
<div class="modal-body">
- <input type="hidden" name="parent_id" value="<?= 0 ?>">
+
<div class="mb-3">
<label for="nameCreateGropField" class="form-label">Название</label>
<input id="nameCreateGropField" type="text" name="name" class="form-control" required>