Roberto Santini 1 dzień temu
rodzic
commit
55d61b1923

+ 5
- 4
app/DataTables/TempoImpiegatoDataTable.php Wyświetl plik

@@ -11,6 +11,7 @@ use Yajra\DataTables\Html\Button;
11 11
 use Yajra\DataTables\Html\Column;
12 12
 use Yajra\DataTables\Html\Editor\Editor;
13 13
 use Yajra\DataTables\Html\Editor\Fields;
14
+use Yajra\DataTables\Html\Editor\Fields\Options;
14 15
 use Yajra\DataTables\Services\DataTable;
15 16
 use Illuminate\Support\Facades\Auth;
16 17
 use Illuminate\Support\Str;
@@ -199,14 +200,14 @@ class TempoImpiegatoDataTable extends DataTable
199 200
                            }']),
200 201
           Fields\Text::make('tempo_minuti_label', 'Tempo impiegato (1,50 o 1h30m)'),
201 202
           Fields\DateTime::make('tempo_data', 'Data/ora')->format('DD/MM/YYYY HH:mm')->default(Carbon::now()->format('d/m/Y H:i')),
202
-          Fields\Select::make('non_fatturare', 'Fatturazione')->options([
203
+          Fields\Select::make('non_fatturare', 'Fatturazione')->options(Options::from([
203 204
             '0' => 'Fatturare',
204 205
             '1' => 'Non fatturare',
205
-          ])->default('0'),
206
-          Fields\Select::make('costo_uscita', 'Costo d\'uscita ('.Config::formatCosto(Config::costoUscitaDefault()).')')->options([
206
+          ]))->default('0'),
207
+          Fields\Select::make('costo_uscita', 'Costo d\'uscita ('.Config::formatCosto(Config::costoUscitaDefault()).')')->options(Options::from([
207 208
             '0' => 'No',
208 209
             '1' => 'Sì',
209
-          ])->default('0'),
210
+          ]))->default('0'),
210 211
           Fields\TextArea::make('text', 'Note')->type('quill'),
211 212
           Fields\Select2::make('segnalazione_id', 'Segnalazione')
212 213
           ->default($this->segnalazione ? $this->segnalazione->id : 0)

+ 15
- 2
app/Services/FatturazioneGeneraService.php Wyświetl plik

@@ -612,7 +612,7 @@ class FatturazioneGeneraService
612 612
         if ($allocazione['importo_spesa'] > 0) {
613 613
             $cliente['voci'][] = [
614 614
                 'tipo' => FatturaRiga::TIPO_SPESA,
615
-                'descrizione' => $this->titoloSegnalazione($segnalazione),
615
+                'descrizione' => $this->descrizioneCosto($annotazione, $segnalazione),
616 616
                 'quantita' => 1,
617 617
                 'unita_misura' => 'forfait',
618 618
                 'prezzo_unitario' => $allocazione['importo_spesa'],
@@ -1175,6 +1175,7 @@ class FatturazioneGeneraService
1175 1175
 
1176 1176
     /**
1177 1177
      * Una riga per tipo di ticket (es. Assistenza remota), con le ore sommate.
1178
+     * I costi restano una riga ciascuno, con la propria descrizione.
1178 1179
      *
1179 1180
      * @param  array<int, array<string, mixed>>  $voci
1180 1181
      * @return array<int, array<string, mixed>>
@@ -1185,7 +1186,6 @@ class FatturazioneGeneraService
1185 1186
             FatturaRiga::TIPO_TEMPO,
1186 1187
             FatturaRiga::TIPO_EXTRA_CONTRATTO,
1187 1188
             FatturaRiga::TIPO_EXTRA_ORDINE,
1188
-            FatturaRiga::TIPO_SPESA,
1189 1189
             FatturaRiga::TIPO_USCITA,
1190 1190
         ];
1191 1191
         $gruppi = [];
@@ -1246,6 +1246,19 @@ class FatturazioneGeneraService
1246 1246
         return $titolo !== '' ? $titolo : 'Ticket';
1247 1247
     }
1248 1248
 
1249
+    protected function descrizioneCosto(Annotazione $annotazione, $segnalazione): string
1250
+    {
1251
+        $descrizione = trim((string) ($annotazione->costo_descrizione ?? ''));
1252
+        if ($descrizione === '') {
1253
+            $descrizione = $this->titoloSegnalazione($segnalazione);
1254
+        }
1255
+        if (mb_strlen($descrizione) > 255) {
1256
+            $descrizione = mb_substr($descrizione, 0, 252).'…';
1257
+        }
1258
+
1259
+        return $descrizione;
1260
+    }
1261
+
1249 1262
     /**
1250 1263
      * @param  array<int, array<string, mixed>>  $voci
1251 1264
      * @return array<int, array{annotazione_id: int, titolo: string, data: string, minuti_ticket: int, minuti_fatturati: int, uscita: ?float}>

+ 1
- 1
resources/views/fatturazione/partials/cliente.blade.php Wyświetl plik

@@ -32,7 +32,7 @@
32 32
         <input type="hidden" name="data_a" value="{{ $data_a }}">
33 33
         <label class="form-check form-check-inline mb-0 me-2">
34 34
           <input class="form-check-input" type="checkbox" name="accorpa_segnalazioni" value="1">
35
-          <span class="form-check-label">Accorpa le voci dei ticket per tipo</span>
35
+          <span class="form-check-label">Accorpa le ore dei ticket per tipo</span>
36 36
         </label>
37 37
         <button type="submit" class="btn btn-primary btn-sm">
38 38
           <i class="bx bx-receipt me-1"></i>Crea fattura ({{ Config::formatCosto($cliente['totale']) }} imponibile)

Ładowanie…
Anuluj
Zapisz