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 '
@@ -11,16 +11,16 @@ if (!in_array($record['stato'], ['Bozza', 'Evaso', 'Fatturato'])) {
- {[ "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);
+
+