]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Исрпавление вьюшки feature_smirnov_erp-63_new_fact_table_filters origin/feature_smirnov_erp-63_new_fact_table_filters
authorAlexander Smirnov <fredeom@mail.ru>
Fri, 5 Jul 2024 12:09:28 +0000 (15:09 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Fri, 5 Jul 2024 12:09:28 +0000 (15:09 +0300)
erp24/controllers/TimetableFactController.php
erp24/views/timetable-fact/index.php

index d0b46cb24e869daa857fb6cc32abafe09226a94c..4a73b709791fa81906cbbe408a12ddb0cb494433 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace app\controllers;
 
+use http\Exception;
 use Yii;
 use yii\base\DynamicModel;
 use yii\db\Expression;
@@ -54,15 +55,18 @@ class TimetableFactController extends Controller
            [['store_id', 'date_start', 'date_end', 'group_id', 'admin_id', 'autoclosed', 'sort'], 'safe']
         ]);
         $model->load(Yii::$app->request->get());
+        if ($model->date_start && $model->date_end && $model->date_end < $model->date_start) {
+            Yii::$app->session->setFlash('info', "Дата окончания не может быть раньше даты начала");
+        }
         $timetableFactModelQuery = TimetableFactModel::find();
         if ($model->store_id && $model->store_id > 0) {
             $timetableFactModelQuery->andWhere(['store_id' => $model->store_id]);
         }
         if ($model->date_start) {
-            $timetableFactModelQuery->andWhere(['>=', new Expression('CONCAT(date_end, \' \', time_end)'), $model->date_start]);
+            $timetableFactModelQuery->andWhere(['>=', 'date_shift', date('Y-m-d 00:00:00', strtotime($model->date_start))]);
         }
         if ($model->date_end) {
-            $timetableFactModelQuery->andWhere(['<=', new Expression('CONCAT(date_start, \' \', time_start)'), $model->date_end]);
+            $timetableFactModelQuery->andWhere(['<=', 'date_shift', date('Y-m-d 23:59:59', strtotime($model->date_end))]);
         }
         if ($model->group_id && $model->group_id > 0) {
             $timetableFactModelQuery->andWhere(['d_id' => $model->group_id]);
index 75ba0fe69b88d225d868a3ddddf4678c7c4e372a..d5bac023f9aa2a7044bdffc0f7ab704c8fca0003 100644 (file)
@@ -21,11 +21,20 @@ $this->params['breadcrumbs'][] = $this->title;
 
     <h1><?= Html::encode($this->title) ?></h1>
 
+    <?php if (Yii::$app->session->hasFlash('info')): ?>
+        <div class="alert alert-warning alert-dismissable">
+            <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
+            <?= Yii::$app->session->getFlash('info') ?>
+        </div>
+    <?php endif; ?>
+
     <?php $form = ActiveForm::begin(['method' => 'GET']) ?>
 
     <div class="row">
-        <div class="col-11 d-flex align-items-center justify-content-around">
-            <div class="mb-3">Магазин:</div> <div style="display:inline-block"><?= $form->field($model, 'store_id')->widget(Select2::class, [
+        <div class="col-11 d-flex align-items-center justify-content-around gap-2">
+            <div class="d-flex align-items-center justify-content-center gap-2">
+                <div class="mb-3">Магазин:</div>
+                <div style="display:inline-block"><?= $form->field($model, 'store_id')->widget(Select2::class, [
                     'data' => $stores,
                     'language' => 'ru',
                     'options' => ['placeholder' => 'Магазин...'],
@@ -33,25 +42,34 @@ $this->params['breadcrumbs'][] = $this->title;
                         'allowClear' => true
                     ],
                 ])->label(false) ?></div>
-        <div class="mb-3">Дата до:</div> <div style="display:inline-block"><?= $form->field($model, 'date_start')->widget(DateTimePicker::class, [
+            </div>
+            <div class="d-flex align-items-center justify-content-center gap-2">
+                <div class="mb-3">Дата смены от:</div>
+                <div style="display:inline-block; max-width: 120px;"><?= $form->field($model, 'date_start')->widget(DateTimePicker::class, [
                     'language' => 'ru',
                     'template' => '{input}',
                     'clientOptions' => [
                         'autoclose' => true,
-                        'format' => 'Y-m-d H:i:s',
+                        'format' => 'Y-m-d',
                         'todayBtn' => true
                     ],
                 ])->label(false) ?></div>
-        <div class="mb-3">после:</div> <div style="display:inline-block"><?= $form->field($model, 'date_end')->widget(DateTimePicker::class, [
+            </div>
+            <div class="d-flex align-items-center justify-content-center gap-2">
+                <div class="mb-3">до:</div>
+                <div style="display:inline-block; max-width: 120px;"><?= $form->field($model, 'date_end')->widget(DateTimePicker::class, [
                     'language' => 'ru',
                     'template' => '{input}',
                     'clientOptions' => [
                         'autoclose' => true,
-                        'format' => 'Y-m-d H:i:s',
+                        'format' => 'Y-m-d',
                         'todayBtn' => true
                     ],
                 ])->label(false) ?></div>
-        <div class="mb-3">Группа:</div> <div style="display:inline-block"><?= $form->field($model, 'group_id')->widget(Select2::class, [
+            </div>
+            <div class="d-flex align-items-center justify-content-center gap-2">
+                <div class="mb-3">Группа:</div>
+                <div style="display:inline-block"><?= $form->field($model, 'group_id')->widget(Select2::class, [
                     'data' => $adminGroups,
                     'language' => 'ru',
                     'options' => ['placeholder' => 'Должность...'],
@@ -59,16 +77,24 @@ $this->params['breadcrumbs'][] = $this->title;
                         'allowClear' => true
                     ],
                 ])->label(false) ?></div>
-        <div class="mb-3">Сотрудник:</div> <div style="display:inline-block"><?= $form->field($model, 'admin_id')->widget(Select2::class, [
-                'data' => $admins,
-                'language' => 'ru',
-                'options' => ['placeholder' => 'Сотрудник...'],
-                'pluginOptions' => [
-                    'allowClear' => true
-                ],
-            ])->label(false) ?></div>
-        <div class="mb-3" title="Автоматическое закрытие">Авт. закр.:</div> <div style="display:inline-block"><?= $form->field($model, 'autoclosed')->checkbox([0 => 'unchecked', 1 => 'checked'], [])->label(false) ?></div>
-        <div class="mb-4"><?= Html::submitButton('Применить', ['class' => 'btn btn-secondary btn-sm'])?></div>
+            </div>
+            <div class="d-flex align-items-center justify-content-center gap-2">
+                <div class="mb-3">Сотрудник:</div>
+                <div style="display:inline-block"><?= $form->field($model, 'admin_id')->widget(Select2::class, [
+                    'data' => $admins,
+                    'language' => 'ru',
+                    'options' => ['placeholder' => 'Сотрудник...'],
+                    'pluginOptions' => [
+                        'allowClear' => true
+                    ],
+                ])->label(false) ?></div>
+            </div>
+            <div class="d-flex align-items-center justify-content-center gap-2">
+                <div class="mb-3" title="Автоматическое закрытие">Авт. закр.:</div>
+                <div style="display:inline-block"><?= $form->field($model, 'autoclosed')->checkbox([0 => 'unchecked', 1 => 'checked'], [])->label(false) ?></div>
+            </div>
+            <div class="mb-4"><?= Html::submitButton('Применить', ['class' => 'btn btn-secondary btn-sm'])?></div>
+            <div class="mb-4"><?= Html::a('Сбросить фильтр', '/timetable-fact/index', ['class' => 'btn btn-link btn-sm'])?></div>
         </div>
     </div>