Roberto Santini 3 settimane fa
parent
commit
8d104bc3c1

+ 21
- 10
app/Services/FatturaReportTicketPdfService.php Vedi File

14
 class FatturaReportTicketPdfService
14
 class FatturaReportTicketPdfService
15
 {
15
 {
16
     /**
16
     /**
17
-     * @return array<int, array{titolo: string, data: string, minuti: int, uscita: ?float}>
17
+     * @return array<int, array{titolo: string, data: string, minuti_ticket: int, minuti_fatturati: int, uscita: ?float}>
18
      */
18
      */
19
     public function righe(Fattura $fattura): array
19
     public function righe(Fattura $fattura): array
20
     {
20
     {
33
             if (! is_array($riga)) {
33
             if (! is_array($riga)) {
34
                 continue;
34
                 continue;
35
             }
35
             }
36
-            $minuti = array_key_exists('minuti', $riga)
37
-                ? (int) $riga['minuti']
36
+            if (array_key_exists('minuti_fatturati', $riga)) {
37
+                $minutiFatturati = (int) $riga['minuti_fatturati'];
38
+            } elseif (array_key_exists('minuti', $riga)) {
39
+                $minutiFatturati = (int) $riga['minuti'];
40
+            } else {
41
+                $minutiFatturati = (int) round(((float) ($riga['ore'] ?? 0)) * 60);
42
+            }
43
+            $minutiTicket = array_key_exists('minuti_ticket', $riga)
44
+                ? (int) $riga['minuti_ticket']
38
                 : (int) round(((float) ($riga['ore'] ?? 0)) * 60);
45
                 : (int) round(((float) ($riga['ore'] ?? 0)) * 60);
46
+            if (! array_key_exists('minuti_ticket', $riga) && $minutiTicket === 0) {
47
+                $minutiTicket = $minutiFatturati;
48
+            }
39
             $righe[] = [
49
             $righe[] = [
40
                 'titolo' => (string) ($riga['titolo'] ?? 'Ticket'),
50
                 'titolo' => (string) ($riga['titolo'] ?? 'Ticket'),
41
                 'data' => (string) ($riga['data'] ?? ''),
51
                 'data' => (string) ($riga['data'] ?? ''),
42
-                'minuti' => $minuti,
52
+                'minuti_ticket' => $minutiTicket,
53
+                'minuti_fatturati' => $minutiFatturati,
43
                 'uscita' => $riga['uscita'] ?? null,
54
                 'uscita' => $riga['uscita'] ?? null,
44
             ];
55
             ];
45
         }
56
         }
48
     }
59
     }
49
 
60
 
50
     /**
61
     /**
51
-     * Ore del PDF = minuti messi in fattura, non tutto il tempo segnato sul ticket.
52
-     *
53
-     * @return array<int, array{titolo: string, data: string, minuti: int, uscita: ?float}>
62
+     * @return array<int, array{titolo: string, data: string, minuti_ticket: int, minuti_fatturati: int, uscita: ?float}>
54
      */
63
      */
55
     protected function righeDaFattura(Fattura $fattura): array
64
     protected function righeDaFattura(Fattura $fattura): array
56
     {
65
     {
91
             $quando = $annotazione->tempo_data
100
             $quando = $annotazione->tempo_data
92
                 ? Carbon::parse($annotazione->tempo_data)
101
                 ? Carbon::parse($annotazione->tempo_data)
93
                 : Carbon::parse($annotazione->created_at);
102
                 : Carbon::parse($annotazione->created_at);
94
-            $minutiRiga = (int) ($minuti[$id] ?? 0);
103
+            $minutiFattura = (int) ($minuti[$id] ?? 0);
104
+            $minutiTicket = (int) $annotazione->tempo_minuti;
95
             $uscita = $uscite[$id] ?? null;
105
             $uscita = $uscite[$id] ?? null;
96
-            if ($minutiRiga <= 0 && ! $uscita) {
106
+            if ($minutiTicket <= 0 && $minutiFattura <= 0 && ! $uscita) {
97
                 continue;
107
                 continue;
98
             }
108
             }
99
             $righe[] = [
109
             $righe[] = [
100
                 'titolo' => $annotazione->segnalazione?->titolo ?: 'Ticket',
110
                 'titolo' => $annotazione->segnalazione?->titolo ?: 'Ticket',
101
                 'data' => $quando->format('Y-m-d H:i'),
111
                 'data' => $quando->format('Y-m-d H:i'),
102
-                'minuti' => $minutiRiga,
112
+                'minuti_ticket' => $minutiTicket,
113
+                'minuti_fatturati' => $minutiFattura,
103
                 'uscita' => $uscita,
114
                 'uscita' => $uscita,
104
             ];
115
             ];
105
         }
116
         }

+ 6
- 4
app/Services/FatturazioneGeneraService.php Vedi File

1234
 
1234
 
1235
     /**
1235
     /**
1236
      * @param  array<int, array<string, mixed>>  $voci
1236
      * @param  array<int, array<string, mixed>>  $voci
1237
-     * @return array<int, array{titolo: string, data: string, minuti: int, uscita: ?float}>
1237
+     * @return array<int, array{titolo: string, data: string, minuti_ticket: int, minuti_fatturati: int, uscita: ?float}>
1238
      */
1238
      */
1239
     protected function dettaglioTicket(array $voci): array
1239
     protected function dettaglioTicket(array $voci): array
1240
     {
1240
     {
1274
             $quando = $annotazione->tempo_data
1274
             $quando = $annotazione->tempo_data
1275
                 ? Carbon::parse($annotazione->tempo_data)
1275
                 ? Carbon::parse($annotazione->tempo_data)
1276
                 : Carbon::parse($annotazione->created_at);
1276
                 : Carbon::parse($annotazione->created_at);
1277
-            $minuti = (int) ($minutiFatturati[$id] ?? 0);
1277
+            $minutiFattura = (int) ($minutiFatturati[$id] ?? 0);
1278
+            $minutiTicket = (int) $annotazione->tempo_minuti;
1278
             $uscita = $uscite[$id] ?? null;
1279
             $uscita = $uscite[$id] ?? null;
1279
-            if ($minuti <= 0 && ! $uscita) {
1280
+            if ($minutiTicket <= 0 && $minutiFattura <= 0 && ! $uscita) {
1280
                 continue;
1281
                 continue;
1281
             }
1282
             }
1282
             $righe[] = [
1283
             $righe[] = [
1283
                 'titolo' => $annotazione->segnalazione?->titolo ?: 'Ticket',
1284
                 'titolo' => $annotazione->segnalazione?->titolo ?: 'Ticket',
1284
                 'data' => $quando->format('Y-m-d H:i'),
1285
                 'data' => $quando->format('Y-m-d H:i'),
1285
-                'minuti' => $minuti,
1286
+                'minuti_ticket' => $minutiTicket,
1287
+                'minuti_fatturati' => $minutiFattura,
1286
                 'uscita' => $uscita,
1288
                 'uscita' => $uscita,
1287
             ];
1289
             ];
1288
         }
1290
         }

+ 10
- 6
resources/views/fatturazione/report-ticket.blade.php Vedi File

29
       <tr>
29
       <tr>
30
         <th>Segnalazione</th>
30
         <th>Segnalazione</th>
31
         <th>Data</th>
31
         <th>Data</th>
32
-        <th class="text-end">Ore</th>
32
+        <th class="text-end">Ore ticket</th>
33
+        <th class="text-end">Ore fatturate</th>
33
         <th class="text-end">Costo d'uscita</th>
34
         <th class="text-end">Costo d'uscita</th>
34
       </tr>
35
       </tr>
35
     </thead>
36
     </thead>
38
       <tr>
39
       <tr>
39
         <td>{{ $riga['titolo'] }}</td>
40
         <td>{{ $riga['titolo'] }}</td>
40
         <td>{{ \Carbon\Carbon::parse($riga['data'])->format('d/m/Y') }}</td>
41
         <td>{{ \Carbon\Carbon::parse($riga['data'])->format('d/m/Y') }}</td>
41
-        <td class="text-end">{{ ($riga['minuti'] ?? 0) > 0 ? \App\Models\Config::formatTempo((int) $riga['minuti']) : '—' }}</td>
42
+        <td class="text-end">{{ ($riga['minuti_ticket'] ?? 0) > 0 ? \App\Models\Config::formatTempo((int) $riga['minuti_ticket']) : '—' }}</td>
43
+        <td class="text-end">{{ ($riga['minuti_fatturati'] ?? 0) > 0 ? \App\Models\Config::formatTempo((int) $riga['minuti_fatturati']) : '—' }}</td>
42
         <td class="text-end">{{ !empty($riga['uscita']) ? \App\Models\Config::formatCosto($riga['uscita']) : '—' }}</td>
44
         <td class="text-end">{{ !empty($riga['uscita']) ? \App\Models\Config::formatCosto($riga['uscita']) : '—' }}</td>
43
       </tr>
45
       </tr>
44
       @empty
46
       @empty
45
       <tr>
47
       <tr>
46
-        <td colspan="4" class="muted">Nessun ticket collegato.</td>
48
+        <td colspan="5" class="muted">Nessun ticket collegato.</td>
47
       </tr>
49
       </tr>
48
       @endforelse
50
       @endforelse
49
     </tbody>
51
     </tbody>
50
     @if(count($righe))
52
     @if(count($righe))
51
     @php
53
     @php
52
-      $minutiTotali = (int) collect($righe)->sum(fn ($r) => (int) ($r['minuti'] ?? 0));
54
+      $minutiTicket = (int) collect($righe)->sum(fn ($r) => (int) ($r['minuti_ticket'] ?? 0));
55
+      $minutiFatturati = (int) collect($righe)->sum(fn ($r) => (int) ($r['minuti_fatturati'] ?? 0));
53
     @endphp
56
     @endphp
54
     <tfoot>
57
     <tfoot>
55
       <tr>
58
       <tr>
56
-        <td colspan="2"><strong>Totale ore</strong></td>
57
-        <td class="text-end"><strong>{{ \App\Models\Config::formatTempo($minutiTotali) }}</strong></td>
59
+        <td colspan="2"><strong>Totale</strong></td>
60
+        <td class="text-end"><strong>{{ $minutiTicket > 0 ? \App\Models\Config::formatTempo($minutiTicket) : '—' }}</strong></td>
61
+        <td class="text-end"><strong>{{ $minutiFatturati > 0 ? \App\Models\Config::formatTempo($minutiFatturati) : '—' }}</strong></td>
58
         <td></td>
62
         <td></td>
59
       </tr>
63
       </tr>
60
     </tfoot>
64
     </tfoot>

Loading…
Annulla
Salva