From f852fe026255f6e0aa2060537961143ba2069f6b Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 18 May 2018 18:12:19 +0200 Subject: [PATCH] Bugfix #237 --- modules/articoli/modutil.php | 2 +- modules/contratti/row-list.php | 70 +++++++++++++++++---------------- modules/fatture/row-list.php | 4 +- modules/impostazioni/edit.php | 2 +- modules/preventivi/row-list.php | 26 ++++++------ 5 files changed, 54 insertions(+), 50 deletions(-) diff --git a/modules/articoli/modutil.php b/modules/articoli/modutil.php index 20615c459..5921189bf 100644 --- a/modules/articoli/modutil.php +++ b/modules/articoli/modutil.php @@ -61,7 +61,7 @@ function add_movimento_magazzino($idarticolo, $qta, $array = [], $descrizone = ' // Intervento elseif (!empty($array['idintervento'])) { - $rs_data = $dbo->fetchArray("SELECT IFNULL(MAX(orario_fine), data_richiesta) AS data, codice FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.id='".$array['idintervento']."'"); + $rs_data = $dbo->fetchArray('SELECT IFNULL(MAX(orario_fine), data_richiesta) AS data, codice FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id=in_interventi_tecnici.idintervento WHERE in_interventi.id = '.prepare($array['idintervento'])); $data = $rs_data[0]['data']; $codice_intervento = $rs_data[0]['codice']; diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index fed8ab4b3..cbd90d050 100644 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -2,37 +2,29 @@ include_once __DIR__.'/../../core.php'; -// Mostro le righe del preventivo -$totale_preventivo = 0.00; -$totale_imponibile = 0.00; -$totale_iva = 0.00; -$totale_da_evadere = 0.00; - /* -ARTICOLI +ARTICOLI + RIGHE GENERICHE */ -$rs_art = $dbo->fetchArray('SELECT *, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo), "") AS codice FROM co_righe2_contratti WHERE idcontratto='.prepare($id_record).' ORDER BY `order`'); -$imponibile_art = 0.0; -$iva_art = 0.0; +$rs = $dbo->fetchArray('SELECT *, round(iva,'.Settings::get('Cifre decimali per importi').') AS iva, round(sconto_unitario,'.Settings::get('Cifre decimali per importi').') AS sconto_unitario, round(sconto,'.Settings::get('Cifre decimali per importi').') AS sconto, round(subtotale,'.Settings::get('Cifre decimali per importi').') AS subtotale, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo), "") AS codice FROM co_righe2_contratti WHERE idcontratto='.prepare($id_record).' ORDER BY `order`'); echo ' - - - - - - - - - - + + + + + + + + + + '; // se ho almeno un articolo caricato mostro la riga -if (!empty($rs_art)) { - foreach ($rs_art as $r) { +if (!empty($rs)) { + foreach ($rs as $r) { // descrizione echo ' @@ -48,7 +40,7 @@ if (!empty($rs_art)) { // q.tà echo ' - '; - $iva_art += number_format($r['iva'], 2); - $imponibile_art += $r['subtotale'] - $r['sconto']; - $imponibile_nosconto += $r['subtotale']; - $sconto_art += $r['sconto']; + + // Calcoli + $imponibile = sum(array_column($rs, 'subtotale')); + $sconto = sum(array_column($rs, 'sconto')); + $iva = sum(array_column($rs, 'iva')); + + $imponibile_scontato = sum($imponibile, -$sconto); + + $totale = sum([ + $imponibile_scontato, + $iva, + ]); + + } } @@ -151,7 +153,7 @@ echo ' '; // SCONTO -if (abs($sconto_art) > 0) { +if (abs($sconto) > 0) { // Totale imponibile scontato echo ' @@ -159,7 +161,7 @@ if (abs($sconto_art) > 0) { '.tr('Imponibile', [], ['upper' => true]).':'; @@ -170,7 +172,7 @@ if (abs($sconto_art) > 0) { '.tr('Sconto', [], ['upper' => true]).':'; @@ -182,7 +184,7 @@ if (abs($sconto_art) > 0) { '.tr('Imponibile scontato', [], ['upper' => true]).':'; @@ -194,7 +196,7 @@ if (abs($sconto_art) > 0) { '.tr('Imponibile', [], ['upper' => true]).':'; @@ -207,7 +209,7 @@ echo ' '.tr('Iva', [], ['upper' => true]).':'; @@ -219,7 +221,7 @@ echo ' '.tr('Totale', [], ['upper' => true]).':'; diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index 4f80a401e..cfe671876 100644 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php'; /* Righe fattura */ -$rs = $dbo->fetchArray("SELECT *, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo),'') AS codice, (SELECT descrizione FROM co_pianodeiconti3 WHERE co_pianodeiconti3.id=IF(co_righe_documenti.idconto = 0, (SELECT idconto FROM co_documenti WHERE iddocumento=".prepare($id_record).' LIMIT 1), co_righe_documenti.idconto)) AS descrizione_conto FROM `co_righe_documenti` WHERE iddocumento='.prepare($id_record).' ORDER BY `order`'); +$rs = $dbo->fetchArray('SELECT *, round(iva,'.Settings::get('Cifre decimali per importi').') AS iva, round(sconto_unitario,'.Settings::get('Cifre decimali per importi').') AS sconto_unitario, round(sconto,'.Settings::get('Cifre decimali per importi').') AS sconto, round(subtotale,'.Settings::get('Cifre decimali per importi').') AS subtotale, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo),"") AS codice, (SELECT descrizione FROM co_pianodeiconti3 WHERE co_pianodeiconti3.id=IF(co_righe_documenti.idconto = 0, (SELECT idconto FROM co_documenti WHERE iddocumento='.prepare($id_record).' LIMIT 1), co_righe_documenti.idconto)) AS descrizione_conto FROM `co_righe_documenti` WHERE iddocumento='.prepare($id_record).' ORDER BY `order`'); echo '
'.tr('Descrizione').''.tr('Q.tà').''.tr('U.m.').''.tr('Costo unitario').''.tr('Iva').''.tr('Imponibile').'
'.tr('Descrizione').''.tr('Q.tà').''.tr('U.m.').''.tr('Costo unitario').''.tr('Iva').''.tr('Imponibile').'
'; + '; if (empty($r['is_descrizione'])) { echo ' '.Translator::numberToLocale($r['qta']); @@ -140,10 +132,20 @@ if (!empty($rs_art)) {
- '.Translator::numberToLocale($imponibile_nosconto).' € + '.Translator::numberToLocale($imponibile).' €
- '.Translator::numberToLocale($sconto_art).' € + '.Translator::numberToLocale($sconto).' €
- '.Translator::numberToLocale($imponibile_art).' € + '.Translator::numberToLocale($imponibile_scontato).' €
- '.Translator::numberToLocale($imponibile_art).' € + '.Translator::numberToLocale($imponibile).' €
- '.Translator::numberToLocale($iva_art).' € + '.Translator::numberToLocale($iva).' €
- '.Translator::numberToLocale($imponibile_art + $iva_art).' € + '.Translator::numberToLocale($totale).' €
@@ -282,7 +282,7 @@ echo ' // Calcoli $imponibile = sum(array_column($rs, 'subtotale')); $sconto = sum(array_column($rs, 'sconto')); -$iva = sum(array_column($rs, 'iva'), null, 2); +$iva = sum(array_column($rs, 'iva')); $imponibile_scontato = sum($imponibile, -$sconto); diff --git a/modules/impostazioni/edit.php b/modules/impostazioni/edit.php index e0df3985d..a9947d1a5 100644 --- a/modules/impostazioni/edit.php +++ b/modules/impostazioni/edit.php @@ -10,7 +10,7 @@ echo '
-

'.tr('Valori della sezione').'

+

'.tr('Valori della sezione').': '.$records[0]['sezione'].'

'; diff --git a/modules/preventivi/row-list.php b/modules/preventivi/row-list.php index f4c819d83..7bc16272e 100644 --- a/modules/preventivi/row-list.php +++ b/modules/preventivi/row-list.php @@ -5,20 +5,22 @@ include_once __DIR__.'/../../core.php'; /* ARTICOLI + RIGHE GENERICHE */ -$q_art = "SELECT *, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo), '') AS codice FROM co_righe_preventivi WHERE idpreventivo=".prepare($id_record).' ORDER BY `order`'; +$q_art = 'SELECT *, round(iva,'.Settings::get('Cifre decimali per importi').') AS iva, round(sconto_unitario,'.Settings::get('Cifre decimali per importi').') AS sconto_unitario, round(sconto,'.Settings::get('Cifre decimali per importi').') AS sconto, round(subtotale,'.Settings::get('Cifre decimali per importi').') AS subtotale, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo), "") AS codice FROM co_righe_preventivi WHERE idpreventivo='.prepare($id_record).' ORDER BY `order`'; $rs = $dbo->fetchArray($q_art); echo '
- - - - - - - - - + + + + + + + + + + + '; // se ho almeno un articolo caricato mostro la riga @@ -38,7 +40,7 @@ if (!empty($rs)) { // q.tà echo ' -
'.tr('Descrizione').''.tr('Q.tà').''.tr('U.m.').''.tr('Costo unitario').''.tr('Iva').''.tr('Imponibile').'
'.tr('Descrizione').''.tr('Q.tà').''.tr('U.m.').''.tr('Costo unitario').''.tr('Iva').''.tr('Imponibile').'
'; + '; if (empty($r['is_descrizione'])) { echo ' '.Translator::numberToLocale($r['qta'] - $r['qta_evasa']); @@ -131,7 +133,7 @@ if (!empty($rs)) { // Calcoli $imponibile = sum(array_column($rs, 'subtotale')); $sconto = sum(array_column($rs, 'sconto')); -$iva = sum(array_column($rs, 'iva'), null, 2); +$iva = sum(array_column($rs, 'iva')); $imponibile_scontato = sum($imponibile, -$sconto);