Browse Source

Fix reports

Luca Parisio 4 months ago
parent
commit
0a6536cfe0
2 changed files with 60 additions and 51 deletions
  1. 20 11
      app/Http/Livewire/Reports.php
  2. 40 40
      resources/views/livewire/reports.blade.php

+ 20 - 11
app/Http/Livewire/Reports.php

@@ -453,11 +453,13 @@ class Reports extends Component
             ];
         }
 
-        $rates = \App\Models\Rate::whereHas('member_course', function ($query) use ($courseId) {
+        $member_courses = \App\Models\MemberCourse::where('course_id', $courseId)->get();
+
+        /*$rates = \App\Models\Rate::whereHas('member_course', function ($query) use ($courseId) {
             $query->where('course_id', $courseId);
-        })->with('member_course')->get();
+        })->with('member_course')->get();*/
 
-        if ($rates->isEmpty()) {
+        if ($member_courses->isEmpty()) {
             return [
                 'labels' => [],
                 'datasets' => [],
@@ -469,24 +471,31 @@ class Reports extends Component
 
         $hasData = false;
 
-        foreach ($rates as $rate) {
-            $totalPrice = (float)($rate->price ?? 0);
+        foreach ($member_courses as $member_course) {
+
+            $totalPrice = (float)($member_course->price ?? 0);
+            //$totalPrice = (float)($rate->price ?? 0);
+
+            if ($member_course->months) {
+                $monthsData = json_decode($member_course->months, true);
+
+                if (is_array($monthsData) && count($monthsData) > 0) 
+                {
+
 
-            if ($rate->months) {
-                $monthsData = json_decode($rate->months, true);
 
-                if (is_array($monthsData) && count($monthsData) > 0) {
-                    $pricePerMonth = $totalPrice / count($monthsData);
+                    $pricePerMonth = $totalPrice; //  / count($monthsData);
 
                     foreach ($monthsData as $month) {
-                        $monthNumber = (int)$month;
+                        $monthNumber = (int)$month["m"];
 
                         if (isset($monthlyData[$monthNumber])) {
                             $monthlyData[$monthNumber]['total'] += $pricePerMonth;
                             $monthlyData[$monthNumber]['participants']++;
                             $hasData = true;
 
-                            if (!is_null($rate->record_id) && $rate->record_id !== '') {
+                            //if (!is_null($rate->record_id) && $rate->record_id !== '') {
+                            if ($month["status"] == 1) {
                                 $monthlyData[$monthNumber]['earned'] += $pricePerMonth;
                             }
                         }

+ 40 - 40
resources/views/livewire/reports.blade.php

@@ -89,53 +89,53 @@
             </div>
         </div>
 
-        @if(false)
-            <div class="chart-row">
-                <div class="chart-card modern-course-card">
-                    <div class="chart-header">
-                        <h3 class="chart-title">Analisi Corsi</h3>
-                    </div>
-                    <div class="chart-body">
-                        <div class="course-controls">
-                            <div class="control-group">
-                                <label>Seleziona Corso ({{ $seasonFilter }}):</label>
-                                <select class="form-select modern-select" wire:model.live="selectedCourse">
-                                    <option value="">Seleziona un Corso</option>
-                                    @foreach($this->getCoursesForSelect() as $course)
-                                        <option value="{{ $course['id'] }}">{{ $course['full_name'] }}</option>
-                                    @endforeach
-                                </select>
-                            </div>
+        
+        <div class="chart-row">
+            <div class="chart-card modern-course-card">
+                <div class="chart-header">
+                    <h3 class="chart-title">Analisi Corsi</h3>
+                </div>
+                <div class="chart-body">
+                    <div class="course-controls">
+                        <div class="control-group">
+                            <label>Seleziona Corso ({{ $seasonFilter }}):</label>
+                            <select class="form-select modern-select" wire:model.live="selectedCourse">
+                                <option value="">Seleziona un Corso</option>
+                                @foreach($this->getCoursesForSelect() as $course)
+                                    <option value="{{ $course['id'] }}">{{ $course['full_name'] }}</option>
+                                @endforeach
+                            </select>
                         </div>
+                    </div>
 
-                        @if($selectedCourse)
-                            <div wire:ignore wire:key="course-chart-{{ $seasonFilter }}-{{ $selectedCourse }}">
-                                <div class="modern-chart-layout">
-                                    <div class="course-delta-table"
-                                        id="course-delta-table-{{ str_replace('-', '', $seasonFilter) }}-{{ $selectedCourse }}">
-                                    </div>
-
-                                    <div class="modern-chart-container">
-                                        <canvas
-                                            id="courses-chart-{{ str_replace('-', '', $seasonFilter) }}-{{ $selectedCourse }}"></canvas>
-                                    </div>
+                    @if($selectedCourse)
+                        <div wire:ignore wire:key="course-chart-{{ $seasonFilter }}-{{ $selectedCourse }}">
+                            <div class="modern-chart-layout">
+                                <div class="course-delta-table"
+                                    id="course-delta-table-{{ str_replace('-', '', $seasonFilter) }}-{{ $selectedCourse }}">
                                 </div>
-                            </div>
-                        @else
-                            <div class="chart-placeholder">
-                                <div style="text-align: center;">
-                                    <div style="font-size: 3rem; margin-bottom: 1rem; opacity: 0.3;">📊</div>
-                                    <p style="font-size: 1.25rem; font-weight: 600; margin: 0;">Seleziona un corso per
-                                        visualizzare il grafico</p>
-                                    <p style="font-size: 1rem; opacity: 0.7; margin-top: 0.5rem;">Usa il menu a tendina sopra
-                                        per scegliere un corso</p>
+
+                                <div class="modern-chart-container">
+                                    <canvas
+                                        id="courses-chart-{{ str_replace('-', '', $seasonFilter) }}-{{ $selectedCourse }}"></canvas>
                                 </div>
                             </div>
-                        @endif
-                    </div>
+                        </div>
+                    @else
+                        <div class="chart-placeholder">
+                            <div style="text-align: center;">
+                                <div style="font-size: 3rem; margin-bottom: 1rem; opacity: 0.3;">📊</div>
+                                <p style="font-size: 1.25rem; font-weight: 600; margin: 0;">Seleziona un corso per
+                                    visualizzare il grafico</p>
+                                <p style="font-size: 1rem; opacity: 0.7; margin-top: 0.5rem;">Usa il menu a tendina sopra
+                                    per scegliere un corso</p>
+                            </div>
+                        </div>
+                    @endif
                 </div>
             </div>
-        @endif
+        </div>
+        
     </div>
 
     <script>