return $this->controller->redirect('/');
}
- $fact = TimetableFactModel::getOpening($userModel->id, date('Y-m-d'));
+ $fact = TimetableFactModel::getLast($userModel->id, date('Y-m-d'));
$plan = Timetable::find()
->andWhere(['admin_id' => $userModel->id])
->andWhere(['date' => date('Y-m-d')])
->one();
//отрабатывает только для открытия
- $fact = TimetableFactModel::getOpening($userModel->id, date('Y-m-d'));
+ $fact = TimetableFactModel::getLast($userModel->id, date('Y-m-d'));
- //делается для того что при закрытии нужны дата и время фактического закрытия
if (!$fact) {
- $fact = TimetableFactModel::find()
- ->andWhere(['admin_id' => $userModel->id])
- ->andWhere(['date_shift' => date('Y-m-d')])
- ->andWhere(['is_close' => true])
- ->orderBy('id desc')
- ->one();
+ $fact = TimetableFactModel::getLast($userModel->id, date('Y-m-d'), false);
}
if ($request->isAjax
->andWhere(['tabel' => 0])
->orderBy('id desc')
->one();
- $fact = TimetableFactModel::getOpening($userModel->id, date('Y-m-d'));
+ $fact = TimetableFactModel::getLast($userModel->id, date('Y-m-d'));
$adminStoreId = null;
*/
public static function setValues($adminCheckin, $is_start = true)
{
- $model = self::getOpening($adminCheckin->admin_id, $adminCheckin->date);
+ $model = self::getLast($adminCheckin->admin_id, $adminCheckin->date);
/** @var $model TimetableFactModel */
if ($model) {
* @param $date
* @return array|ActiveRecord|null
*/
- public static function getOpening(int $adminId, $date) {
- return self::find()
- ->andWhere(['admin_id' => $adminId])
- ->andWhere(['is_opening' => true])
- ->andWhere([
+ public static function getLast(int $adminId, $date, $opening = true)
+ {
+ $fact = self::find()
+ ->andWhere(['admin_id' => $adminId])->andWhere([
'OR',
['date_shift' => $date],
['date_shift' => date('Y-m-d', strtotime('-1 day'))],
- ])
+ ]);
+
+ $opening ? $fact->andWhere(['is_opening' => true]) : $fact->andWhere(['is_close' => true]);
+
+ return $fact
->orderBy('id desc')
->one();
}