ferrari hai 3 meses
pai
achega
4fd85639df
Modificáronse 2 ficheiros con 38 adicións e 11 borrados
  1. 9 5
      app/Http/Livewire/Presence.php
  2. 29 6
      resources/views/livewire/presence.blade.php

+ 9 - 5
app/Http/Livewire/Presence.php

@@ -48,7 +48,7 @@ class Presence extends Component
         $this->members = \App\Models\Member::select(['id', 'first_name', 'last_name', 'fiscal_code'])->orderBy('last_name')->orderBy('first_name')->get();
         $this->note = $this->calendar->note;
         $this->courts = \App\Models\Court::select('*')->where('enabled', true)->get();
-        $this->instructors = \App\Models\User::select('*')->where('level', 2)->where('enabled', true)->get();
+        $this->instructors = \App\Models\User::select('*')->where('level', 2)->where('enabled', true)->orderBy('name', 'asc')->get();
         $this->motivations = \App\Models\Motivation::select('*')->where('enabled', true)->where('type', 'del')->get();
         $this->motivations_add = \App\Models\Motivation::select('*')->where('enabled', true)->where('type', 'add')->get();
         $this->save_court_id = 0;
@@ -84,7 +84,8 @@ class Presence extends Component
 
 
             // Elenco utenti iscritti al corso "padre"
-            $members_courses = \App\Models\MemberCourse::where('when', 'like', "%" . $d . "%")->where('when', 'like', '%"from":"' . $h . '"%')->whereIn('course_id', $courses)->pluck('member_id')->toArray();
+            // $members_courses = \App\Models\MemberCourse::where('when', 'like', "%" . $d . "%")->where('when', 'like', '%"from":"' . $h . '"%')->whereIn('course_id', $courses)->pluck('member_id')->toArray();
+            $members_courses = \App\Models\MemberCourse::whereRaw("JSON_CONTAINS(`when`, JSON_OBJECT('day', JSON_ARRAY(?), 'from', ?), '$')",[$d, $h])->whereIn('course_id', $courses)->pluck('member_id')->toArray();
 
             if ($this->filter != '') {
                 $filter = $this->filter;
@@ -171,6 +172,7 @@ class Presence extends Component
         $status = 0;
         $court = '';
         $instructor = '';
+        $additional_instructor = '';
         $notes = '';
 
         $has_presence = \App\Models\Presence::where('calendar_id', $this->calendar->id)->where('member_id', $member->id)->first();
@@ -181,12 +183,13 @@ class Presence extends Component
                 $motivation = \App\Models\Motivation::findOrFail($has_presence->motivation_id)->name;
             }
             $status = $has_presence->status;
+            $instructor = \App\Models\User::findOrFail($has_presence->user_id)->name;
 
             if ($has_presence->court_id > 0) {
                 $court = \App\Models\Court::findOrFail($has_presence->court_id)->name;
             }
-            if ($has_presence->instructor_id > 0) {
-                $instructor = \App\Models\User::findOrFail($has_presence->instructor_id)->name;
+            if ($has_presence->instructor_id > 0 && $has_presence->instructor_id !== $has_presence->user_id) {
+                $additional_instructor = \App\Models\User::findOrFail($has_presence->instructor_id)->name;
             }
             if (!is_null($has_presence->notes)) {
                 $notes = $has_presence->notes;
@@ -209,6 +212,7 @@ class Presence extends Component
             'motivation' => $motivation,
             'court' => $court,
             'instructor' => $instructor,
+            'additional_instructor' => $additional_instructor,
             'notes' => $notes,
         );
     }
@@ -399,7 +403,7 @@ class Presence extends Component
         ]);
 
         $this->instructor_id = $user->id;
-        $this->instructors = \App\Models\User::select('*')->where('level', 2)->where('enabled', true)->get();
+        $this->instructors = \App\Models\User::select('*')->where('level', 2)->where('enabled', true)->orderBy('name', 'asc')->get();
         $this->emit('saved');
     }
 

+ 29 - 6
resources/views/livewire/presence.blade.php

@@ -91,6 +91,9 @@
             </tr>
         </thead>
         <tbody id="checkall-target">
+            @php
+                $totalPresences = 0;
+            @endphp
             @foreach($records as $idx => $record)
             <tr>
                 <td class="annulla-lezione" style="display: none;">
@@ -122,7 +125,7 @@
                     </span>
                 </td>
                 <td>{{$record["court"]}}</td>
-                <td>{{$record["instructor"]}}</td>
+                <td>{{$record["instructor"]}}{{$record["additional_instructor"] ? ", ".$record["additional_instructor"] : ""}}</td>
                 <td>
                     @if ($record["status"] != 99)
                         @if ($record["presence"])
@@ -131,12 +134,25 @@
                                     <a onclick="removeSingle({{$record['id']}})"><i class="fas fa-trash"></i></a>
                                 @else
                                     <input name="presence" class="member chkM" type="checkbox" value="{{$record["id"]}}" {{$record["presence"] ? 'checked' : '' }}>
+                                    @php
+                                    if ($record['presence']) {
+                                        $totalPresences ++;
+                                    }
+                                    @endphp
                                 @endif
                             @else
                                 <span style="color:#0C6197;font-size:25px;">&#10003;</span>
+                                @php
+                                    $totalPresences++;
+                                @endphp
                             @endif
                         @else
                             <input name="presence" class="member chkM" type="checkbox" value="{{$record["id"]}}" {{$record["presence"] ? 'checked' : '' }}>
+                            @php
+                            if ($record['presence']) {
+                                $totalPresences ++;
+                            }
+                            @endphp
                         @endif
                     @else
                         Annullata &nbsp;&nbsp;-&nbsp;&nbsp; <a href="#" wire:click="revert({{$record["id"]}})" style="text-decoration: underline;color: #0c6197;"><small><i class="fa-solid fa-arrow-left-rotate"></i></small> Ripristina</a>
@@ -149,6 +165,11 @@
             </tr>
             @endforeach
 
+            <tr>
+                <td colspan="6"><span class="fw-bold text-uppercase">Totale presenti</span></td>
+                <td><span class="fw-bold">{{$totalPresences}}</span></td>
+                <td colspan="2"></td>
+            </tr>
         </tbody>
     </table>
 
@@ -175,14 +196,16 @@
                     @endforeach
                 </select>
             </div>
-            <button type="button" class="btn--ui lightGrey btSave" {{-- style="background-color:rgb(111, 31, 31) !important" --}} onclick="showHideDelete()">Annulla lezione per selezionati</button>
-            <button type="button" class="btn--ui btSave" onclick="saveAndStay()">Salva presenze</button>
+            <button type="button" class="btn--ui lightGrey btSave" onclick="showHideDelete()">Annulla lezione per selezionati</button>
+            {{-- <button type="button" class="btn--ui btSave" onclick="saveAndStay()">Salva presenze</button> --}}
 
             @endif
         </div>
         @if(!$manual)
         <div class="col-auto mt-2 text-end">
-            <button type="button" class="btn--ui btSave" onclick="saveAndQuit()">Salva e chiudi</button>
+            <a href="/calendar?last_date={{$last_date}}" class="btn--ui lightGrey btSave">Chiudi</a>
+            {{-- <button type="button" class="btn--ui btSave" onclick="saveAndQuit()">Salva e chiudi</button> --}}
+            <button type="button" class="btn--ui btSave" onclick="saveAndStay()">Salva presenze</button>
         </div>
         <div class="col-xs-12 mt-2">
             <div class="showDelete" style="float:left;display:none;">
@@ -337,11 +360,11 @@
                         </div>
 
                         <div class="col">
-                            <label for="save_instructor_id" class="form-label">Istruttore</label>
+                            <label for="save_instructor_id" class="form-label">Istruttore aggiuntivo</label>
                             <select id="save_instructor_id" class="form-select form-select-lg me-1">
                                 <option value="0">
                                     @foreach($instructors as $i)
-                                <option value="{{$i["id"]}}" {{\Auth::user()->id == $i["id"] ? "selected" : ""}}>{{$i["name"]}}</option>
+                                <option value="{{$i["id"]}}" {{\Auth::user()->id == $i["id"] ? "disabled" : ""}}>{{$i["name"]}}</option>
                                 @endforeach
                             </select>
                         </div>