diff --git a/editor.php b/editor.php index ed14eed50..bd1d4c05c 100755 --- a/editor.php +++ b/editor.php @@ -325,6 +325,10 @@ if ($read_only || !empty($block_edit)) { $(".btn-success, button[type=submit]").bind("click", function() { content_was_modified = false; }); + + $( "form" ).bind( "submit", function() { + content_was_modified = false; + }) // questo controllo blocca il modulo vendita al banco, dopo la lettura con barcode, appare il messaggio di conferma window.onbeforeunload = function(e){ diff --git a/lib/functions.js b/lib/functions.js index 132787a30..006d53c63 100644 --- a/lib/functions.js +++ b/lib/functions.js @@ -606,7 +606,7 @@ function start_datatables() { $(win.document.body) .css('font-size', '10pt') .append( - '
' + $('#summable').text() + '
', + '
' + $('#summable').text() + '
' ); $(win.document.body).find('table') .addClass('compact') diff --git a/mail.php b/mail.php index c8aac7e89..e927892cf 100644 --- a/mail.php +++ b/mail.php @@ -158,6 +158,8 @@ echo ' $(this).autocomplete("search", $(this).val()) });; }); + + aggiungi_destinatario(); });'; } diff --git a/modules/banche/edit.php b/modules/banche/edit.php index 7e8a728b7..c8ff3c053 100644 --- a/modules/banche/edit.php +++ b/modules/banche/edit.php @@ -37,7 +37,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "textarea", "label": "", "name": "note", "required": 0, "value": "$note$" ]} + {[ "type": "textarea", "label": "", "name": "note", "value": "$note$" ]}
diff --git a/modules/contratti/plugins/addpianficazione.php b/modules/contratti/plugins/addpianficazione.php index 6bd53d206..fbbbda943 100644 --- a/modules/contratti/plugins/addpianficazione.php +++ b/modules/contratti/plugins/addpianficazione.php @@ -12,6 +12,16 @@ $op = 'edit-pianifica'; $data_conclusione = $dbo->fetchArray('SELECT `data_conclusione` FROM `co_contratti` WHERE `id` = '.prepare($id_record))[0]['data_conclusione']; $idanagrafica = $dbo->fetchArray('SELECT `idanagrafica` FROM `co_contratti` WHERE `id` = '.prepare($id_record))[0]['idanagrafica']; +//tutti gli impianti a contratto +$idimpianti = $dbo->fetchArray('SELECT GROUP_CONCAT(`idimpianto`) AS idimpianti FROM `my_impianti_contratti` WHERE `idcontratto` = '.prepare($id_record))[0]['idimpianti']; + +$idimpianto = explode(',', $idimpianti); +//solo se ho selezionato un solo impianto nel contratto, altrimenti non so quale sede e tecnico prendere +if (count($idimpianto) < 2) { + $idsede = $dbo->fetchArray('SELECT idsede FROM my_impianti WHERE id = '.prepare($idimpianto[0]))[0]['idsede']; + $idtecnico = $dbo->fetchArray('SELECT idtecnico FROM my_impianti WHERE id = '.prepare($idimpianto[0]))[0]['idtecnico']; +} + $list = '\"1\":\"'.tr('Pianificare a partire da oggi ').date('d/m/Y').'\"'; //promemoria esistente @@ -20,13 +30,20 @@ if (!empty(get('idcontratto_riga'))) { $qp = 'SELECT *, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_contratti_promemoria.idtipointervento) AS tipointervento, (SELECT tempo_standard FROM in_tipiintervento WHERE idtipointervento = co_contratti_promemoria.idtipointervento) AS tempo_standard FROM co_contratti_promemoria WHERE id = '.$idcontratto_riga; $rsp = $dbo->fetchArray($qp); - $data_richiesta = $rsp[0]['data_richiesta']; - $matricoleimpianti = trim($rsp[0]['idimpianti']); + $data_richiesta = Translator::dateToLocale($rsp[0]['data_richiesta']); + + //sede nel promemoria $idsede = $rsp[0]['idsede']; + $tempo_standard = $rsp[0]['tempo_standard']; - //if (!empty($rsp[0]['idtipointervento'])) - $readonly = 'readonly'; + $idtipointervento = $rsp[0]['idtipointervento']; + + if (!empty($idsede)) { + //if (!empty($rsp[0]['idimpianti'])) + $idimpianti = trim($rsp[0]['idimpianti']); + $readonly = 'readonly'; + } $hide = ''; $list .= ', \"0\":\"'.tr('Pianificare a partire da questo promemoria ').$data_richiesta.'\"'; @@ -64,7 +81,7 @@ echo '
- {[ "type": "select", "label": "'.tr('Tipo intervento').'", "name": "idtipointervento", "required": 1, "id": "idtipointervento_", "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "'.$rsp[0]['idtipointervento'].'", "extra": "'.$readonly.'" ]} + {[ "type": "select", "label": "'.tr('Tipo intervento').'", "name": "idtipointervento", "required": 1, "id": "idtipointervento_", "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "'.$rsp[0]['idtipointervento'].'", "extra": "'.$readonly.'", "ajax-source": "tipiintervento", "value": "'.$idtipointervento.'" ]}
@@ -74,12 +91,12 @@ echo '
- {[ "type": "select", "multiple": "1", "label": "'.tr('Impianti a contratto').'", "name": "idimpianti[]", "values": "query=SELECT my_impianti.id AS id, my_impianti.nome AS descrizione FROM my_impianti_contratti INNER JOIN my_impianti ON my_impianti_contratti.idimpianto = my_impianti.id WHERE my_impianti_contratti.idcontratto = '.$id_record.' ORDER BY descrizione", "value": "'.$matricoleimpianti.'", "extra":"'.$readonly.'" ]} -
+ {[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede_c", "values": "query=SELECT 0 AS id, \'Sede legale\' AS descrizione UNION SELECT id, CONCAT( CONCAT_WS( \' (\', CONCAT_WS(\', \', `nomesede`, `citta`), `indirizzo` ), \')\') AS descrizione FROM an_sedi WHERE idanagrafica='.$idanagrafica.'", "value": "'.$idsede.'", "extra":"'.$readonly.'", "required" : "1" ]} +
- {[ "type": "select", "label": "'.tr('Sede').'", "name": "idsede_c", "values": "query=SELECT 0 AS id, \'Sede legale\' AS descrizione UNION SELECT id, CONCAT( CONCAT_WS( \' (\', CONCAT_WS(\', \', `nomesede`, `citta`), `indirizzo` ), \')\') AS descrizione FROM an_sedi WHERE idanagrafica='.$idanagrafica.'", "value": "'.$idsede.'", "extra":"'.$readonly.'" ]} -
+ {[ "type": "select", "multiple": "1", "label": "'.tr('Impianti a contratto').'", "name": "idimpianti[]", "help": "'.tr('Impianti sede selezionata').'", "values": "query=SELECT my_impianti.id AS id, my_impianti.nome AS descrizione FROM my_impianti_contratti INNER JOIN my_impianti ON my_impianti_contratti.idimpianto = my_impianti.id WHERE my_impianti_contratti.idcontratto = '.$id_record.' ORDER BY descrizione", "value": "'.$idimpianti.'", "extra":"'.$readonly.'" ]} + @@ -113,9 +130,6 @@ echo ' - - -
@@ -203,16 +217,16 @@ echo '
- {[ "type": "select", "label": "'.tr('Tecnici').'", "multiple": "1", "name": "idtecnico[]", "required": 0, "ajax-source": "tecnici", "extra": "disabled" ]} + {[ "type": "select", "label": "'.tr('Tecnici').'", "multiple": "1", "name": "idtecnico[]", "ajax-source": "tecnici", "extra": "disabled", "value": "'.$idtecnico.'" ]}
- {[ "type": "time", "label": "'.tr('Orario inizio').'", "name": "orario_inizio", "required": 0, "value": "'.$orario_inizio.'", "extra": "disabled" ]} + {[ "type": "time", "label": "'.tr('Orario inizio').'", "name": "orario_inizio", "value": "'.$orario_inizio.'", "extra": "disabled" ]}
- {[ "type": "time", "label": "'.tr('Orario fine').'", "name": "orario_fine", "required": 0, "value": "'.$orario_fine.'", "extra": "disabled" ]} + {[ "type": "time", "label": "'.tr('Orario fine').'", "name": "orario_fine", "value": "'.$orario_fine.'", "extra": "disabled" ]}
@@ -237,12 +251,11 @@ echo ' diff --git a/modules/fatture/add_intervento.php b/modules/fatture/add_intervento.php index 928260568..30457b235 100644 --- a/modules/fatture/add_intervento.php +++ b/modules/fatture/add_intervento.php @@ -60,7 +60,7 @@ echo '
- {[ "type": "checkbox", "label": "'.tr('Copia descrizione').'", "name": "copia_descrizione", "required": 0, "placeholder": "'.tr('In fase di selezione copia la descrizione dell\'intervento').'." ]} + {[ "type": "checkbox", "label": "'.tr('Copia descrizione').'", "name": "copia_descrizione", "placeholder": "'.tr('In fase di selezione copia la descrizione dell\'intervento').'." ]}
'; diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 78d4f99d9..6f428320d 100644 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -147,7 +147,7 @@ if ($dir == 'entrata') {
- {[ "type": "select", "label": "", "name": "idbanca", "required": 0, "values": "query=SELECT id, CONCAT (nome, ' - ' , iban) AS descrizione FROM co_banche WHERE deleted_at IS NULL ORDER BY nome ASC", "value": "$idbanca$" ]} + {[ "type": "select", "label": "", "name": "idbanca", "values": "query=SELECT id, CONCAT (nome, ' - ' , iban) AS descrizione FROM co_banche WHERE deleted_at IS NULL ORDER BY nome ASC", "value": "$idbanca$" ]}
@@ -306,7 +306,7 @@ if ($record['stato'] != 'Pagato' && $record['stato'] != 'Emessa') { } // Lettura ddt - $ddt_query = 'SELECT COUNT(*) AS tot FROM dt_ddt WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' AND idstatoddt IN (SELECT id FROM dt_statiddt WHERE descrizione IN(\'Bozza\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoddt IN (SELECT id FROM dt_tipiddt WHERE dir='.prepare($dir).') AND dt_ddt.id IN (SELECT idddt FROM dt_righe_ddt WHERE dt_righe_ddt.idddt = dt_ddt.id AND (qta - qta_evasa) > 0)'; + $ddt_query = 'SELECT COUNT(*) AS tot FROM dt_ddt WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstatoddt IN (SELECT id FROM dt_statiddt WHERE descrizione IN(\'Bozza\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoddt IN (SELECT id FROM dt_tipiddt WHERE dir='.prepare($dir).') AND dt_ddt.id IN (SELECT idddt FROM dt_righe_ddt WHERE dt_righe_ddt.idddt = dt_ddt.id AND (qta - qta_evasa) > 0)'; $ddt = $dbo->fetchArray($ddt_query)[0]['tot']; echo ' diff --git a/modules/interventi/add.php b/modules/interventi/add.php index df624302c..ea4c12507 100644 --- a/modules/interventi/add.php +++ b/modules/interventi/add.php @@ -90,6 +90,9 @@ elseif (!empty($idcontratto) && !empty($idcontratto_riga)) { $idimpianto = implode(',', array_column($rs, 'idimpianto')); } else { $idimpianto = $idimpianti; + // Spunto il tecnico di default assegnato all'impianto + $rs = $dbo->fetchArray('SELECT idtecnico FROM my_impianti WHERE id='.prepare($idimpianto)); + $idtecnico = $rs[0]['idtecnico'] ?: ''; } // Seleziono "In programmazione" come stato @@ -185,7 +188,7 @@ if (empty($new_codice)) {
@@ -193,7 +196,7 @@ if (empty($new_codice)) {
- {[ "type": "date", "label": "", "name": "data", "required": , "value": "" ]} + {[ "type": "date", "label": "", "name": "data", "required": , "value": "" ]}
@@ -204,11 +207,11 @@ if (empty($new_codice)) {
- {[ "type": "select", "label": "", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "", "ajax-source": "tipiintervento" ]} + {[ "type": "select", "label": "", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "", "ajax-source": "tipiintervento" ]}
- {[ "type": "select", "label": "", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "" ]} + {[ "type": "select", "label": "", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL", "value": "" ]}
diff --git a/modules/my_impianti/add.php b/modules/my_impianti/add.php index 8419ab0f6..eaa735a71 100644 --- a/modules/my_impianti/add.php +++ b/modules/my_impianti/add.php @@ -2,6 +2,10 @@ include_once __DIR__.'/../../core.php'; +//unset($_SESSION['superselect']['idanagrafica']); +//unset($_SESSION['superselect']['idsede']); + + $source = get('source'); $idanagrafica = null; @@ -23,11 +27,15 @@ if ($source == 'Attività') { {[ "type": "text", "label": "", "name": "nome", "required": 1 ]}
-
+
{[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "", "ajax-source": "clienti" ]}
+ +
+ {[ "type": "select", "label": "", "name": "idsede", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='$idanagrafica$'", "value": "$idsede$", "required": "1", "ajax-source": "sedi" ]} +
-
+
{[ "type": "select", "label": "", "name": "idtecnico", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Tecnico' AND deleted_at IS NULL ORDER BY ragione_sociale" ]}
@@ -39,3 +47,25 @@ if ($source == 'Attività') {
+ + + \ No newline at end of file diff --git a/modules/my_impianti/ajax/select.php b/modules/my_impianti/ajax/select.php index 733f09a05..91ab2ec4e 100644 --- a/modules/my_impianti/ajax/select.php +++ b/modules/my_impianti/ajax/select.php @@ -25,7 +25,8 @@ switch ($resource) { } $where[] = 'idanagrafica='.prepare($superselect['idanagrafica']); - $where[] = 'idsede='.prepare($superselect['idsede']); + if (!empty($superselect['idsede'])) + $where[] = 'idsede='.prepare($superselect['idsede']); if (!empty($search)) { $search_fields[] = 'nome LIKE '.prepare('%'.$search.'%'); diff --git a/modules/my_impianti/edit.php b/modules/my_impianti/edit.php index ba32f040d..37cedba94 100644 --- a/modules/my_impianti/edit.php +++ b/modules/my_impianti/edit.php @@ -2,6 +2,10 @@ include_once __DIR__.'/../../core.php'; +//unset($_SESSION['superselect']['idanagrafica']); +//unset($_SESSION['superselect']['idsede']); + + $img = null; if (!empty($record['immagine'])) { $fileinfo = Uploads::fileInfo($record['immagine']); @@ -40,7 +44,7 @@ if (!empty($record['immagine'])) {
- {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idanagrafica$", "extra": "onchange=\"load_preventivi( this.value ); load_contratti( this.value ); $('#idsede').load( '/ajax_complete.php?module=Anagrafiche&op=get_sedi_select&idanagrafica='+$('#idanagrafica option:selected').val() ); load_impianti( $('#idanagrafica option:selected').val(), $('#idsede option:selected').val() );\"", "ajax-source": "clienti" ]} + {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='Cliente' AND deleted_at IS NULL ORDER BY ragione_sociale", "value": "$idanagrafica$", "extra": "", "ajax-source": "clienti" ]}
@@ -56,7 +60,7 @@ if (!empty($record['immagine'])) {
- {[ "type": "select", "label": "", "name": "idsede", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='$idanagrafica$'", "value": "$idsede$" ]} + {[ "type": "select", "label": "", "name": "idsede", "values": "query=SELECT 0 AS id, 'Sede legale' AS descrizione UNION SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='$idanagrafica$'", "value": "$idsede$", "required": "1", "ajax-source": "sedi" ]}
@@ -110,3 +114,25 @@ if (!empty($record['immagine'])) {
+ + + \ No newline at end of file diff --git a/modules/ordini/buttons.php b/modules/ordini/buttons.php index 420de7749..e8767bcb2 100644 --- a/modules/ordini/buttons.php +++ b/modules/ordini/buttons.php @@ -2,7 +2,7 @@ include_once __DIR__.'/../../core.php'; -if (!in_array($record['stato'], ['Bozza', 'Evaso', 'Fatturato'])) { +if (!in_array($record['stato'], ['Evaso', 'Fatturato'])) { echo '
- {[ "type": "text", "label": "", "name": "pattern", "required": 0, "class": "alphanumeric-mask", "value": "$pattern$", "maxlength": 25, "placeholder":"####/yy" ]} + {[ "type": "text", "label": "", "name": "pattern", "class": "alphanumeric-mask", "value": "$pattern$", "maxlength": 25, "placeholder":"####/yy" ]}
@@ -31,7 +31,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "textarea", "label": "Note", "name": "note", "required": 0 ]} + {[ "type": "textarea", "label": "Note", "name": "note" ]}
diff --git a/modules/segmenti/edit.php b/modules/segmenti/edit.php index fe1e457a5..1b3abab9a 100644 --- a/modules/segmenti/edit.php +++ b/modules/segmenti/edit.php @@ -47,7 +47,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "textarea", "label": "", "name": "note", "required": 0, "value": "$note$" ]} + {[ "type": "textarea", "label": "", "name": "note", "value": "$note$" ]}
@@ -71,7 +71,7 @@ if (strpos($table[0], 'co_documenti') !== false) { ?>
- {[ "type": "text", "label": "", "name": "pattern", "required": 0, "class": "alphanumeric-mask", "value": "$pattern$", "maxlength": 25, "placeholder":"####/YY", "extra": " 0) ? 'readonly' : ''; ?>" ]} + {[ "type": "text", "label": "", "name": "pattern", "class": "alphanumeric-mask", "value": "$pattern$", "maxlength": 25, "placeholder":"####/YY", "extra": " 0) ? 'readonly' : ''; ?>" ]}
diff --git a/plugins/sedi/add.php b/plugins/sedi/add.php index 0abbe96cf..062deb26b 100644 --- a/plugins/sedi/add.php +++ b/plugins/sedi/add.php @@ -14,7 +14,7 @@ echo '
- {[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "required": 1 ]} + {[ "type": "text", "label": "'.tr('Indirizzo').'", "name": "indirizzo", "required": 0 ]}
@@ -24,7 +24,7 @@ echo '
- {[ "type": "text", "label": "'.tr('Città').'", "name": "citta" ]} + {[ "type": "text", "label": "'.tr('Città').'", "name": "citta", "required": 1 ]}
diff --git a/templates/fatture/body.php b/templates/fatture/body.php index 93057302a..f39493141 100644 --- a/templates/fatture/body.php +++ b/templates/fatture/body.php @@ -48,7 +48,7 @@ echo " // RIGHE FATTURA CON ORDINAMENTO UNICO $righe = $dbo->fetchArray("SELECT *, - IFNULL((SELECT `codice` FROM `mg_articoli` WHERE `id` = `co_righe_documenti`.`idarticolo`), '') AS codice_articolo, + IFNULL((SELECT `codice` FROM `mg_articoli` WHERE `id` = `co_righe_documenti`.`idarticolo`), '') AS codice_articolo, (SELECT GROUP_CONCAT(`serial` SEPARATOR ', ') FROM `mg_prodotti` WHERE `id_riga_documento` = `co_righe_documenti`.`id`) AS seriali, (SELECT `percentuale` FROM `co_iva` WHERE `id` = `co_righe_documenti`.`idiva`) AS perc_iva FROM `co_righe_documenti` WHERE `iddocumento` = ".prepare($id_record).' ORDER BY `order`'); @@ -59,10 +59,16 @@ foreach ($righe as $r) { // Valori assoluti $r['qta'] = abs($r['qta']); - $r['subtotale'] = abs($r['subtotale']); + if (empty($r['sconto_globale'])) + $r['subtotale'] = abs($r['subtotale']); + else + $r['subtotale'] = ($r['subtotale']); $r['sconto_unitario'] = abs($r['sconto_unitario']); $r['sconto'] = abs($r['sconto']); - $r['iva'] = abs($r['iva']); + if (empty($r['sconto_globale'])) + $r['iva'] = abs($r['iva']); + else + $r['iva'] = ($r['iva']); echo ' @@ -135,8 +141,8 @@ foreach ($righe as $r) { echo " "; if (empty($r['is_descrizione'])) { - echo ' - '.(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €'; + echo ' + '.(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €'; if ($r['sconto'] > 0) { echo " @@ -158,8 +164,8 @@ foreach ($righe as $r) { echo " "; if (empty($r['is_descrizione'])) { - echo ' - '.(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] - $r['sconto'])).' €'; + echo ' + '.(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] - $r['sconto'])).' €'; if ($r['sconto'] > 0) { /*echo " @@ -188,11 +194,6 @@ foreach ($righe as $r) { '; $autofill['count'] += $count; - - $imponibile[] = $r['subtotale']; - $iva[] = $r['iva']; - $sconto[] = $r['sconto']; - $v_iva[$r['desc_iva']] = sum($v_iva[$r['desc_iva']], $r['iva']); $v_totale[$r['desc_iva']] = sum($v_totale[$r['desc_iva']], [ $r['subtotale'], -$r['sconto'], @@ -272,9 +273,32 @@ echo ' echo ' '; -// Info per il footer -$imponibile = sum($imponibile); -$iva = sum($iva, 0) + $records[0]['iva_rivalsainps']; -$sconto = sum($sconto); -$totale = $imponibile + $iva - $sconto + $records[0]['rivalsainps']; +// Calcoli +$imponibile = sum(array_column($righe, 'subtotale')); +$sconto = sum(array_column($righe, 'sconto')); +$iva = sum(array_column($righe, 'iva')); + +$imponibile_scontato = sum($imponibile, -$sconto); + +$totale_iva = sum($iva, $records[0]['iva_rivalsainps']); + +$totale = sum([ + $imponibile_scontato, + $records[0]['rivalsainps'], + $totale_iva, +]); + +$netto_a_pagare = sum([ + $totale, + $records[0]['bollo'], + -$records[0]['ritenutaacconto'], +]); + +$imponibile = abs($imponibile); +$sconto = abs($sconto); +$iva = abs($iva); +$imponibile_scontato = abs($imponibile_scontato); +$totale_iva = abs($totale_iva); +$totale = abs($totale); +$netto_a_pagare = abs($netto_a_pagare); diff --git a/templates/fatture/footer.php b/templates/fatture/footer.php index 793a423a2..9700ba1d8 100644 --- a/templates/fatture/footer.php +++ b/templates/fatture/footer.php @@ -149,7 +149,7 @@ if (!empty($sconto)) { echo " - ".Translator::numberToLocale($iva)." € + ".Translator::numberToLocale($totale_iva)." € diff --git a/update/2_4_1.sql b/update/2_4_1.sql index fb671c489..2df672d21 100644 --- a/update/2_4_1.sql +++ b/update/2_4_1.sql @@ -464,3 +464,13 @@ UPDATE `zz_views` SET `enabled` = 0 WHERE `id_module` = (SELECT `id` FROM `zz_mo -- Aggiunta campi per specificare se la riga importata è un import unico di pù righe ALTER TABLE `co_righe_documenti` ADD `is_preventivo` TINYINT(1) NOT NULL AFTER `is_descrizione`, ADD `is_contratto` TINYINT(1) NOT NULL AFTER `is_preventivo`; + +-- Aggiunta colonna 'Sede' per MyImpianti +INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `enabled`, `summable`, `default` ) VALUES +(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'MyImpianti'), 'Sede', 'IF(my_impianti.idsede = 0, \'Sede legale\', (SELECT CONCAT_WS( '' - '', nomesede, citta ) AS descrizione FROM an_sedi WHERE id = my_impianti.idsede))', 4, 1, 0, 0, '', '', 0, 0, 0); + +-- Aggiunta colonna 'Tempo standard' per Tipi di intervento +INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `enabled`, `summable`, `default` ) VALUES +(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Tipi di intervento'), 'Tempo standard', 'in_tipiintervento.tempo_standard', 10, 1, 0, 1, '', '', 0, 0, 0); + +