Forráskód Böngészése

report presenze - fix ricerca member + livello + ricerca per corso

ferrari 1 hónapja
szülő
commit
db861717b5

+ 23 - 4
app/Http/Livewire/PresenceReport.php

@@ -143,7 +143,19 @@ class PresenceReport extends Component
                 ->whereDate('date_from', '<=', $calendar->from)                                 
                 ->whereDate('date_to', '>=', $calendar->from)      
                 ->whereNot('months', 'like', '%"m":' . $months . ',"status":2%')
-                ->whereIn('course_id', $courses)->get();
+                ->whereIn('course_id', $courses);
+                
+            if (!is_null($this->search) && $this->search != "") {
+                $search_value = $this->search;
+                $members->whereHas('member', function ($q) use ($search_value) {
+                    $q->where(function ($qq) use ($search_value) {
+                        $qq->whereRaw("CONCAT(TRIM(first_name), ' ', TRIM(last_name)) LIKE ?", ["%{$search_value}%"])
+                        ->orWhereRaw("CONCAT(TRIM(last_name), ' ', TRIM(first_name)) LIKE ?", ["%{$search_value}%"]);
+                    });
+                });
+            }
+
+            $members = $members->get();
 
             //$members = \App\Models\MemberCourse::where('when', 'like', "%" . $d . "%")->where('when', 'like', '%"from":"' . $h . '"%')->whereIn('member_id', $presences)->whereIn('course_id', $courses)->get();
             foreach ($members as $member) {
@@ -206,7 +218,13 @@ class PresenceReport extends Component
                 }
             }
 
-            $presences_recuperi = \App\Models\Presence::where('calendar_id', $calendar->id)->whereNotIn('member_id', $mids);
+            $presences_recuperi = \App\Models\Presence::join('calendars', 'presences.calendar_id', '=', 'calendars.id')
+                ->join('courses', 'calendars.course_id', '=', 'courses.id')
+                ->where('calendar_id', $calendar->id)
+                ->whereNotIn('member_id', $mids);
+            if (!is_null($this->course_name) && $this->course_name != "") {
+                $presences_recuperi = $presences_recuperi->where('courses.name', $this->course_name);
+            }
             if (!is_null($this->court_id) && $this->court_id > 0) {
                 $presences_recuperi->where('court_id', $this->court_id);
             }
@@ -226,6 +244,7 @@ class PresenceReport extends Component
                 });
             }
             $presences_recuperi = $presences_recuperi->get();
+            // dd($courses, $members, $presences_recuperi, $calendar->from, $calendar->to);
             foreach ($presences_recuperi as $p) {
                 $court = $p->court ? $p->court->name : "";
                 $instructor = [
@@ -238,8 +257,8 @@ class PresenceReport extends Component
                 $status = "<span class='fw-bold' style='color:#0c6197'>Presente</span>";
                 
                 $course_level = "";
-                if ($member->course && $member->course->level) {
-                    $course_level = trim($member->course->level->name);
+                if ($calendar->course && $calendar->course->level) {
+                    $course_level = trim($calendar->course->level->name);
                 }
                 $this->records[$calendar->name][$h][] = array(
                     "course_level" => $course_level,

+ 1 - 1
resources/views/livewire/presence_report.blade.php

@@ -91,7 +91,7 @@
 
         <div class="col-lg-9 col-md-12"></div>
         <div class="col-lg-3 col-md-12 d-flex gap-3 align-items-center mt-5 mb-3">
-            <label class="form-label fw-medium text-uppercase mb-0" for="course_id">Cerca</label>
+            <label class="form-label fw-medium text-uppercase mb-0" for="search">Cerca</label>
             <input wire:model="search" type="search" class="form-control form-control-sm" id="search" />
         </div>
     </div>