diff --git a/config/namespaces.php b/config/namespaces.php index 0025055aa..d6c157fb6 100644 --- a/config/namespaces.php +++ b/config/namespaces.php @@ -4,6 +4,8 @@ return [ 'include' => 'Common', 'modules/anagrafiche' => 'Modules\Anagrafiche', 'modules/articoli' => 'Modules\Articoli', + 'modules/ritenute' => 'Modules\Ritenute', + 'modules/iva' => 'Modules\Iva', 'modules/ddt' => 'Modules\DDT', 'modules/fatture' => 'Modules\Fatture', 'modules/ordini' => 'Modules\Ordini', diff --git a/modules/preventivi/modutil.php b/modules/preventivi/modutil.php index d9a4ef1e0..d17ea6230 100644 --- a/modules/preventivi/modutil.php +++ b/modules/preventivi/modutil.php @@ -25,80 +25,6 @@ function rimuovi_articolo_dapreventivo($idarticolo, $idpreventivo, $idriga) $dbo->query('DELETE FROM co_righe_preventivi WHERE id='.prepare($idriga)); } -/** - * Ricalcola i costi aggiuntivi in ordine (rivalsa inps, ritenuta d'acconto, marca da bollo) - * Deve essere eseguito ogni volta che si aggiunge o toglie una riga - * $idordine int ID del ordine - * $idrivalsainps int ID della rivalsa inps da applicare. Se omesso viene utilizzata quella impostata di default - * $idritenutaacconto int ID della ritenuta d'acconto da applicare. Se omesso viene utilizzata quella impostata di default - * $bolli float Costi aggiuntivi delle marche da bollo. Se omesso verrà usata la cifra predefinita. - */ -function ricalcola_costiagg_preventivo($idpreventivo, $idrivalsainps = '', $idritenutaacconto = '', $bolli = '') -{ - global $dir; - - $dbo = database(); - - // Se ci sono righe nel ordine faccio i conteggi, altrimenti azzero gli sconti e le spese aggiuntive (inps, ritenuta, marche da bollo) - $query = 'SELECT COUNT(id) AS righe FROM co_righe_preventivi WHERE idpreventivo='.prepare($idpreventivo); - $rs = $dbo->fetchArray($query); - if ($rs[0]['righe'] > 0) { - $totale_imponibile = get_imponibile_preventivo($idpreventivo); - $totale_preventivo = get_totale_preventivo($idpreventivo); - - // Leggo la rivalsa inps se c'è (per i ordine di vendita lo leggo dalle impostazioni) - if ($dir == 'entrata') { - if (!empty($idrivalsainps)) { - $idrivalsainps = setting('Percentuale rivalsa INPS'); - } - } - - $query = 'SELECT percentuale FROM co_rivalsainps WHERE id='.prepare($idrivalsainps); - $rs = $dbo->fetchArray($query); - $rivalsainps = $totale_imponibile / 100 * $rs[0]['percentuale']; - - // Aggiorno la rivalsa inps - // $dbo->query("UPDATE or_ordini SET rivalsainps='$rivalsainps' WHERE id='$idordine'"); - - // Leggo la ritenuta d'acconto se c'è - $totale_ordine = get_totale_ordine($idordine); - - // Leggo la rivalsa inps se c'è (per i ordine di vendita lo leggo dalle impostazioni) - if (!empty($idritenutaacconto)) { - if ($dir == 'entrata') { - $idritenutaacconto = setting("Percentuale ritenuta d'acconto"); - } - } - - $query = 'SELECT percentuale FROM co_ritenutaacconto WHERE id='.prepare($idritenutaacconto); - $rs = $dbo->fetchArray($query); - $ritenutaacconto = $totale_preventivo / 100 * $rs[0]['percentuale']; - $netto_a_pagare = $totale_preventivo - $ritenutaacconto; - - // Leggo la marca da bollo se c'è e se il netto a pagare supera la soglia - $bolli = str_replace(',', '.', $bolli); - $bolli = floatval($bolli); - if ($dir == 'uscita') { - } else { - $bolli = str_replace(',', '.', setting('Importo marca da bollo')); - if (abs($bolli) > 0 && abs($netto_a_pagare) > abs(setting("Soglia minima per l'applicazione della marca da bollo"))) { - $marca_da_bollo = str_replace(',', '.', $bolli); - } else { - $marca_da_bollo = 0.00; - } - - // Se l'importo è negativo può essere una nota di credito, quindi cambio segno alla marca da bollo - if ($netto_a_pagare < 0) { - $marca_da_bollo *= -1; - } - } - - // $dbo->query("UPDATE or_ordini SET ritenutaacconto='$ritenutaacconto', bollo='$marca_da_bollo' WHERE id='$idordine'"); - } else { - // $dbo->query("UPDATE or_ordini SET ritenutaacconto='0', bollo='0', sconto='0', rivalsainps='0' WHERE id='$idordine'"); - } -} - function get_imponibile_preventivo($idpreventivo) { $preventivo = Preventivo::find($idpreventivo); diff --git a/modules/ritenute/src/RitenutaAcconto.php b/modules/ritenute/src/RitenutaAcconto.php new file mode 100644 index 000000000..6cd66ba51 --- /dev/null +++ b/modules/ritenute/src/RitenutaAcconto.php @@ -0,0 +1,10 @@ +