return AdminCheckin::TYPE_START;
})();
- /** @var TimetablePlan[] $planSlots */
- $planSlots = TimetablePlan::find()
- ->andWhere(
- ($device->isFixedStore() && !$userModel->adminGroup->isRoaming()) ?
- ['store_id' => $model->store_id] :
- ['admin_id' => $model->admin_id]
- )
- ->andWhere(['OR',
- ['BETWEEN', 'datetime_start', date('Y-m-d H:i:s'), date('Y-m-d H:i:s', strtotime('+6 hour'))],
- ['BETWEEN', 'datetime_end', date('Y-m-d H:i:s', strtotime('-6 hour')), date('Y-m-d H:i:s')],
- ['AND', ['<', 'datetime_start', date('Y-m-d H:i:s')], ['>', 'datetime_end', date('Y-m-d H:i:s')]]
- ])
- ->all();
-
$model->shift_id = $request->getBodyParam('shift_id');
$model->store_id = $request->getBodyParam('store_id');
$model->store_id = $fact->store_id;
}
+ /** @var TimetablePlan[] $planSlots */
+ $planSlots = TimetablePlan::find()
+ ->andWhere(['store_id' => $model->store_id])
+ ->andWhere(['admin_id' => $model->admin_id])
+ ->andWhere(['OR',
+ ['BETWEEN', 'datetime_start', date('Y-m-d H:i:s'), date('Y-m-d H:i:s', strtotime('+6 hour'))],
+ ['BETWEEN', 'datetime_end', date('Y-m-d H:i:s', strtotime('-6 hour')), date('Y-m-d H:i:s')],
+ ['AND', ['<', 'datetime_start', date('Y-m-d H:i:s')], ['>', 'datetime_end', date('Y-m-d H:i:s')]]
+ ])
+ ->all();
+
+
if ($fact) {
$model->plan_id = $fact->plan_id;
$model->replaced_admin_id = $fact->admin_id_add;
if ($this->date != $plan->date) {
$this->addError('date', 'Дата открытия не совпадает с планом');
}
- $targetAdminId = $this->replaced_admin_id ?: $this->admin_id;
+ $targetAdminId = $this->admin_id ?: $this->replaced_admin_id;
if ($targetAdminId != $plan->admin_id) {
$this->addError($this->replaced_admin_id ? 'replaced_admin_id' : 'admin_id', 'Выбран неправильный пользователь в плане');
}