From 395bf8a50b499c48238003b982635e595b6d3fb8 Mon Sep 17 00:00:00 2001 From: marina Date: Mon, 9 Sep 2024 15:09:33 +0300 Subject: [PATCH] =?utf8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=B4?= =?utf8?q?=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5?= =?utf8?q?=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20?= =?utf8?q?=D0=B2=20=D1=82=D0=B5=D0=BB=D0=B5=D0=B3=D1=80=D0=B0=D0=BC=20?= =?utf8?q?=D0=B1=D0=BE=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../modules/v1/models/timetable/Timetable.php | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/erp24/api3/modules/v1/models/timetable/Timetable.php b/erp24/api3/modules/v1/models/timetable/Timetable.php index f069ceb4..80133fef 100644 --- a/erp24/api3/modules/v1/models/timetable/Timetable.php +++ b/erp24/api3/modules/v1/models/timetable/Timetable.php @@ -39,7 +39,8 @@ class Timetable extends \yii_app\records\TimetableV3 ]; } - public function validateTimetableIntersection($attribute, $params) { + public function validateTimetableIntersection($attribute, $params) + { \Yii::debug($this->datetime_start); \Yii::debug($this->datetime_end); @@ -58,8 +59,8 @@ class Timetable extends \yii_app\records\TimetableV3 ]) ->one(); if ($sameDate && ($this->isNewRecord || $this->id != $sameDate->id)) { - $this->addError('datetime_start', 'Сотрудник ' .$this->admin->name_full.' уже добавлялся на эту дату в ' . $sameDate->store->name); - $this->addError('time_start', 'Сотрудник ' .$this->admin->name_full.' уже добавлялся на эту дату в ' . $sameDate->store->name); + $this->addError('datetime_start', 'Сотрудник ' . $this->admin->name_full . ' уже добавлялся на эту дату в ' . $sameDate->store->name); + $this->addError('time_start', 'Сотрудник ' . $this->admin->name_full . ' уже добавлялся на эту дату в ' . $sameDate->store->name); } /** @var Timetable $endOverlap */ $endOverlap = self::find() @@ -183,11 +184,29 @@ class Timetable extends \yii_app\records\TimetableV3 return $this->hasOne(CityStore::class, ['id' => 'store_id']); } - public function getCheckIns() { - return $this->hasMany(AdminCheckin::class, ['plan_id' => 'id']); + public function getCheckIns() + { + if (!empty($this->plan_id)) { + return $this->hasMany(AdminCheckin::class, ['plan_id' => 'id']); + } else { + return $this->hasMany(AdminCheckin::class, ['admin_id' => 'admin_id']) + ->andWhere(['BETWEEN', 'datetime_start', date('Y-m-d H:i:s'), date('Y-m-d H:i:s', strtotime('+6 hour'))]) + ->andWhere(['BETWEEN', 'datetime_end', date('Y-m-d H:i:s', strtotime('-6 hour')), date('Y-m-d H:i:s')]); + +// return $this->hasOne(AdminCheckin::class, ['admin_id' => 'id']) +// ->andWhere(['>=', 'date', date('Y-m-d 00:00:00')]) +// ->andWhere(['<=', 'date', date('Y-m-d 23:59:59')]); + } } - public function getCheckInCount() { - return $this->hasMany(AdminCheckin::class, ['plan_id' => 'id'])->count(); + public function getCheckInCount() + { + if (!empty($this->plan_id)) { + return $this->hasMany(AdminCheckin::class, ['plan_id' => 'id'])->count(); + } else { + return $this->hasMany(AdminCheckin::class, ['admin_id' => 'admin_id']) + ->andWhere(['BETWEEN', 'datetime_start', date('Y-m-d H:i:s'), date('Y-m-d H:i:s', strtotime('+6 hour'))]) + ->andWhere(['BETWEEN', 'datetime_end', date('Y-m-d H:i:s', strtotime('-6 hour')), date('Y-m-d H:i:s')])->count(); + } } } \ No newline at end of file -- 2.39.5