Jelajahi Sumber

modifiche grafiche/logiche report preseenze e assenze

ferrari 3 bulan lalu
induk
melakukan
1e239b4b9e

+ 19 - 15
app/Http/Livewire/AbsenceReport.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Livewire;
 
+use Illuminate\Support\Carbon;
 use Livewire\Component;
 
 class AbsenceReport extends Component
@@ -9,6 +10,8 @@ class AbsenceReport extends Component
 
     public $records;
 
+    public $year;
+
     public function mount()
     {
         setlocale(LC_ALL, 'it_IT');
@@ -20,9 +23,16 @@ class AbsenceReport extends Component
 
         $this->records = [];
 
-        $to = date("Y-m-d 23:59:59");
-        
-        $calendars = \App\Models\Calendar::where('from', '<=', $to)->orderBy('from')->get();
+        // $to = date("Y-m-d 23:59:59");
+        // $calendars = \App\Models\Calendar::where('from', '<=', $to)->orderBy('from')->get();
+
+        $month = date("n");
+        $this->year = ($month >= 9) ? date("Y") : date("Y") - 1;
+
+        $start = date("Y-m-d H:i:s", mktime(0, 0, 0, 9, 1, $this->year));
+        $end   = date("Y-m-d 23:59:59");
+
+        $calendars = \App\Models\Calendar::whereBetween('from', [$start, $end])->orderBy('from')->get();
 
         foreach ($calendars as $calendar) {
 
@@ -48,27 +58,21 @@ class AbsenceReport extends Component
             foreach ($members as $member) {
 
                 $presence = \App\Models\Presence::where('member_id', $member->member->id)->where('calendar_id', $calendar->id)->first();
-                
-                if (!in_array($member->member->id, $presences)) 
-                {
-                    if (!in_array($member->member->id, $presences_annullate)) 
-                    {
-                        if (array_key_exists($member->member->id, $this->records))
-                        {
+
+                if (!in_array($member->member->id, $presences)) {
+                    if (!in_array($member->member->id, $presences_annullate)) {
+                        if (array_key_exists($member->member->id, $this->records)) {
                             $this->records[$member->member->id]['total'] += 1;
-                            $this->records[$member->member->id]['date'] .= ", " . date("d/m/Y", strtotime($calendar->from));
-                        }
-                        else
+                            $this->records[$member->member->id]['date'] .= " - " . date("d/m/Y", strtotime($calendar->from));
+                        } else
                             $this->records[$member->member->id] = array("last_name" => $member->member->last_name, "first_name" => $member->member->first_name, "course" => $calendar->name, "total" => 1, "date" => date("d/m/Y", strtotime($calendar->from)));
                     }
                 }
             }
-            
         }
 
         array_multisort(array_column($this->records, 'total'), SORT_DESC, $this->records);
 
         return view('livewire.absence_report');
     }
-
 }

+ 1 - 1
app/Http/Livewire/Presence.php

@@ -86,7 +86,7 @@ class Presence extends Component
 
             // Elenco utenti iscritti al corso "padre"
             // $members_courses = \App\Models\MemberCourse::where('when', 'like', "%" . $d . "%")->where('when', 'like', '%"from":"' . $h . '"%')->where('months', 'like', '%"m":' . $months . ',%')->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();
+            $members_courses = \App\Models\MemberCourse::whereRaw("JSON_CONTAINS(`when`, JSON_OBJECT('day', JSON_ARRAY(?), 'from', ?), '$')", [$d, $h])->where('months', 'like', '%"m":' . $months . ',%')->whereIn('course_id', $courses)->pluck('member_id')->toArray();
 
             if ($this->filter != '') {
                 $filter = $this->filter;

+ 1 - 1
app/Http/Livewire/PresenceReport.php

@@ -127,7 +127,7 @@ class PresenceReport extends Component
             // Elenco utenti iscritti al corso "padre"
             // $members = \App\Models\MemberCourse::where('when', 'like', "%" . $d . "%")->where('when', 'like', '%"from":"' . $h . '"%')->where('months', 'like', '%"m":' . $months . ',%')->whereIn('course_id', $courses)->get();
             // $members = \App\Models\MemberCourse::where('when', 'like', "%" . $d . "%")->where('when', 'like', '%"from":"' . $h . '"%')->whereIn('member_id', $presences)->whereIn('course_id', $courses)->get();
-            $members = \App\Models\MemberCourse::whereRaw("JSON_CONTAINS(`when`, JSON_OBJECT('day', JSON_ARRAY(?), 'from', ?), '$')",[$d, $h])->whereIn('member_id', $presences)->whereIn('course_id', $courses)->get();
+            $members = \App\Models\MemberCourse::whereRaw("JSON_CONTAINS(`when`, JSON_OBJECT('day', JSON_ARRAY(?), 'from', ?), '$')",[$d, $h])->where('months', 'like', '%"m":' . $months . ',%')->whereIn('member_id', $presences)->whereIn('course_id', $courses)->get();
             foreach ($members as $member) {
 
                 $court = '';

+ 2 - 2
resources/views/layouts/app.blade.php

@@ -315,7 +315,7 @@
                                     Corsi
                                 </button>
                             </h2>
-                            <div id="collapseThree" class="accordion-collapse collapse {{Request::is('course_list') || Request::is('course_member') || Request::is('calendar') || Request::is('presence_reports') ? 'show' : ''}}" aria-labelledby="headingThree" data-bs-parent="#accordionExample">
+                            <div id="collapseThree" class="accordion-collapse collapse {{Request::is('course_list') || Request::is('course_member') || Request::is('calendar') || Request::is('presence_reports') || Request::is('absence_reports') ? 'show' : ''}}" aria-labelledby="headingThree" data-bs-parent="#accordionExample">
                                 <div class="accordion-body">
                                     <ul class="nav nav-pills flex-column align-items-center align-items-sm-start w-100" id="menu-contabilita" style="margin-top:0px;">
                                         <li class="nav-item" style="{{Request::is('course_member') ? 'background-color: #c5d9e6;' : ''}}">
@@ -333,7 +333,7 @@
                                                 <span class="ms-3 d-md-inline">Calendario</span>
                                             </a>
                                         </li>
-                                        <li class="nav-item" style="{{Request::is('presence_reports') ? 'background-color: #c5d9e6;' : ''}}">
+                                        <li class="nav-item" style="{{Request::is('presence_reports') || Request::is('absence_reports') ? 'background-color: #c5d9e6;' : ''}}">
                                             <a href="/presence_reports" class="nav-link d-flex align-items-center linkMenu">
                                                 <span class="ms-3 d-md-inline">Presenze</span>
                                             </a>

+ 28 - 33
resources/views/livewire/absence_report.blade.php

@@ -1,6 +1,6 @@
 <div class="col card--ui" id="card--dashboard">
 
-    <a class="btn--ui lightGrey" href="/settings?type=corsi"><i class="fa-solid fa-arrow-left"></i></a><br>
+    <a class="btn--ui lightGrey" href="/presence_reports"><i class="fa-solid fa-arrow-left"></i></a><br>
 
     <header id="title--section" style="display:none !important" class="d-flex align-items-center justify-content-between">
         <div class="title--section_name d-flex align-items-center justify-content-between">
@@ -11,40 +11,35 @@
 
     <br>
 
-
-    <br><br>
-
-    <div class="row mb-5">
-        <div class="col-12 mb-4">
-            <div class="row">
-                <div class="col-12">
-                    <table class="report-table">
-                        <thead>
-                            <tr>
-                                <td>Cognome</td>
-                                <td>Nome</td>
-                                <td>Corso</td>
-                                <td>N. assenze</td>
-                                <td>Date</td>
-                            </tr>
-                        </thead>
-                        <tbody>
-                            @foreach($records as $record)
-                            <tr>
-                                <td>{{$record["last_name"]}}</td>
-                                <td>{{$record["first_name"]}}</td>
-                                <td>{{$record["course"]}}</td>
-                                <td>{{$record["total"]}}</td>
-                                <td>{{$record["date"]}}</td>
-                            </tr>
-                            @endforeach
-                        </tbody>
-                    </table>
-                </div>
-            </div>
+    <div class="row">
+        <div class="col-12 mb-3">
+            <h3 class="primary">Stagione {{$year}}/{{$year+1}}</h3>
+        </div>
+        <div class="col-12">
+            <table class="report-table">
+                <thead>
+                    <tr>
+                        <td>Cognome</td>
+                        <td>Nome</td>
+                        <td>Corso</td>
+                        <td>N. assenze</td>
+                        <td>Date</td>
+                    </tr>
+                </thead>
+                <tbody>
+                    @foreach($records as $record)
+                    <tr>
+                        <td>{{$record["last_name"]}}</td>
+                        <td>{{$record["first_name"]}}</td>
+                        <td>{{$record["course"]}}</td>
+                        <td>{{$record["total"]}}</td>
+                        <td>{{$record["date"]}}</td>
+                    </tr>
+                    @endforeach
+                </tbody>
+            </table>
         </div>
     </div>
-
 </div>
 
 @push('css')