]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
правка для отображения данных в телеграм боте
authormarina <m.zozirova@gmail.com>
Mon, 9 Sep 2024 12:09:33 +0000 (15:09 +0300)
committermarina <m.zozirova@gmail.com>
Mon, 9 Sep 2024 12:09:33 +0000 (15:09 +0300)
erp24/api3/modules/v1/models/timetable/Timetable.php

index f069ceb4f4e836786005fd96b35f784806589864..80133fef61f4ef09ac1b885beb32e4138e3de7f1 100644 (file)
@@ -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