From a86574be4f338738c06b4b4f4656a8d8c96ab7b4 Mon Sep 17 00:00:00 2001 From: valentina Date: Thu, 1 Aug 2024 11:21:35 +0200 Subject: [PATCH] Fix fatturazione sessioni tecnici --- modules/interventi/modutil.php | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/modules/interventi/modutil.php b/modules/interventi/modutil.php index f6df9ce5f..11080d95f 100755 --- a/modules/interventi/modutil.php +++ b/modules/interventi/modutil.php @@ -171,8 +171,6 @@ if (!function_exists('aggiungi_intervento_in_fattura')) { $fattura = Fattura::find($id_fattura); $intervento = Intervento::find($id_intervento); - - $data = $intervento->fine; $codice = $intervento->codice; // Riga di descrizione @@ -193,12 +191,20 @@ if (!function_exists('aggiungi_intervento_in_fattura')) { $ore_di_lavoro = $sessioni->groupBy(fn ($item, $key) => $item['prezzo_orario'].'|'.$item['sconto_unitario'].'|'.$item['tipo_sconto']); foreach ($ore_di_lavoro as $gruppo) { + $date = []; $sessione = $gruppo->first(); $riga = Riga::build($fattura); + foreach ($gruppo as $sessione){ + $dateValue = date('d/m/Y', strtotime($sessione->orario_fine)); + if (!in_array($dateValue, $date)) { + $date[] = $dateValue; + } + } + $riga->descrizione = tr("Ore di lavoro dell'attività _NUM_ del _DATE_", [ '_NUM_' => $codice, - '_DATE_' => dateFormat($data), + '_DATE_' => implode(', ', $date), ]); $riga->idintervento = $id_intervento; $riga->um = 'ore'; @@ -235,12 +241,20 @@ if (!function_exists('aggiungi_intervento_in_fattura')) { // Diritti di chiamata raggruppati per costo $diritti_chiamata = $sessioni->where('prezzo_diritto_chiamata', '>', 0)->groupBy(fn ($item, $key) => $item['prezzo_diritto_chiamata']); foreach ($diritti_chiamata as $gruppo) { + $date = []; $diritto_chiamata = $gruppo->first(); $riga = Riga::build($fattura); + foreach ($gruppo as $sessione){ + $dateValue = date('d/m/Y', strtotime($sessione->orario_fine)); + if (!in_array($dateValue, $date)) { + $date[] = $dateValue; + } + } + $riga->descrizione = tr("Diritto di chiamata dell'attività _NUM_ del _DATE_", [ '_NUM_' => $codice, - '_DATE_' => dateFormat($data), + '_DATE_' => implode(', ', $date), ]); $riga->idintervento = $id_intervento; // $riga->um = 'ore'; @@ -266,17 +280,25 @@ if (!function_exists('aggiungi_intervento_in_fattura')) { // Viaggi raggruppati per costo $viaggi = $sessioni->where('prezzo_km_unitario', '>', 0)->groupBy(fn ($item, $key) => $item['prezzo_km_unitario'].'|'.$item['scontokm_unitario'].'|'.$item['tipo_scontokm']); foreach ($viaggi as $gruppo) { + $date = []; $qta_trasferta = $gruppo->sum('km'); if ($qta_trasferta == 0) { continue; } + + foreach ($gruppo as $sessione){ + $dateValue = date('d/m/Y', strtotime($sessione->orario_fine)); + if (!in_array($dateValue, $date)) { + $date[] = $dateValue; + } + } $viaggio = $gruppo->first(); $riga = Riga::build($fattura); $riga->descrizione = tr("Trasferta dell'attività _NUM_ del _DATE_", [ '_NUM_' => $codice, - '_DATE_' => dateFormat($data), + '_DATE_' => implode(', ', $date), ]); $riga->idintervento = $id_intervento; $riga->um = 'km';