Просмотр исходного кода

absence_report - spostata query in mount + modifiche course_members

ferrari 1 месяц назад
Родитель
Сommit
62ed9e4c0d
1 измененных файлов с 22 добавлено и 14 удалено
  1. 22 14
      app/Http/Livewire/AbsenceReport.php

+ 22 - 14
app/Http/Livewire/AbsenceReport.php

@@ -15,11 +15,6 @@ class AbsenceReport extends Component
     public $year;
 
     public function mount()
-    {
-        setlocale(LC_ALL, 'it_IT');
-    }
-
-    public function render()
     {
         setlocale(LC_ALL, 'it_IT');
 
@@ -48,15 +43,20 @@ class AbsenceReport extends Component
             $limit = now()->endOfDay();
 
             foreach ($courses as $course) {
-                $course_members = \App\Models\MemberCourse::join('members', 'member_id', 'members.id')
+                $course_members = \App\Models\MemberCourse::with(['member' => function ($q) {
+                    $q->where(function ($q) {
+                        $q->where('is_archived', false)->orWhereNull('is_archived');
+                    })->where(function ($q) {
+                        $q->where('is_deleted', false)->orWhereNull('is_deleted');
+                    });
+                }])
                     ->where('course_id', $course->id)
-                    ->where(function($query) {
-                        $query->where('members.is_archived', false);
-                        $query->orWhereNull('members.is_archived');
-                    })
-                    ->where(function($query) {
-                        $query->where('members.is_deleted', false);
-                        $query->orWhereNull('members.is_deleted');
+                    ->whereHas('member', function ($q) {
+                        $q->where(function ($q) {
+                            $q->where('is_archived', false)->orWhereNull('is_archived');
+                        })->where(function ($q) {
+                            $q->where('is_deleted', false)->orWhereNull('is_deleted');
+                        });
                     })
                     ->get();
 
@@ -64,7 +64,10 @@ class AbsenceReport extends Component
 
                 $calendarIndex = [];
                 foreach ($courseCalendars as $cal) {
-                    $key = $cal->from . '|' . $cal->to;
+                    $fromKey = Carbon::parse($cal->from)->toDateTimeString();
+                    $toKey = Carbon::parse($cal->to)->toDateTimeString();
+                    $key = $fromKey . '|' . $toKey;
+
                     $calendarIndex[$key] = $cal;
                 }
 
@@ -165,6 +168,11 @@ class AbsenceReport extends Component
         } catch (\Throwable $e) {
             dd($e->getMessage());
         }
+    }
+
+    public function render()
+    {
+        setlocale(LC_ALL, 'it_IT');
 
         // $this->records = [];