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');
}
'userModel' => $userModel,
'adminStores' => $adminStores,
'device' => $device,
- 'dayCheckins' => $dayCheckins,
- 'lastCheckin' => $lastCheckin,
+ 'fact' => $fact,
+ 'plan' => $plan,
'shiftArray' => $shiftArray,
]);
}
* @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
// $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
>\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
</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
<?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
<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