From: marina Date: Mon, 9 Sep 2024 12:09:33 +0000 (+0300) Subject: правка для отображения данных в телеграм боте X-Git-Tag: 1.5~32^2 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=395bf8a50b499c48238003b982635e595b6d3fb8;p=erp24_rep%2Fyii-erp24%2F.git правка для отображения данных в телеграм боте --- 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