From 2e2ca326457fb956b7647ab5928f62aec0c99acb Mon Sep 17 00:00:00 2001 From: loviuz Date: Fri, 24 Jan 2020 12:24:20 +0100 Subject: [PATCH] Fix calcolo trasferta interventi in fattura --- modules/fatture/actions.php | 2 - .../fatture/src/Components/RelationTrait.php | 2 +- modules/interventi/modutil.php | 57 ++++++++++--------- 3 files changed, 32 insertions(+), 29 deletions(-) diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 8e599d27e..115db3618 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -489,8 +489,6 @@ switch (post('op')) { $r->delete(); } - //$dbo->query("UPDATE in_interventi SET idstatointervento = (SELECT idstatointervento FROM in_statiintervento WHERE descrizione = 'Completato') WHERE id=".prepare($idintervento)); - flash()->info(tr('Intervento _NUM_ rimosso!', [ '_NUM_' => $idintervento, ])); diff --git a/modules/fatture/src/Components/RelationTrait.php b/modules/fatture/src/Components/RelationTrait.php index 8b0c5be2f..18640ad23 100644 --- a/modules/fatture/src/Components/RelationTrait.php +++ b/modules/fatture/src/Components/RelationTrait.php @@ -167,7 +167,7 @@ trait RelationTrait $result = parent::delete(); if (!empty($this->idintervento)) { - database()->query("UPDATE in_interventi SET idstatointervento = (SELECT idstatointervento FROM in_statiintervento WHERE descrizione = 'Completato') WHERE id=".prepare($this->idintervento)); + database()->query("UPDATE in_interventi SET idstatointervento = (SELECT idstatointervento FROM in_statiintervento WHERE codice = 'OK') WHERE id=".prepare($this->idintervento)); } return $result; diff --git a/modules/interventi/modutil.php b/modules/interventi/modutil.php index 5eadce9a1..3c4494cb6 100644 --- a/modules/interventi/modutil.php +++ b/modules/interventi/modutil.php @@ -177,6 +177,37 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion $riga->save(); } + + // Viaggi raggruppati per costo + $viaggi = $sessioni->where('prezzo_km_unitario', '>', 0)->groupBy(function ($item, $key) { + return $item['prezzo_km_unitario']; + }); + foreach ($viaggi as $gruppo) { + $viaggio = $gruppo->first(); + $riga = Riga::build($fattura); + + $riga->descrizione = tr("Trasferta dell'intervento _NUM_ del _DATE_", [ + '_NUM_' => $codice, + '_DATE_' => dateFormat($data), + ]); + $riga->idintervento = $id_intervento; + $riga->um = 'km'; + + $riga->id_iva = $id_iva; + $riga->idconto = $id_conto; + + $riga->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto; + $riga->id_ritenuta_acconto = $id_ritenuta_acconto; + $riga->id_rivalsa_inps = $id_rivalsa_inps; + + $riga->prezzo_unitario_vendita = $viaggio->prezzo_km_unitario; + $riga->sconto_unitario = $sessione->scontokm_unitario; + $riga->tipo_sconto = $sessione->tipo_scontokm; + + $riga->qta = $gruppo->sum('km'); + + $riga->save(); + } } // Articoli, righe, sconti e descrizioni collegati all'intervento @@ -199,32 +230,6 @@ function aggiungi_intervento_in_fattura($id_intervento, $id_fattura, $descrizion $copia->save(); } - // Aggiunta km come "Trasferta" (se c'รจ) - if ($intervento->prezzo_viaggio > 0) { - $riga = Riga::build($fattura); - - $riga->descrizione = tr("Trasferta dell'intervento _NUM_ del _DATE_", [ - '_NUM_' => $codice, - '_DATE_' => dateFormat($data), - ]); - $riga->idintervento = $id_intervento; - - $riga->id_iva = $id_iva; - $riga->idconto = $id_conto; - - $riga->calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto; - $riga->id_ritenuta_acconto = $id_ritenuta_acconto; - $riga->id_rivalsa_inps = $id_rivalsa_inps; - - $riga->prezzo_unitario_vendita = $intervento->prezzo_viaggio; - $riga->sconto_unitario = $intervento->sconto_totale_viaggio; - $riga->tipo_sconto = 'UNT'; - - $riga->qta = 1; - - $riga->save(); - } - // Ricalcolo inps, ritenuta e bollo ricalcola_costiagg_fattura($id_fattura);