]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Избавление от отметок для админов и переход оот чекинов к факту на первом шаге
authormarina <m.zozirova@gmail.com>
Thu, 18 Jul 2024 12:18:26 +0000 (15:18 +0300)
committermarina <m.zozirova@gmail.com>
Thu, 18 Jul 2024 12:18:26 +0000 (15:18 +0300)
erp24/actions/timetable/StartShiftStepOneAction.php
erp24/views/timetable/start_shift_step_one.php

index f7f6ba941aee8626d4cf3f033b23060a5f0594ae..6532266814e439c697fe063d15e1d908a8e0a014 100755 (executable)
@@ -30,37 +30,21 @@ class StartShiftStepOneAction extends Action
             return $this->controller->redirect('/');
         }
 
-        /** @var AdminCheckin[] $dayCheckins */
-        $dayCheckins = AdminCheckin::find()
+        $fact = TimetableFactModel::getOpening($userModel->id, date('Y-m-d'));
+        $plan = Timetable::find()
             ->andWhere(['admin_id' => $userModel->id])
-            ->andWhere(['>', 'time', date('Y-m-d H:i:s', strtotime('-1 day'))])
-            ->orderBy(['time' => SORT_ASC])
-            ->all();
-        $lastCheckin = end($dayCheckins);
+            ->andWhere(['date' => date('Y-m-d')])
+            ->andWhere(['tabel' => 0])
+            ->one();
 
-        $modelTypeId = (function () use ($userModel, $lastCheckin) {
-            if ($userModel->adminGroup->isRoaming()) {
-                return AdminCheckin::TYPE_APPEAR;
-            }
-            if ($lastCheckin && $lastCheckin->isStart()) {
+        $modelTypeId = (function () use ($fact, $userModel) {
+            if ($fact) {
                 return AdminCheckin::TYPE_END;
             }
             return AdminCheckin::TYPE_START;
         })();
 
-        if ($modelTypeId == AdminCheckin::TYPE_END) {
-            $adminStores = CityStore::getNames([$lastCheckin->store_id]);
-            $lastCheckinFact = TimetableFactModel::findOne(['checkin_start_id' => $lastCheckin->id]);
-            if(!empty($lastCheckinFact)) {
-                $shiftArray = array('id' => $lastCheckinFact->shift_id, 'name' => $lastCheckinFact->shift->name);
-            } else {
-                $plan = Timetable::find()
-                    ->andWhere(['store_id' => $lastCheckin->store_id])
-                    ->andWhere(['date' => $lastCheckin->date])
-                    ->one();
-                $shiftArray = array('id' => $plan->shift->id, 'name' => $plan->shift->name);
-            }
-        } else {
+        if ($modelTypeId == AdminCheckin::TYPE_START) {
             $adminStores = ArrayHelper::map($userModel->getStores(), 'id', 'name');
             $shiftArray = ArrayHelper::map(Shift::find()->andWhere(['not in', 'id', [3, 4, 6, 7]])->all(), 'id', 'name');
         }
@@ -70,8 +54,8 @@ class StartShiftStepOneAction extends Action
             'userModel' => $userModel,
             'adminStores' => $adminStores,
             'device' => $device,
-            'dayCheckins' => $dayCheckins,
-            'lastCheckin' => $lastCheckin,
+            'fact' => $fact,
+            'plan' => $plan,
             'shiftArray' => $shiftArray,
         ]);
     }
index ad702cfd97779bbd22b504eee06bf128fe5cf02d..284ec28d0e9c04ebbb1763621da3d911d4876fa8 100644 (file)
@@ -4,11 +4,10 @@
    * @var \yii_app\records\Admin $userModel\r
    * @var StartForm $model\r
    * @var \yii_app\records\AdminDesktop $device\r
-   * @var AdminCheckin[] $dayCheckins\r
-   * @var AdminCheckin $lastCheckin\r
    * @var TimetablePlan[] $planSlots\r
    * @var array $adminStores\r
    * @var array $shiftArray\r
+   * @var \yii_app\records\TimetableFactModel $fact\r
    */\r
 \r
   use yii\helpers\ArrayHelper;\r
@@ -24,16 +23,11 @@ use yii_app\forms\timetable\StartForm;
 //  $this->registerJsFile('/js/timetable/script.js', ['position' => \yii\web\View::POS_END]);\r
 \r
     $textButton = '';\r
-    if ($userModel->adminGroup->isRoaming()) {\r
-        $textButton = 'Отметится';\r
+\r
+    if ($fact) {\r
+        $textButton = 'Закрытие смены';\r
     } else {\r
-        if (!empty($lastCheckin)) {\r
-            if (!empty($lastCheckin->type_id)) {\r
-                $textButton = ($lastCheckin->isStart()) ? 'Закрытие смены' : 'Открытие смены';\r
-            }\r
-        } else {\r
-            $textButton = 'Открытие смены';\r
-        }\r
+        $textButton = 'Открытие смены';\r
     }\r
 \r
     ?>\r
@@ -63,7 +57,7 @@ use yii_app\forms\timetable\StartForm;
           >\r
             <div class="d-flex justify-content-between align-items-center">\r
               <div class="fs-5 fw-bold"><?php\r
-                if (empty($lastCheckin->type_id) || $lastCheckin->isEnd()) {\r
+                if (empty($fact) && empty($plan)) {\r
                     echo 'Выберите магазин';\r
                 }\r
                 ?></div>\r
@@ -78,7 +72,7 @@ use yii_app\forms\timetable\StartForm;
             </div>\r
             <div class="text-body-tertiary mt-3 mb-3">\r
                 <?php\r
-                if (empty($lastCheckin->type_id) || $lastCheckin->isEnd()) {\r
+                if (empty($fact) && empty($plan)) {\r
                     echo 'Выберите нужный магазин и откройте свою смену';\r
                 }\r
                 ?>\r
@@ -98,20 +92,22 @@ use yii_app\forms\timetable\StartForm;
                   <?php\r
                   //$adminStores\r
 \r
-                  if (empty($lastCheckin->type_id) || $lastCheckin->isEnd() || $userModel->adminGroup->isRoaming()) {\r
-                    echo Html::dropDownList(\r
-                'store_id',\r
-                null,\r
-                        $adminStores,\r
-                        [\r
-                            'class' => "form-select",\r
-                            'aria-label' => "Пример выбора по умолчанию",\r
-                        ]\r
-                      );\r
+                  if (empty($fact)) {\r
+                      if (empty($plan)) {\r
+                          echo Html::dropDownList(\r
+                              'store_id',\r
+                              null,\r
+                              $adminStores,\r
+                              [\r
+                                  'class' => "form-select",\r
+                                  'aria-label' => "Пример выбора по умолчанию",\r
+                              ]\r
+                          );\r
+                      } else {\r
+                          echo '<div class="fs-5">' . $plan->store->name . '</div>';\r
+                      }\r
                   } else {\r
-                      echo $adminStores[array_key_first($adminStores)];\r
-\r
-                      echo  Html::hiddenInput('store_id', array_key_first($adminStores));\r
+                      echo '<div class="fs-5">' . $fact->store->name . '</div>';\r
                   }\r
                   ?>\r
 \r
@@ -120,14 +116,17 @@ use yii_app\forms\timetable\StartForm;
                     <div class="col-lg-3">\r
                         <div class="text-secondary mb-1">Тип смены</div>\r
                         <?php\r
-                        if (empty($lastCheckin->type_id) || $lastCheckin->isEnd() || $userModel->adminGroup->isRoaming()) {\r
-                            echo Html::dropDownList('shift_id', null, $shiftArray, [\r
-                                'class' => "form-select",\r
-                                'aria-label' => "Пример выбора по умолчанию",\r
-                            ]);\r
+                        if (empty($fact)) {\r
+                            if (empty($plan)) {\r
+                                echo Html::dropDownList('shift_id', null, $shiftArray, [\r
+                                    'class' => "form-select",\r
+                                    'aria-label' => "Пример выбора по умолчанию",\r
+                                ]);\r
+                            } else {\r
+                                echo '<div class="fs-5">' . $plan->shift->name . '</div>';\r
+                            }\r
                         } else {\r
-                            echo $shiftArray['name'];\r
-                            echo Html::hiddenInput('shift_id', $shiftArray['id']);\r
+                            echo '<div class="fs-5">' . $fact->shift->name . '</div>';\r
                         }\r
 \r
                         ?>\r