Luca Parisio 2 ヶ月 前
コミット
556331af4c

+ 3 - 1
app/Http/Livewire/AbsenceReport.php

@@ -57,7 +57,9 @@ class AbsenceReport extends Component
                 ->whereNot('months', 'like', '%"m":' . $months . ',"status":2%')
                 ->whereDate('date_from', '<=', $calendar->from)                                 
                 ->whereDate('date_to', '>=', $calendar->from)      
-                ->whereIn('course_id', $courses)->get();
+                ->whereIn('course_id', $courses)
+                ->orderBy('member_id')
+                ->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) {
 

+ 7 - 2
app/Http/Livewire/Member.php

@@ -815,6 +815,7 @@ class Member extends Component
             if (\App\Models\MemberCourse::where('when', 'like', "%" . $d . "%")->where('when', 'like', '%"from":"' . $h . '"%')->whereNot('months', 'like', '%"m":' . $months . ',"status":2%')->whereDate('date_from', '<=', $calendar->from)->whereDate('date_to', '>=', $calendar->from)->where('months', 'like', '%"m":' . $months . ',%')->whereIn('course_id', $courses)->where('member_id', $this->dataId)->first())
             {
                 $status = '';
+                $annullata = false;
                 if (in_array($calendar->id, $presences))
                 {
                     $status = "<span style=\"color:#0c6197\">Prezenza ordinaria</span>";
@@ -830,6 +831,7 @@ class Member extends Component
                         $this->annullate += 1;
 
                         $chartData[ANNULLATE]["data"][$monthMap[date('n', strtotime($calendar->from))]] += 1;
+                        $annullata = true;
                     }
                     else
                     {
@@ -843,7 +845,7 @@ class Member extends Component
                     }
                 }
 
-                if ($calendar->status == 99)
+                if ($calendar->status == 99 && !$annullata)
                 {
                     $status = "<span style=\"color:gray\">Annullata</span>";
                     $this->annullate += 1;
@@ -2274,15 +2276,18 @@ class Member extends Component
     public function setMonth($m)
     {
 
+        $payed = false;
         $exist = -1;
         foreach ($this->course_months as $idx => $x) {
             if ($x["m"] == $m) {
+                $payed = $x["status"] == 1;
                 $exist = $idx;
                 break;
             }
         }
         if ($exist > -1) {
-            array_splice($this->course_months, $exist, 1);
+            if (!$payed)
+                array_splice($this->course_months, $exist, 1);
         } else {
             $this->course_months[] = array("m" => $m, "status" => "");
         }

+ 32 - 10
app/Http/Livewire/PresenceReport.php

@@ -39,6 +39,9 @@ class PresenceReport extends Component
     public $instructor_id;
     public $search;
 
+    public $court_name = '';
+    public $instructor_name = '';
+
     public function mount()
     {
         $this->courts = \App\Models\Court::select('*')->where('enabled', true)->get();
@@ -64,6 +67,16 @@ class PresenceReport extends Component
 
         $calendars = \App\Models\Calendar::where('from', '>=', $from)->where('from', '<=', $to)->orderBy('from')->get();
 
+        if (!is_null($this->court_id) && $this->court_id > 0)
+            $this->court_name = \App\Models\Court::findOrFail($this->court_id)->name;
+        else
+            $this->court_name = '';
+
+        if (!is_null($this->instructor_id) && $this->instructor_id > 0)
+            $this->instructor_name = \App\Models\User::findOrFail($this->instructor_id)->name;
+        else
+            $this->instructor_name = '';
+
         foreach ($calendars as $calendar) {
 
             $presences = \App\Models\Presence::where('calendar_id', $calendar->id)->where('status', '<>', 99);
@@ -166,16 +179,25 @@ class PresenceReport extends Component
                     $status = "<span class='fw-bold' style='color:gray'>Annullata</span>";
                 }
 
-                $this->records[$calendar->name][$h][] = array(
-                    "last_name" => $member->member->last_name,
-                    "first_name" => $member->member->first_name,
-                    "court" => $court,
-                    "instructor" => $instructor,
-                    "status" => $status,
-                    'motivation' => $motivation
-                );
-
-                $mids[] = $member->member->id;
+                $show = true;
+                if ($this->court_name != '')
+                    $show = $this->court_name == $court;
+                if ($show && $this->instructor_name != '')
+                    $show = $this->instructor_name == $instructor;
+
+                if ($show)
+                {
+                    $this->records[$calendar->name][$h][] = array(
+                        "last_name" => $member->member->last_name,
+                        "first_name" => $member->member->first_name,
+                        "court" => $court,
+                        "instructor" => $instructor,
+                        "status" => $status,
+                        'motivation' => $motivation
+                    );
+
+                    $mids[] = $member->member->id;
+                }
             }
 
             $presences_recuperi = \App\Models\Presence::where('calendar_id', $calendar->id)->whereNotIn('member_id', $mids);

+ 22 - 20
resources/views/livewire/presence_report.blade.php

@@ -48,26 +48,28 @@
                 @endforeach
             </select>
         </div>
-        <div class="col-auto d-flex gap-3 align-items-center mb-3">
-            <label for="from" class="form-label fw-medium text-uppercase mb-0" style="white-space:nowrap;">Ora inizio</label>
-            <select wire:model="from" class="form-select" id="from" style="width: fit-content">
-                <option value=""></option>
-                @for($c=6;$c<=23;$c++)
-                    <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00</option>
-                    <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30</option>
-                @endfor
-            </select>
-        </div>
-        <div class="col-auto d-flex gap-3 align-items-center mb-3">
-            <label for="to" class="form-label fw-medium text-uppercase mb-0" style="white-space:nowrap;">Ora fine</label>
-            <select wire:model="to" class="form-select" id="to" style="width: fit-content">
-                <option value=""></option>
-                @for($c=6;$c<=23;$c++)
-                    <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00:59">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00</option>
-                    <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30:59">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30</option>
-                @endfor
-            </select>
-        </div>
+        @if(false)
+            <div class="col-auto d-flex gap-3 align-items-center mb-3">
+                <label for="from" class="form-label fw-medium text-uppercase mb-0" style="white-space:nowrap;">Ora inizio</label>
+                <select wire:model="from" class="form-select" id="from" style="width: fit-content">
+                    <option value=""></option>
+                    @for($c=6;$c<=23;$c++)
+                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00</option>
+                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30:00">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30</option>
+                    @endfor
+                </select>
+            </div>
+            <div class="col-auto d-flex gap-3 align-items-center mb-3">
+                <label for="to" class="form-label fw-medium text-uppercase mb-0" style="white-space:nowrap;">Ora fine</label>
+                <select wire:model="to" class="form-select" id="to" style="width: fit-content">
+                    <option value=""></option>
+                    @for($c=6;$c<=23;$c++)
+                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00:59">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:00</option>
+                        <option value="{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30:59">{{str_pad($c, 2, "0", STR_PAD_LEFT)}}:30</option>
+                    @endfor
+                </select>
+            </div>
+        @endif
         <div class="col-lg-2 col-md-12 d-flex gap-3 align-items-center mb-3">
             <label class="form-label fw-medium text-uppercase mb-0" for="court_id">Campo</label>
             <select wire:model="court_id" id="court_id" class="form-select">