From 7c9113102170fba78d7c24618e490add0aa3334d Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Sat, 11 Aug 2018 15:49:46 +0200 Subject: [PATCH] Stile del codice --- docs/Aggiornamento.md | 2 +- docs/Struttura.md | 2 +- modules/anagrafiche/actions.php | 2 +- modules/anagrafiche/edit.php | 6 +- modules/anagrafiche/import.php | 4 +- modules/articoli/edit.php | 2 +- modules/banche/add.php | 2 +- modules/banche/edit.php | 8 +-- modules/beni/edit.php | 2 +- modules/causali/edit.php | 2 +- modules/contratti/edit.php | 2 +- modules/contratti/plugins/add_righe.php | 2 +- modules/contratti/plugins/addfattura.php | 2 +- .../contratti/plugins/addpianficazione.php | 10 +-- .../contratti.pianificazioneinterventi.php | 6 +- modules/contratti/row-list.php | 2 +- modules/contratti/variables.php | 2 +- ...tti.pianificazionedashboard.interventi.php | 8 +-- modules/dashboard/edit.php | 2 +- modules/ddt/variables.php | 2 +- modules/emails/add.php | 2 +- modules/emails/edit.php | 4 +- modules/fatture/edit.php | 4 +- modules/fatture/modutil.php | 68 ++++++++++--------- modules/fatture/row-list.php | 7 +- modules/fatture/variables.php | 2 +- modules/interventi/actions.php | 2 +- modules/interventi/add.php | 6 +- modules/interventi/edit.php | 2 +- modules/interventi/variables.php | 2 +- modules/misure/edit.php | 2 +- modules/my_impianti/add.php | 2 +- modules/my_impianti/ajax/select.php | 5 +- modules/my_impianti/edit.php | 13 ++-- modules/ordini/buttons.php | 10 +-- modules/pagamenti/edit.php | 8 +-- modules/porti/edit.php | 2 +- modules/preventivi/add.php | 2 +- .../plugins/preventivi.consuntivo.php | 2 +- modules/preventivi/row-list.php | 2 +- modules/preventivi/variables.php | 2 +- modules/ritenute/edit.php | 2 +- modules/segmenti/edit.php | 2 +- modules/smtp/edit.php | 4 +- modules/stati_intervento/actions.php | 2 +- modules/stati_intervento/add.php | 2 +- modules/statistiche/edit.php | 2 +- modules/tecnici_tariffe/actions.php | 2 +- modules/utenti/edit.php | 10 +-- modules/viste/edit.php | 6 +- modules/zone/edit.php | 2 +- plugins/sedi/edit.php | 4 +- src/Models/Group.php | 1 - templates/dashboard/body.php | 14 ++-- templates/fatture/body.php | 23 ++++--- .../registro_iva/pdfgen.registro_iva.php | 13 ++-- tests/_support/AcceptanceTester.php | 29 ++++---- tests/_support/FunctionalTester.php | 29 ++++---- tests/_support/Helper/Functional.php | 2 +- tests/_support/Helper/Unit.php | 2 +- tests/_support/UnitTester.php | 29 ++++---- update/2_0.sql | 6 +- update/2_2.sql | 8 +-- update/2_3.sql | 6 +- update/2_4.sql | 12 ++-- update/2_4_1.sql | 8 +-- update/2_4_2.sql | 2 +- 67 files changed, 219 insertions(+), 222 deletions(-) diff --git a/docs/Aggiornamento.md b/docs/Aggiornamento.md index 9a452f485..9cc962557 100644 --- a/docs/Aggiornamento.md +++ b/docs/Aggiornamento.md @@ -49,7 +49,7 @@ Dopo l'esecuzione di queste azioni, il gestionale effettuerà automaticamente il ## Migrazione dalla versione 1.x -E' possibile effettuare la migrazione da una qualsiasi versione 1.x alla nuova 2.0, seguendo una procedura un po’ diversa dalle precedenti: +E' possibile effettuare la migrazione da una qualsiasi versione 1.x alla nuova 2.0, seguendo una procedura un po’ diversa dalle precedenti: 1. Scaricare la versione 2.0 per la migrazione da SourceForge ([openstamanager-2.0-migrazione.zip](https://sourceforge.net/projects/openstamanager/files/openstamanager/openstamanager-2.x/)) 2. Creare un backup completo della versione in uso diff --git a/docs/Struttura.md b/docs/Struttura.md index ff89f053c..073988559 100644 --- a/docs/Struttura.md +++ b/docs/Struttura.md @@ -63,7 +63,7 @@ La licenza in utilizzo è la GNU General Public License 3.0 (GPL 3.0). ### Modulare e personalizzabile -OpenSTAManager possiede una struttura fortemente modulare, che ne permette la rapida espandibilità e, nello specifico, la realizzazione di funzionalità _ad hoc_, personalizzate nel modo più completo secondo le richieste del cliente. +OpenSTAManager possiede una struttura fortemente modulare, che ne permette la rapida espandibilità e, nello specifico, la realizzazione di funzionalità _ad hoc_, personalizzate nel modo più completo secondo le richieste del cliente. ### Multipiattaforma e user friendly diff --git a/modules/anagrafiche/actions.php b/modules/anagrafiche/actions.php index 5038aa2dc..48ac33af8 100644 --- a/modules/anagrafiche/actions.php +++ b/modules/anagrafiche/actions.php @@ -203,7 +203,7 @@ switch (post('op')) { $rs_tipiintervento = $dbo->fetchArray('SELECT * FROM in_tipiintervento'); for ($i = 0; $i < count($rs_tipiintervento); ++$i) { - if ($dbo->query('INSERT INTO in_tariffe( idtecnico, idtipointervento, costo_ore, costo_km, costo_dirittochiamata, costo_ore_tecnico, costo_km_tecnico, costo_dirittochiamata_tecnico ) VALUES( '.prepare($new_id).', '.prepare($rs_tipiintervento[$i]['idtipointervento']).', (SELECT costo_orario FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_km FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_diritto_chiamata FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_orario_tecnico FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_km_tecnico FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_diritto_chiamata_tecnico FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).') )')) { + if ($dbo->query('INSERT INTO in_tariffe( idtecnico, idtipointervento, costo_ore, costo_km, costo_dirittochiamata, costo_ore_tecnico, costo_km_tecnico, costo_dirittochiamata_tecnico ) VALUES( '.prepare($new_id).', '.prepare($rs_tipiintervento[$i]['idtipointervento']).', (SELECT costo_orario FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_km FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_diritto_chiamata FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_orario_tecnico FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_km_tecnico FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).'), (SELECT costo_diritto_chiamata_tecnico FROM in_tipiintervento WHERE idtipointervento='.prepare($rs_tipiintervento[$i]['idtipointervento']).') )')) { //flash()->info(tr('Informazioni salvate correttamente!')); } else { flash()->error(tr("Errore durante l'importazione tariffe!")); diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index ffbaa1d10..ab55d8590 100644 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -358,7 +358,7 @@ if (!$cliente) { if (in_array('Cliente', explode(',', $record['tipianagrafica']))) { ?>
- {[ "type": "select", "label": "Agenti secondari", "multiple": "1", "name": "idagenti[]", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted_at IS NOT NULL, CONCAT(ragione_sociale, ' (Eliminato)'), 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='Agente' AND deleted_at IS NULL AND an_anagrafiche.idanagrafica NOT IN (SELECT idagente FROM an_anagrafiche WHERE idanagrafica = )) OR (an_anagrafiche.idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE idanagrafica = ) ) ORDER BY ragione_sociale", "value": "$idagenti$" ]} + {[ "type": "select", "label": "Agenti secondari", "multiple": "1", "name": "idagenti[]", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted_at IS NOT NULL, CONCAT(ragione_sociale, ' (Eliminato)'), 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='Agente' AND deleted_at IS NULL AND an_anagrafiche.idanagrafica NOT IN (SELECT idagente FROM an_anagrafiche WHERE idanagrafica = )) OR (an_anagrafiche.idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE idanagrafica = ) ) ORDER BY ragione_sociale", "value": "$idagenti$" ]}
@@ -450,10 +450,10 @@ if (empty($record['deleted_at'])) { SELECT `in_interventi`.`id`, `in_interventi`.`data_richiesta`, `in_interventi`.`codice` AS numero, 0 AS numero_esterno, "Intervento" AS tipo_documento, 0 AS dir FROM `in_interventi` JOIN `in_interventi_tecnici` ON `in_interventi`.`id` = `in_interventi_tecnici`.`idintervento` WHERE `in_interventi`.`id` IN (SELECT `idintervento` FROM `in_interventi_tecnici` WHERE `idtecnico` = '.prepare($id_record).' OR `in_interventi`.`idanagrafica` = '.prepare($id_record).' ) UNION - SELECT `co_contratti`.`id`, `co_contratti`.`data_bozza`, `co_contratti`.`numero`, 0 AS numero_esterno , "Contratto" AS tipo_documento, 0 AS dir FROM `co_contratti` WHERE `co_contratti`.`id` IN (SELECT `idcontratto` FROM `co_contratti_promemoria` WHERE `idanagrafica` = '.prepare($id_record).') + SELECT `co_contratti`.`id`, `co_contratti`.`data_bozza`, `co_contratti`.`numero`, 0 AS numero_esterno , "Contratto" AS tipo_documento, 0 AS dir FROM `co_contratti` WHERE `co_contratti`.`id` IN (SELECT `idcontratto` FROM `co_contratti_promemoria` WHERE `idanagrafica` = '.prepare($id_record).') UNION - SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir FROM `co_preventivi` WHERE `co_preventivi`.`id` IN (SELECT `idpreventivo` FROM `co_righe_preventivi` WHERE `idanagrafica` = '.prepare($id_record).') ORDER BY `data`'); + SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir FROM `co_preventivi` WHERE `co_preventivi`.`id` IN (SELECT `idpreventivo` FROM `co_righe_preventivi` WHERE `idanagrafica` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($elementi)) { echo ' diff --git a/modules/anagrafiche/import.php b/modules/anagrafiche/import.php index 2e2775cad..9e891fdde 100644 --- a/modules/anagrafiche/import.php +++ b/modules/anagrafiche/import.php @@ -15,8 +15,8 @@ switch (post('op')) { directory('../../files/'.$module); $fp = fopen('../../files/'.$module.'/'.$module.'.csv', 'w'); - fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF)); - + fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF)); + foreach ($list as $fields) { fputcsv($fp, $fields, ';'); } diff --git a/modules/articoli/edit.php b/modules/articoli/edit.php index b9b51cd29..92fcc3487 100644 --- a/modules/articoli/edit.php +++ b/modules/articoli/edit.php @@ -355,7 +355,7 @@ $("#categoria").change( function(){ //fatture, ddt, preventivi collegati a questo articolo $elementi = $dbo->fetchArray('SELECT `co_documenti`.`id`, `co_documenti`.`data`, `co_documenti`.`numero`, `co_documenti`.`numero_esterno`, `co_tipidocumento`.`descrizione` AS tipo_documento, `co_tipidocumento`.`dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idarticolo` = '.prepare($id_record).') UNION SELECT `dt_ddt`.`id`, `dt_ddt`.`data`, `dt_ddt`.`numero`, `dt_ddt`.`numero_esterno`, `dt_tipiddt`.`descrizione` AS tipo_documento, `dt_tipiddt`.`dir` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `idarticolo` = '.prepare($id_record).') UNION -SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir FROM `co_preventivi` WHERE `co_preventivi`.`id` IN (SELECT `idpreventivo` FROM `co_righe_preventivi` WHERE `idarticolo` = '.prepare($id_record).') ORDER BY `data`'); +SELECT `co_preventivi`.`id`, `co_preventivi`.`data_bozza`, `co_preventivi`.`numero`, 0 AS numero_esterno , "Preventivo" AS tipo_documento, 0 AS dir FROM `co_preventivi` WHERE `co_preventivi`.`id` IN (SELECT `idpreventivo` FROM `co_righe_preventivi` WHERE `idarticolo` = '.prepare($id_record).') ORDER BY `data`'); if (!empty($elementi)) { echo ' diff --git a/modules/banche/add.php b/modules/banche/add.php index d3b01a2ef..b69b8151a 100644 --- a/modules/banche/add.php +++ b/modules/banche/add.php @@ -8,7 +8,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "text", "label": "", "name": "nome", "required": "1" ]} + {[ "type": "text", "label": "", "name": "nome", "required": "1" ]}
diff --git a/modules/banche/edit.php b/modules/banche/edit.php index c8ff3c053..b3483ca5b 100644 --- a/modules/banche/edit.php +++ b/modules/banche/edit.php @@ -16,13 +16,13 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "text", "label": "", "name": "nome", "required": "1", "value": "$nome$" ]} + {[ "type": "text", "label": "", "name": "nome", "required": "1", "value": "$nome$" ]}
- {[ "type": "text", "label": "", "name": "filiale", "value": "$filiale$" ]} + {[ "type": "text", "label": "", "name": "filiale", "value": "$filiale$" ]}
- {[ "type": "select", "label": "", "name": "id_pianodeiconti3", "value": "$id_pianodeiconti3$", "values": "query=SELECT id, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2 = 1 AND ( id NOT IN (SELECT id_pianodeiconti3 FROM co_banche) OR id = '' )" ]} + {[ "type": "select", "label": "", "name": "id_pianodeiconti3", "value": "$id_pianodeiconti3$", "values": "query=SELECT id, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2 = 1 AND ( id NOT IN (SELECT id_pianodeiconti3 FROM co_banche) OR id = '' )" ]}
@@ -31,7 +31,7 @@ include_once __DIR__.'/../../core.php'; {[ "type": "text", "label": "", "name": "iban", "required": "1", "class": "alphanumeric-mask", "maxlength": 32, "value": "$iban$" ]}
- {[ "type": "text", "label": "", "name": "bic", "class": "alphanumeric-mask", "maxlength": 11, "value": "$bic$" ]} + {[ "type": "text", "label": "", "name": "bic", "class": "alphanumeric-mask", "maxlength": 11, "value": "$bic$" ]}
diff --git a/modules/beni/edit.php b/modules/beni/edit.php index 3757c7aa2..75852b7a8 100644 --- a/modules/beni/edit.php +++ b/modules/beni/edit.php @@ -15,7 +15,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "text", "label": "", "name": "descrizione", "required": 1, "value": "$descrizione$" ]} + {[ "type": "text", "label": "", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
diff --git a/modules/causali/edit.php b/modules/causali/edit.php index 1c0185add..3ab0b9527 100644 --- a/modules/causali/edit.php +++ b/modules/causali/edit.php @@ -14,7 +14,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "text", "label": "", "name": "descrizione", "required": 1, "value": "$descrizione$" ]} + {[ "type": "text", "label": "", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
diff --git a/modules/contratti/edit.php b/modules/contratti/edit.php index 2819ab545..12c7e7cd9 100644 --- a/modules/contratti/edit.php +++ b/modules/contratti/edit.php @@ -33,7 +33,7 @@ $_SESSION['superselect']['idanagrafica'] = $record['idanagrafica'];
- {[ "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$", "ajax-source": "sedi" ]} + {[ "type": "select", "label": "", "name": "idsede", "value": "$idsede$", "ajax-source": "sedi", "placeholder": "Sede legale" ]}
diff --git a/modules/contratti/plugins/add_righe.php b/modules/contratti/plugins/add_righe.php index face315f0..abef8591f 100644 --- a/modules/contratti/plugins/add_righe.php +++ b/modules/contratti/plugins/add_righe.php @@ -77,7 +77,7 @@ echo ' // Unità di misura echo '
- {[ "type": "select", "label": "'.tr('Unità di misura').'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]} + {[ "type": "select", "label": "'.tr('Unità di misura').'", "name": "um", "value": "'.$um.'", "ajax-source": "misure" ]}
'; // Iva diff --git a/modules/contratti/plugins/addfattura.php b/modules/contratti/plugins/addfattura.php index d96f937fd..5a4891d3a 100644 --- a/modules/contratti/plugins/addfattura.php +++ b/modules/contratti/plugins/addfattura.php @@ -32,7 +32,7 @@ echo ' // Sezionale echo '
- {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='.Modules::get('Fatture di vendita')['id'].' ORDER BY name", "value":"'.$_SESSION['module_'.Modules::get('Fatture di vendita')['id']]['id_segment'].'" ]} + {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='.Modules::get('Fatture di vendita')['id'].' ORDER BY name", "value":"'.$_SESSION['module_'.Modules::get('Fatture di vendita')['id']]['id_segment'].'" ]}
'; diff --git a/modules/contratti/plugins/addpianficazione.php b/modules/contratti/plugins/addpianficazione.php index fbbbda943..33912150c 100644 --- a/modules/contratti/plugins/addpianficazione.php +++ b/modules/contratti/plugins/addpianficazione.php @@ -77,11 +77,11 @@ echo '
- {[ "type": "date", "label": "'.tr('Data promemoria').'", "name": "data_richiesta", "required": 1, "value": "'.$data_richiesta.'", "extra":"'.$readonly.'" ]} + {[ "type": "date", "label": "'.tr('Data promemoria').'", "name": "data_richiesta", "required": 1, "value": "'.$data_richiesta.'", "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.'" ]} + {[ "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.'" ]}
@@ -104,7 +104,7 @@ echo '
- {[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "richiesta", "id": "richiesta_", "extra": "'.$readonly.'", "value": "'.$rsp[0]['richiesta'].'" ]} + {[ "type": "textarea", "label": "'.tr('Descrizione').'", "name": "richiesta", "id": "richiesta_", "extra": "'.$readonly.'", "value": "'.$rsp[0]['richiesta'].'" ]}
'; @@ -175,7 +175,7 @@ echo ' echo '
- {[ "type": "number", "label": "'.tr('Intervallo').'", "name": "intervallo", "decimals": 0, "required": 1, "icon-after": "GG", "min-value": "1" ]} + {[ "type": "number", "label": "'.tr('Intervallo').'", "name": "intervallo", "decimals": 0, "required": 1, "icon-after": "GG", "min-value": "1" ]}
'; ?> @@ -217,7 +217,7 @@ echo '
- {[ "type": "select", "label": "'.tr('Tecnici').'", "multiple": "1", "name": "idtecnico[]", "ajax-source": "tecnici", "extra": "disabled", "value": "'.$idtecnico.'" ]} + {[ "type": "select", "label": "'.tr('Tecnici').'", "multiple": "1", "name": "idtecnico[]", "ajax-source": "tecnici", "extra": "disabled", "value": "'.$idtecnico.'" ]}
diff --git a/modules/contratti/plugins/contratti.pianificazioneinterventi.php b/modules/contratti/plugins/contratti.pianificazioneinterventi.php index 92a8faab8..794f5dded 100644 --- a/modules/contratti/plugins/contratti.pianificazioneinterventi.php +++ b/modules/contratti/plugins/contratti.pianificazioneinterventi.php @@ -10,7 +10,7 @@ switch (filter('op')) { $data_richiesta = filter('data_richiesta'); $idtipointervento = filter('idtipointervento'); - $query = 'INSERT INTO `co_contratti_promemoria` ( `idcontratto`, `data_richiesta`, idtipointervento ) VALUES ('.prepare($id_record).', '.prepare($data_richiesta).', '.prepare($idtipointervento).' )'; + $query = 'INSERT INTO `co_contratti_promemoria` ( `idcontratto`, `data_richiesta`, idtipointervento ) VALUES ('.prepare($id_record).', '.prepare($data_richiesta).', '.prepare($idtipointervento).' )'; //$are_duplicated = $dbo->fetchNum('SELECT id FROM co_contratti_promemoria WHERE data_richiesta = '.prepare($data_richiesta).' AND idtipointervento = '.prepare($idtipointervento).' AND idcontratto = '.prepare($id_record) ); @@ -35,7 +35,7 @@ switch (filter('op')) { $idsede = filter('idsede_c'); $idimpianti = implode(',', post('idimpianti')); - $query = 'UPDATE co_contratti_promemoria SET idtipointervento='.prepare($idtipointervento).', data_richiesta='.prepare($data_richiesta).', richiesta='.prepare($richiesta).', idsede='.prepare($idsede).', idimpianti='.prepare($idimpianti).' WHERE id = '.prepare($idcontratto_riga); + $query = 'UPDATE co_contratti_promemoria SET idtipointervento='.prepare($idtipointervento).', data_richiesta='.prepare($data_richiesta).', richiesta='.prepare($richiesta).', idsede='.prepare($idsede).', idimpianti='.prepare($idimpianti).' WHERE id = '.prepare($idcontratto_riga); if (isset($id_record)) { if ($dbo->query($query)) { @@ -211,7 +211,7 @@ switch (filter('op')) { $dbo->query('INSERT INTO mg_articoli_interventi (idarticolo, idintervento,descrizione,prezzo_acquisto,prezzo_vendita,sconto, sconto_unitario, tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto) SELECT idarticolo, '.$idintervento.',descrizione,prezzo_acquisto,prezzo_vendita,sconto,sconto_unitario,tipo_sconto,idiva,desc_iva,iva,idautomezzo, qta, um, abilita_serial, idimpianto FROM co_righe_contratti_articoli WHERE id_riga_contratto = '.$idcontratto_riga.' '); //copio gli allegati dal promemoria all'intervento - $dbo->query('INSERT INTO zz_files (nome,filename,original,category,id_module,id_record) SELECT t.nome, t.filename, t.original, t.category, '.Modules::get('Interventi')['id'].', '.$idintervento.' FROM zz_files t WHERE t.id_record = '.$idcontratto_riga.' AND t.id_plugin = '.$id_plugin.''); + $dbo->query('INSERT INTO zz_files (nome,filename,original,category,id_module,id_record) SELECT t.nome, t.filename, t.original, t.category, '.Modules::get('Interventi')['id'].', '.$idintervento.' FROM zz_files t WHERE t.id_record = '.$idcontratto_riga.' AND t.id_plugin = '.$id_plugin.''); // Decremento la quantità per ogni articolo copiato $rs_articoli = $dbo->fetchArray('SELECT * FROM mg_articoli_interventi WHERE idintervento = '.$idintervento.' '); diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index e734c50aa..282ce8c60 100644 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php'; /* ARTICOLI + RIGHE GENERICHE */ -$rs = $dbo->fetchArray('SELECT *, round(sconto_unitario,'.setting('Cifre decimali per importi').') AS sconto_unitario, round(sconto,'.setting('Cifre decimali per importi').') AS sconto, round(subtotale,'.setting('Cifre decimali per importi').') AS subtotale, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo), "") AS codice FROM co_righe_contratti WHERE idcontratto='.prepare($id_record).' ORDER BY `order`'); +$rs = $dbo->fetchArray('SELECT *, round(sconto_unitario,'.setting('Cifre decimali per importi').') AS sconto_unitario, round(sconto,'.setting('Cifre decimali per importi').') AS sconto, round(subtotale,'.setting('Cifre decimali per importi').') AS subtotale, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo), "") AS codice FROM co_righe_contratti WHERE idcontratto='.prepare($id_record).' ORDER BY `order`'); echo ' diff --git a/modules/contratti/variables.php b/modules/contratti/variables.php index bf6511f05..9452d6611 100644 --- a/modules/contratti/variables.php +++ b/modules/contratti/variables.php @@ -10,5 +10,5 @@ return [ 'numero' => $r['numero'], 'descrizione' => $r['descrizione'], 'data' => Translator::dateToLocale($r['data_bozza']), - 'id_anagrafica' => $r['idanagrafica'], + 'id_anagrafica' => $r['idanagrafica'], ]; diff --git a/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php b/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php index 76849d461..330053e1d 100644 --- a/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php +++ b/modules/contratti/widgets/contratti.pianificazionedashboard.interventi.php @@ -22,11 +22,9 @@ $qp = "SELECT *, DATE_FORMAT( data_richiesta, '%m-%Y') AS mese, (SELECT descrizi $rsp = $dbo->fetchArray($qp); if (!empty($rsp)) { - // Elenco interventi da pianificare foreach ($rsp as $i => $r) { - - // Se cambia il mese ricreo l'intestazione della tabella + // Se cambia il mese ricreo l'intestazione della tabella if (!isset($rsp[$i - 1]) || $r['mese'] != $rsp[$i - 1]['mese']) { if ($i == 0) { $attr = ''; @@ -68,7 +66,7 @@ if (!empty($rsp)) { '; - + echo ' \n"; @@ -148,7 +148,7 @@ function showMonth($month, $year, &$rs, &$height) } $weekday = date('l', strtotime($year.'-'.$month.'-'.(sprintf('%02d', $day)))); - $weekdays = ['Monday' => 'Lunedi\'', 'Tuesday' => 'Martedi\'', 'Wednesday' => 'Mercoledi\'', 'Thursday' => 'Giovedi\'', 'Friday' => 'Venerdi\'', 'Saturday' => 'Sabato', 'Sunday' => 'Domenica']; + $weekdays = ['Monday' => 'Lunedi\'', 'Tuesday' => 'Martedi\'', 'Wednesday' => 'Mercoledi\'', 'Thursday' => 'Giovedi\'', 'Friday' => 'Venerdi\'', 'Saturday' => 'Sabato', 'Sunday' => 'Domenica']; $weekday = $weekdays[$weekday]; $header[$rows] .= '\n"; @@ -178,7 +178,7 @@ function showMonth($month, $year, &$rs, &$height) //$lastdate = $lastdateofmonth."/".$current_month."/".$current_year; $weekday = date('l', strtotime($current_year.'-'.$current_month.'-'.(sprintf('%02d', $i)))); - $weekdays = ['Monday' => 'Lunedi\'', 'Tuesday' => 'Martedi\'', 'Wednesday' => 'Mercoledi\'', 'Thursday' => 'Giovedi\'', 'Friday' => 'Venerdi\'', 'Saturday' => 'Sabato', 'Sunday' => 'Domenica']; + $weekdays = ['Monday' => 'Lunedi\'', 'Tuesday' => 'Martedi\'', 'Wednesday' => 'Mercoledi\'', 'Thursday' => 'Giovedi\'', 'Friday' => 'Venerdi\'', 'Saturday' => 'Sabato', 'Sunday' => 'Domenica']; $weekday = $weekdays[$weekday]; $header[$rows] .= '\n"; diff --git a/templates/fatture/body.php b/templates/fatture/body.php index f39493141..ce46f5242 100644 --- a/templates/fatture/body.php +++ b/templates/fatture/body.php @@ -59,16 +59,18 @@ foreach ($righe as $r) { // Valori assoluti $r['qta'] = abs($r['qta']); - if (empty($r['sconto_globale'])) - $r['subtotale'] = abs($r['subtotale']); - else - $r['subtotale'] = ($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']); - if (empty($r['sconto_globale'])) - $r['iva'] = abs($r['iva']); - else - $r['iva'] = ($r['iva']); + if (empty($r['sconto_globale'])) { + $r['iva'] = abs($r['iva']); + } else { + $r['iva'] = ($r['iva']); + } echo ' @@ -141,7 +143,7 @@ foreach ($righe as $r) { echo "
'.Translator::dateToLocale($r['data_richiesta']).' '.$r['tipointervento'].' '.nl2br($r['richiesta']).''; // Sede @@ -114,7 +112,7 @@ if (!empty($rsp)) { \ No newline at end of file + diff --git a/modules/ordini/buttons.php b/modules/ordini/buttons.php index e8767bcb2..1ed10c0b7 100644 --- a/modules/ordini/buttons.php +++ b/modules/ordini/buttons.php @@ -11,16 +11,16 @@ if (!in_array($record['stato'], ['Evaso', 'Fatturato'])) { '.tr($weekday.' '.(sprintf('%02d', $day)).'/'.(sprintf('%02d', $current_month)), [], ['upper' => true])."'.tr($weekday.' '.(sprintf('%02d', $day)).'/'.$month, [], ['upper' => true])." '.tr($weekday.' '.(sprintf('%02d', $i)).'/'.(sprintf('%02d', $current_month)), [], ['upper' => true])."
"; if (empty($r['is_descrizione'])) { - echo ' + echo ' '.(empty($r['qta']) || empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] / $r['qta'])).' €'; if ($r['sconto'] > 0) { @@ -164,7 +166,7 @@ foreach ($righe as $r) { echo " "; if (empty($r['is_descrizione'])) { - echo ' + echo ' '.(empty($r['subtotale']) ? '' : Translator::numberToLocale($r['subtotale'] - $r['sconto'])).' €'; if ($r['sconto'] > 0) { @@ -273,7 +275,6 @@ echo ' echo '
'; - // Calcoli $imponibile = sum(array_column($righe, 'subtotale')); $sconto = sum(array_column($righe, 'sconto')); diff --git a/templates/registro_iva/pdfgen.registro_iva.php b/templates/registro_iva/pdfgen.registro_iva.php index 8ba3b47aa..b6a681aa4 100644 --- a/templates/registro_iva/pdfgen.registro_iva.php +++ b/templates/registro_iva/pdfgen.registro_iva.php @@ -67,7 +67,7 @@ $body .= " No prot. No doc. Data - ".(($dir=='entrata') ? 'Cliente': 'Fornitore')." + ".(($dir == 'entrata') ? 'Cliente' : 'Fornitore')." Causale Aliquota Imponibile @@ -78,21 +78,20 @@ $body .= " for ($i = 0; $i < sizeof($rs); ++$i) { $body .= ''; - + if ($rs[$i]['numero'] == $rs[$i - 1]['numero']) { $body .= " "; $body .= " "; - $body .= " "; - + $body .= " "; } else { - $body .= " ".$rs[$i]['numero'].''; + $body .= " ".$rs[$i]['numero'].''; $body .= " ".$rs[$i]['numero_esterno'].''; $body .= " ".date('d/m/Y', strtotime($rs[$i]['data'])).''; } - $body .= "".$rs[$i]['ragione_sociale'].""; + $body .= "".$rs[$i]['ragione_sociale'].''; - $body .= " ".(($dir=='entrata') ? 'Fattura di vendita': 'Fattura di acquisto').''; + $body .= " ".(($dir == 'entrata') ? 'Fattura di vendita' : 'Fattura di acquisto').''; $body .= " ".$rs[$i]['desc_iva'].''; $body .= " ".Translator::numberToLocale($rs[$i]['subtotale']).' €'; $body .= " ".Translator::numberToLocale($rs[$i]['iva']).' €'; diff --git a/tests/_support/AcceptanceTester.php b/tests/_support/AcceptanceTester.php index 4c7dcbb6d..a99cf163e 100644 --- a/tests/_support/AcceptanceTester.php +++ b/tests/_support/AcceptanceTester.php @@ -2,25 +2,26 @@ /** - * Inherited Methods - * @method void wantToTest($text) - * @method void wantTo($text) - * @method void execute($callable) - * @method void expectTo($prediction) - * @method void expect($prediction) - * @method void amGoingTo($argumentation) - * @method void am($role) - * @method void lookForwardTo($achieveValue) - * @method void comment($description) + * Inherited Methods. + * + * @method void wantToTest($text) + * @method void wantTo($text) + * @method void execute($callable) + * @method void expectTo($prediction) + * @method void expect($prediction) + * @method void amGoingTo($argumentation) + * @method void am($role) + * @method void lookForwardTo($achieveValue) + * @method void comment($description) * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL) * * @SuppressWarnings(PHPMD) -*/ + */ class AcceptanceTester extends \Codeception\Actor { use _generated\AcceptanceTesterActions; - /** - * Define custom actions here - */ + /* + * Define custom actions here + */ } diff --git a/tests/_support/FunctionalTester.php b/tests/_support/FunctionalTester.php index 7e888f8b2..4f8e39312 100644 --- a/tests/_support/FunctionalTester.php +++ b/tests/_support/FunctionalTester.php @@ -2,25 +2,26 @@ /** - * Inherited Methods - * @method void wantToTest($text) - * @method void wantTo($text) - * @method void execute($callable) - * @method void expectTo($prediction) - * @method void expect($prediction) - * @method void amGoingTo($argumentation) - * @method void am($role) - * @method void lookForwardTo($achieveValue) - * @method void comment($description) + * Inherited Methods. + * + * @method void wantToTest($text) + * @method void wantTo($text) + * @method void execute($callable) + * @method void expectTo($prediction) + * @method void expect($prediction) + * @method void amGoingTo($argumentation) + * @method void am($role) + * @method void lookForwardTo($achieveValue) + * @method void comment($description) * @method \Codeception\Lib\Friend haveFriend($name, $actorClass = NULL) * * @SuppressWarnings(PHPMD) -*/ + */ class FunctionalTester extends \Codeception\Actor { use _generated\FunctionalTesterActions; - /** - * Define custom actions here - */ + /* + * Define custom actions here + */ } diff --git a/tests/_support/Helper/Functional.php b/tests/_support/Helper/Functional.php index 4183cb0a5..57e511334 100644 --- a/tests/_support/Helper/Functional.php +++ b/tests/_support/Helper/Functional.php @@ -1,4 +1,5 @@ = ''|period_start|'' AND DATE_FORMAT( `orario_fine`, ''%Y-%m-%d'' ) <= ''|period_end|'' ) OR ( DATE_FORMAT( `data_richiesta`, ''%Y-%m-%d'' ) >= ''|period_start|'' AND DATE_FORMAT( `data_richiesta`, ''%Y-%m-%d'' ) <= ''|period_end|'' ) ) ORDER BY IFNULL(`orario_fine`, `data_richiesta`) DESC"} ]}', '', 'fa fa-wrench', '2.0', '2.0', 2, 0, 0, 1, 1, 'menu', 0), (6, 'Aggiornamenti', '', 'aggiornamenti', '{ "main_query": [ { "type": "custom" } ]}', '', 'fa fa-download', '2.0', '2.0', 4, 0, 0, 1, 1, 'menu', 0), (7, 'Backup', '', 'backup', '{ "main_query": [ { "type": "custom" } ]}', '', 'fa fa-archive', '2.0', '2.0', 5, 0, 0, 1, 1, 'menu', 0), @@ -2258,8 +2258,8 @@ INSERT INTO `zz_modules` (`id`, `name`, `name2`, `module_dir`, `options`, `optio (17, 'Partitario', '', 'partitario', '{ "main_query": [ { "type": "custom" } ]}', '', 'fa fa-external-link', '2.0', '2.0', 6, 1, 12, 1, 1, 'menu', 0), (18, 'Scadenzario', '', 'scadenziario', '{ "main_query": [ { "type": "table", "fields": "Documento, Cliente, Tipo di pagamento, Data emissione, Data scadenza, Importo, Pagato", "query": "SELECT co_scadenziario.id AS id, ragione_sociale AS `Cliente`, co_pagamenti.descrizione AS `Tipo di pagamento`, CONCAT( co_tipidocumento.descrizione, CONCAT( '' numero '', IF(numero_esterno<>'''', numero_esterno, numero) ) ) AS `Documento`, DATE_FORMAT(data_emissione, ''%d/%m/%Y'') AS `Data emissione`, DATE_FORMAT(scadenza, ''%d/%m/%Y'') AS `Data scadenza`, REPLACE(da_pagare, ''.'', '','') AS `Importo`, REPLACE(pagato, ''.'', '','') AS `Pagato`, IF(scadenza= ''|period_start|'' AND `data` <= ''|period_end|'' ORDER BY `id` DESC"} ]}', '', 'fa fa-external-link', '2.0', '2.0', 1, 1, 12, 1, 1, 'menu', 0), (25, 'Ordini fornitore', '', 'ordini', '{ "main_query": [ { "type": "table", "fields": "Numero, Data, Ragione sociale, icon_Stato", "query": "SELECT `or_ordini`.`id`, IF(`numero_esterno`='''', `numero`, `numero_esterno`) AS `Numero`, DATE_FORMAT( `data`, ''%d/%m/%Y'' ) AS `Data`, (SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica`=`or_ordini`.`idanagrafica`) AS `Ragione sociale`, (SELECT `icona` FROM `or_statiordine` WHERE `id`=`idstatoordine`) AS `icon_Stato`, (SELECT `descrizione` FROM `or_statiordine` WHERE `id`=`idstatoordine`) AS `icon_title_Stato` FROM `or_ordini` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine`=`or_tipiordine`.`id` WHERE 1=1 AND `dir`=''uscita'' AND `data` >= ''|period_start|'' AND `data` <= ''|period_end|'' ORDER BY `id` DESC"} ]}', '', 'fa fa-external-link', '2.0', '2.0', 2, 1, 12, 1, 1, 'menu', 0), diff --git a/update/2_2.sql b/update/2_2.sql index 79ad451d1..0851c6d62 100644 --- a/update/2_2.sql +++ b/update/2_2.sql @@ -26,7 +26,7 @@ INSERT INTO `zz_impostazioni` (`idimpostazione`, `nome`, `valore`, `tipo`, `edit UPDATE `zz_impostazioni` SET `editable` = '0' WHERE `nome` = 'Destinatario'; -- Aggiornamento query moduli per il nuovo sistema di caricamento via ajax -UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Ragione sociale, Tipologia, Città, Telefono, color_Rel.", "query": "SELECT `idanagrafica` AS `id`, ragione_sociale AS `Ragione sociale`, (SELECT GROUP_CONCAT(descrizione SEPARATOR '', '') FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica GROUP BY idanagrafica HAVING idanagrafica=an_anagrafiche.idanagrafica) AS `Tipologia`, citta AS `Città`, telefono AS `Telefono`, an_relazioni.colore AS `color_Rel.`, an_relazioni.descrizione AS `color_title_Rel.`, deleted FROM an_anagrafiche LEFT OUTER JOIN an_relazioni ON an_anagrafiche.idrelazione=an_relazioni.id HAVING 1=1 AND deleted=0 ORDER BY `ragione_sociale`"} ]}' WHERE `name` = 'Anagrafiche'; +UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Ragione sociale, Tipologia, Città, Telefono, color_Rel.", "query": "SELECT `idanagrafica` AS `id`, ragione_sociale AS `Ragione sociale`, (SELECT GROUP_CONCAT(descrizione SEPARATOR '', '') FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica GROUP BY idanagrafica HAVING idanagrafica=an_anagrafiche.idanagrafica) AS `Tipologia`, citta AS `Città`, telefono AS `Telefono`, an_relazioni.colore AS `color_Rel.`, an_relazioni.descrizione AS `color_title_Rel.`, deleted FROM an_anagrafiche LEFT OUTER JOIN an_relazioni ON an_anagrafiche.idrelazione=an_relazioni.id HAVING 1=1 AND deleted=0 ORDER BY `ragione_sociale`"} ]}' WHERE `name` = 'Anagrafiche'; UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "ID, Tipo, Ragione sociale, Stato, Data inizio, Data fine, _print_", "query": "SELECT `in_interventi`.`idanagrafica`, `in_interventi`.`idintervento` AS `id`, `in_interventi`.`idintervento` AS `ID`, `ragione_sociale` AS `Ragione sociale`, DATE_FORMAT(MIN(`orario_inizio`), ''%d/%m/%Y'') AS `Data inizio`, DATE_FORMAT(MAX(`orario_fine`), ''%d/%m/%Y'') AS `Data fine`, `data_richiesta`, (SELECT `colore` FROM `in_statiintervento` WHERE `idstatointervento`=`in_interventi`.`idstatointervento`) AS `_bg_`, (SELECT `descrizione` FROM `in_statiintervento` WHERE `idstatointervento`=`in_interventi`.`idstatointervento`) AS `Stato`, (SELECT `descrizione` FROM `in_tipiintervento` WHERE `idtipointervento`=`in_interventi`.`idtipointervento`) AS `Tipo`, ''pdfgen.php?ptype=interventi&idintervento=$id$&mode=single'' AS `_print_`, `orario_inizio`, `orario_fine` FROM (`in_interventi` INNER JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica`=`an_anagrafiche`.`idanagrafica`) LEFT OUTER JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento`=`in_interventi`.`idintervento` GROUP BY `in_interventi`.`idintervento` HAVING 1=1 AND ((DATE_FORMAT(`orario_inizio`, ''%Y-%m-%d'') >= ''|period_start|'' AND DATE_FORMAT(`orario_fine`, ''%Y-%m-%d'') <= ''|period_end|'') OR (DATE_FORMAT(`data_richiesta`, ''%Y-%m-%d'') >= ''|period_start|'' AND DATE_FORMAT(`data_richiesta`, ''%Y-%m-%d'') <= ''|period_end|'')) ORDER BY IFNULL(`orario_fine`, `data_richiesta`) DESC"} ]}' WHERE `zz_modules`.`name` = 'Interventi'; UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Descrizione", "query": "SELECT `idtipoanagrafica` AS `id`, `descrizione` AS `Descrizione` FROM `an_tipianagrafiche` HAVING 1=1"} ]}' WHERE `name` = 'Tipi di anagrafiche'; UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Codice, Descrizione, Costo orario, Costo al km, Diritto di chiamata, Costo orario tecnico, Costo al km tecnico, Diritto di chiamata tecnico", "query": "SELECT `idtipointervento` AS `id`, `idtipointervento` AS `Codice`, `descrizione` AS `Descrizione`, REPLACE(FORMAT(`costo_orario`,2), ''.'', '','') AS `Costo orario`, REPLACE(FORMAT(`costo_km`,2), ''.'', '','') AS `Costo al km`, REPLACE(FORMAT(`costo_diritto_chiamata`,2), ''.'', '','') AS `Diritto di chiamata`, REPLACE(FORMAT(`costo_orario_tecnico`,2), ''.'', '','') AS `Costo orario tecnico`, REPLACE(FORMAT(`costo_km_tecnico`,2), ''.'', '','') AS `Costo al km tecnico`, REPLACE(FORMAT(`costo_diritto_chiamata_tecnico`,2), ''.'', '','') AS `Diritto di chiamata tecnico` FROM `in_tipiintervento` HAVING 1=1"} ]}' WHERE `name` = 'Tipi di intervento'; @@ -34,9 +34,9 @@ UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "field UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Numero, Nome, Cliente, icon_Stato", "query": "SELECT `id`, `numero` AS `Numero`, `nome` AS `Nome`, (SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica`=`co_preventivi`.`idanagrafica`) AS `Cliente`, (SELECT `icona` FROM `co_statipreventivi` WHERE `id`=`idstato`) AS `icon_Stato`, (SELECT `descrizione` FROM `co_statipreventivi` WHERE `id`=`idstato`) AS `icon_title_Stato`, data_bozza, data_conclusione FROM `co_preventivi` HAVING 1=1 AND (''|period_start|'' >= `data_bozza` AND ''|period_start|'' <= `data_conclusione`) OR (''|period_end|'' >= `data_bozza` AND ''|period_end|'' <= `data_conclusione`) OR (`data_bozza` >= ''|period_start|'' AND `data_bozza` <= ''|period_end|'') OR (`data_conclusione` >= ''|period_start|'' AND `data_conclusione` <= ''|period_end|'') OR (`data_bozza` >= ''|period_start|'' AND `data_conclusione` = ''0000-00-00'') ORDER BY `id` DESC"} ]}' WHERE `name` = 'Preventivi'; UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Numero, Data, Ragione sociale, Totale, icon_Stato", "query": "SELECT `co_documenti`.`id`, IF(`numero_esterno`='''', `numero`, `numero_esterno`) AS `Numero`, DATE_FORMAT(`data`, ''%d/%m/%Y'') AS `Data`, (SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica`=`co_documenti`.`idanagrafica`) AS `Ragione sociale`, REPLACE(REPLACE(REPLACE(FORMAT((SELECT SUM(`subtotale`-`sconto`+`iva`+`rivalsainps`-`ritenutaacconto`) FROM `co_righe_documenti` GROUP BY `iddocumento` HAVING `iddocumento`=`co_documenti`.`id`) +`bollo` + `iva_rivalsainps`, 2), '','', ''#''), ''.'', '',''), ''#'', ''.'') AS `Totale`, (SELECT `icona` FROM `co_statidocumento` WHERE `id`=`idstatodocumento`) AS `icon_Stato`, (SELECT `descrizione` FROM `co_statidocumento` WHERE `id`=`idstatodocumento`) AS `icon_title_Stato` FROM `co_documenti` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` WHERE 1=1 AND `dir`=''entrata'' AND `data` >= ''|period_start|'' AND `data` <= ''|period_end|'' ORDER BY DATE_FORMAT(`data`, ''%Y%m%d'') DESC, CAST(IFNULL(numero_esterno, numero) AS UNSIGNED) DESC"} ]}' WHERE `name`='Fatture di vendita'; UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Numero, Data, Ragione sociale, Totale, icon_Stato", "query": "SELECT `co_documenti`.`id`, IF(`numero_esterno`='''', `numero`, `numero_esterno`) AS `Numero`, DATE_FORMAT(`data`, ''%d/%m/%Y'') AS `Data`, (SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica`=`co_documenti`.`idanagrafica`) AS `Ragione sociale`, REPLACE(REPLACE(REPLACE(FORMAT((SELECT SUM(`subtotale`-`sconto`+`iva`+`rivalsainps`-`ritenutaacconto`) FROM `co_righe_documenti` GROUP BY `iddocumento` HAVING `iddocumento`=`co_documenti`.`id`) +`bollo` + `iva_rivalsainps`, 2), '','', ''#''), ''.'', '',''), ''#'', ''.'') AS `Totale`, (SELECT `icona` FROM `co_statidocumento` WHERE `id`=`idstatodocumento`) AS `icon_Stato`, (SELECT `descrizione` FROM `co_statidocumento` WHERE `id`=`idstatodocumento`) AS `icon_title_Stato`, `dir`, `data` AS `data1` FROM `co_documenti` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento`=`co_tipidocumento`.`id` HAVING 1=1 AND `dir`=''uscita'' AND `data1` >= ''|period_start|'' AND `data1` <= ''|period_end|'' ORDER BY DATE_FORMAT(`data1`, ''%Y%m%d'') DESC"} ]}' WHERE `name` = 'Fatture di acquisto'; -UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Codice, Descrizione, Categoria, Subcategoria, Q.tà", "query": "SELECT `id`, `codice` AS `Codice`, `descrizione` AS `Descrizione`, `categoria` AS `Categoria`, `subcategoria` AS `Subcategoria`, CONCAT_WS('' '', REPLACE(FORMAT(`qta`, 2), ''.'', '',''), (SELECT `valore` FROM `mg_unitamisura` WHERE `id`=`idum`)) AS `Q.tà` FROM `mg_articoli` HAVING 1=1 ORDER BY `descrizione`"} ]}' WHERE `name` = 'Articoli'; -UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Codice, Descrizione, Categoria, Subcategoria, Q.tà", "query": "SELECT `id`, `codice` AS `Codice`, `descrizione` AS `Descrizione`, `categoria` AS `Categoria`, `subcategoria` AS `Subcategoria`, CONCAT_WS('' '', REPLACE(FORMAT(`qta`, 2), ''.'', '',''), (SELECT `valore` FROM `mg_unitamisura` WHERE `id`=`idum`)) AS `Q.tà` FROM `mg_articoli` HAVING 1=1 ORDER BY `descrizione`"}] }' WHERE `name` = 'Articoli'; -UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Nome, Percentuale guadagno o sconto,Note", "query": "SELECT `id`, `nome` AS `Nome`, `prc_guadagno` AS `Percentuale guadagno o sconto`,`note` AS `Note` FROM `mg_listini` HAVING 1=1 ORDER BY `nome`"} ]}' WHERE `name` = 'Listini'; +UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Codice, Descrizione, Categoria, Subcategoria, Q.tà", "query": "SELECT `id`, `codice` AS `Codice`, `descrizione` AS `Descrizione`, `categoria` AS `Categoria`, `subcategoria` AS `Subcategoria`, CONCAT_WS('' '', REPLACE(FORMAT(`qta`, 2), ''.'', '',''), (SELECT `valore` FROM `mg_unitamisura` WHERE `id`=`idum`)) AS `Q.tà` FROM `mg_articoli` HAVING 1=1 ORDER BY `descrizione`"} ]}' WHERE `name` = 'Articoli'; +UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Codice, Descrizione, Categoria, Subcategoria, Q.tà", "query": "SELECT `id`, `codice` AS `Codice`, `descrizione` AS `Descrizione`, `categoria` AS `Categoria`, `subcategoria` AS `Subcategoria`, CONCAT_WS('' '', REPLACE(FORMAT(`qta`, 2), ''.'', '',''), (SELECT `valore` FROM `mg_unitamisura` WHERE `id`=`idum`)) AS `Q.tà` FROM `mg_articoli` HAVING 1=1 ORDER BY `descrizione`"}] }' WHERE `name` = 'Articoli'; +UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Nome, Percentuale guadagno o sconto,Note", "query": "SELECT `id`, `nome` AS `Nome`, `prc_guadagno` AS `Percentuale guadagno o sconto`,`note` AS `Note` FROM `mg_listini` HAVING 1=1 ORDER BY `nome`"} ]}' WHERE `name` = 'Listini'; UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Targa,Nome,Descrizione", "query": "SELECT `id`, `targa` AS `Targa`, `nome` AS `Nome`,`descrizione` AS `Descrizione` FROM `dt_automezzi` HAVING 1=1 ORDER BY `targa`"} ]}' WHERE `name` = 'Automezzi'; UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Numero, Data, Ragione sociale, icon_Stato", "query": "SELECT `or_ordini`.`id`, IF(`numero_esterno`='''', `numero`, `numero_esterno`) AS `Numero`, DATE_FORMAT(`data`, ''%d/%m/%Y'') AS `Data`, (SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica`=`or_ordini`.`idanagrafica`) AS `Ragione sociale`, (SELECT `icona` FROM `or_statiordine` WHERE `id`=`idstatoordine`) AS `icon_Stato`, (SELECT `descrizione` FROM `or_statiordine` WHERE `id`=`idstatoordine`) AS `icon_title_Stato`, `dir`, `data` AS `data1` FROM `or_ordini` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine`=`or_tipiordine`.`id` HAVING 1=1 AND `dir`=''entrata'' AND `data1` >= ''|period_start|'' AND `data1` <= ''|period_end|'' ORDER BY `data1` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC"} ]}' WHERE `name` = 'Ordini cliente'; UPDATE `zz_modules` SET `options` = '{ "main_query": [ { "type": "table", "fields": "Numero, Data, Ragione sociale, icon_Stato", "query": "SELECT `or_ordini`.`id`, IF(`numero_esterno`='''', `numero`, `numero_esterno`) AS `Numero`, DATE_FORMAT(`data`, ''%d/%m/%Y'') AS `Data`, (SELECT `ragione_sociale` FROM `an_anagrafiche` WHERE `idanagrafica`=`or_ordini`.`idanagrafica`) AS `Ragione sociale`, (SELECT `icona` FROM `or_statiordine` WHERE `id`=`idstatoordine`) AS `icon_Stato`, (SELECT `descrizione` FROM `or_statiordine` WHERE `id`=`idstatoordine`) AS `icon_title_Stato`, `dir`, `data` AS `data1` FROM `or_ordini` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine`=`or_tipiordine`.`id` HAVING 1=1 AND `dir`=''uscita'' AND `data1` >= ''|period_start|'' AND `data1` <= ''|period_end|'' ORDER BY `data1` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC"} ]}' WHERE `name` = 'Ordini fornitore'; diff --git a/update/2_3.sql b/update/2_3.sql index a497040a9..f452a0928 100644 --- a/update/2_3.sql +++ b/update/2_3.sql @@ -995,7 +995,7 @@ UPDATE `co_iva` SET `dicitura` = 'Senza addebito iva ex art. 74 comma 8-9 del DP UPDATE `co_iva` SET `dicitura` = 'Operazione soggetta a reverse charge ex art. 17, comma 6, DPR 633/72' WHERE `descrizione` = 'Art. 17 comma 6 DPR 633/72' OR `descrizione` = 'Art. 17 comma 6 DPR 633/72 4%' OR `descrizione` = 'Art. 17 comma 6 DPR 633/72 10%' OR `descrizione` = 'Art. 17 comma 6 DPR 633/72 20%' OR `descrizione` = 'Art. 17 comma 6 DPR 633/72 22%'; -- Aggiunta campi in co_pagamenti per la selezione del conto di default -ALTER TABLE `co_pagamenti` ADD `idconto_vendite` int(11), ADD `idconto_acquisti` int(11); +ALTER TABLE `co_pagamenti` ADD `idconto_vendite` int(11), ADD `idconto_acquisti` int(11); -- Aggiunta del modulo Stampe contabili INSERT INTO `zz_modules` (`id`, `name`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Stampe contabili', 'stampe_contabili', 'custom', '', 'fa fa-angle-right', '2.3', '2.3', '1', NULL, '1', '1'); @@ -1011,8 +1011,8 @@ ALTER TABLE `zz_widgets` ADD `help` varchar(255); -- Aggiunta delle mappe Google INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`) VALUES ('Google Maps API key', '', 'string', '1', 'Generali'); -ALTER TABLE `an_anagrafiche` ADD `gaddress` varchar(255), ADD `lat` float(10, 6), ADD `lng` float(10, 6); -ALTER TABLE `an_sedi` ADD `gaddress` varchar(255), ADD `lat` float(10, 6), ADD `lng` float(10, 6); +ALTER TABLE `an_anagrafiche` ADD `gaddress` varchar(255), ADD `lat` float(10, 6), ADD `lng` float(10, 6); +ALTER TABLE `an_sedi` ADD `gaddress` varchar(255), ADD `lat` float(10, 6), ADD `lng` float(10, 6); -- Aggiunta del modulo Statistiche INSERT INTO `zz_modules` (`id`, `name`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Statistiche', 'statistiche', 'custom', '', 'fa fa-bar-chart', '2.3', '2.3', '1', NULL, '1', '1'); diff --git a/update/2_4.sql b/update/2_4.sql index bbe9660b9..6437d8a15 100644 --- a/update/2_4.sql +++ b/update/2_4.sql @@ -183,7 +183,7 @@ CREATE TABLE IF NOT EXISTS `zz_segments` ( ) ENGINE=InnoDB; -- Popolo con i segmenti di default -INSERT INTO `zz_segments` (`id`, `id_module`, `name`, `clause`, `position`, `pattern`,`note`, `predefined`) VALUES +INSERT INTO `zz_segments` (`id`, `id_module`, `name`, `clause`, `position`, `pattern`,`note`, `predefined`) VALUES (1, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'Standard vendite', '1=1', 'WHR', IF((SELECT COUNT(id) FROM co_documenti) > 0, (SELECT `valore` FROM `zz_settings` WHERE `nome` = 'Formato numero secondario fattura'), '####/YYYY'), '', 1), (2, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di acquisto'), 'Standard acquisti', '1=1', 'WHR', '#', '', 1); @@ -196,7 +196,7 @@ UPDATE `co_documenti` SET `id_segment`='2' WHERE `idtipodocumento` IN (SELECT `i -- Innesto modulo segmenti sotto "Strumenti" INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES -(NULL, 'Segmenti', 'Segmenti', 'segmenti', '{ "main_query": [ { "type": "table", "fields": "id, Nome, Modulo, Maschera, Note, Predefinito", "query": "SELECT `id`, (IF(predefined=1, ''Sì'', ''No'')) AS `Predefinito`, `name` AS `Nome`, (SELECT name FROM zz_modules WHERE id = zz_segments.id_module) AS Modulo, `pattern` AS `Maschera`, `note` AS `Note` FROM `zz_segments` HAVING 2=2 ORDER BY name, id_module"} ]}', '', 'fa fa-database', '2.4', '2.4', 1, NULL, 1, 1); +(NULL, 'Segmenti', 'Segmenti', 'segmenti', '{ "main_query": [ { "type": "table", "fields": "id, Nome, Modulo, Maschera, Note, Predefinito", "query": "SELECT `id`, (IF(predefined=1, ''Sì'', ''No'')) AS `Predefinito`, `name` AS `Nome`, (SELECT name FROM zz_modules WHERE id = zz_segments.id_module) AS Modulo, `pattern` AS `Maschera`, `note` AS `Note` FROM `zz_segments` HAVING 2=2 ORDER BY name, id_module"} ]}', '', 'fa fa-database', '2.4', '2.4', 1, NULL, 1, 1); UPDATE `zz_modules` `t1` INNER JOIN `zz_modules` `t2` ON (`t1`.`name` = 'Segmenti' AND `t2`.`name` = 'Strumenti') SET `t1`.`parent` = `t2`.`id`; -- Aggiorno widget Fatturato con i sezionali @@ -319,10 +319,10 @@ INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `option UPDATE `zz_modules` `t1` INNER JOIN `zz_modules` `t2` ON (`t1`.`name` = 'Banche' AND `t2`.`name` = 'Tabelle') SET `t1`.`parent` = `t2`.`id`; INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `summable`, `default`) VALUES -(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'id', 'co_banche.id', 0, 0, 0, 0, 1, 0, 0), -(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'Nome', 'co_banche.nome', 0, 0, 0, 0, 1, 0, 0), -(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'Filiale', 'co_banche.filiale', 0, 0, 0, 0, 1, 0, 0), -(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'IBAN', 'co_banche.iban', 0, 0, 0, 0, 1, 0, 0); +(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'id', 'co_banche.id', 0, 0, 0, 0, 1, 0, 0), +(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'Nome', 'co_banche.nome', 0, 0, 0, 0, 1, 0, 0), +(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'Filiale', 'co_banche.filiale', 0, 0, 0, 0, 1, 0, 0), +(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'IBAN', 'co_banche.iban', 0, 0, 0, 0, 1, 0, 0); -- Aggiungo campi in an_anagrafiche con riferimento banche ALTER TABLE `an_anagrafiche` ADD `idbanca_vendite` INT(11) NOT NULL AFTER `idconto_cliente`, ADD `idbanca_acquisti` INT(11) NOT NULL AFTER `idbanca_vendite`; diff --git a/update/2_4_1.sql b/update/2_4_1.sql index 2df672d21..8cbef8c35 100644 --- a/update/2_4_1.sql +++ b/update/2_4_1.sql @@ -132,11 +132,11 @@ UPDATE `zz_views` SET `name` = 'Data movimento', `order` = '6' WHERE `zz_views`. UPDATE `zz_views` SET `query` = 'CONCAT(mg_movimenti.qta,'' '', (SELECT um FROM mg_articoli WHERE id = mg_movimenti.idarticolo) )' WHERE `zz_views`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti') AND name = 'Quantità'; -- Allineo anche il modulo movimenti con il nuovo campo data -INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES +INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti'), 'Data', 'mg_movimenti.data', 5, 1, 0, 1, 1, 1); -- Aggiungo colonna impianti per i contratti -INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES +INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Contratti'), 'Impianti', '(SELECT IF(nome = '''', GROUP_CONCAT(matricola SEPARATOR ''
''), GROUP_CONCAT(matricola, '' - '', nome SEPARATOR ''
'')) FROM my_impianti INNER JOIN my_impianti_contratti ON my_impianti.id = my_impianti_contratti.idimpianto WHERE my_impianti_contratti.idcontratto = co_contratti.id)', 4, 1, 0, 0, 0, 1); -- Tempo standard per attività @@ -214,11 +214,11 @@ UPDATE `mg_articoli_interventi` SET `abilita_serial` = 0 WHERE `idarticolo` NOT UPDATE `or_righe_ordini` SET `abilita_serial` = 0 WHERE `idarticolo` NOT IN (SELECT `id_articolo` FROM `mg_prodotti`); -- Aggiungo colonna idanagrafica per i preventivi (colonna necessaria per i permessi) -INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES +INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `enabled`, `default`) VALUES ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Preventivi'), 'idanagrafica', 'co_preventivi.idanagrafica', 0, 0, 0, 0, 0, 1); -- Fix name, title e order stampa ordine fornitore senza costi -UPDATE `zz_prints` SET `name` = 'Ordine fornitore (senza costi)', `title` = 'Ordine fornitore (senza costi)', `order` = 1 WHERE `zz_prints`.`name` = 'Ordine fornitore' AND options = '{"pricing":false}' AND `zz_prints`.`id_module` = (SELECT id FROM zz_modules WHERE name='Ordini fornitore') ; +UPDATE `zz_prints` SET `name` = 'Ordine fornitore (senza costi)', `title` = 'Ordine fornitore (senza costi)', `order` = 1 WHERE `zz_prints`.`name` = 'Ordine fornitore' AND options = '{"pricing":false}' AND `zz_prints`.`id_module` = (SELECT id FROM zz_modules WHERE name='Ordini fornitore') ; -- Stampa ordine fornitore con costi costi INSERT INTO `zz_prints` (`id`, `id_module`, `is_record`, `name`, `title`, `directory`, `previous`, `options`, `icon`, `version`, `compatibility`, `order`, `main`, `default`, `enabled`) VALUES (NULL, (SELECT id FROM zz_modules WHERE name='Ordini fornitore'), '1', 'Ordine fornitore', 'Ordine fornitore', 'ordini', 'idordine', '{"pricing":true}', 'fa fa-print', '', '', '0', '1', '1', '1'); -- Default invio ordini al fornitore con i prezzi diff --git a/update/2_4_2.sql b/update/2_4_2.sql index 07495b8f7..458cb862c 100644 --- a/update/2_4_2.sql +++ b/update/2_4_2.sql @@ -161,7 +161,7 @@ INSERT INTO `fe_natura` (`codice`, `descrizione`) VALUES ('N4','Esenti'), ('N5','Regime del margine / IVA non esposta in fattura'), ('N6','Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)'), -('N7','IVA assolta in altro stato UE (vendite a distanza ex art. 40 c. 3 e 4 e art. 41 c. 1 lett. b, DL 331/93; prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-sexies lett. f, g, art. 74-sexies DPR 633/72)'); +('N7','IVA assolta in altro stato UE (vendite a distanza ex art. 40 c. 3 e 4 e art. 41 c. 1 lett. b, DL 331/93; prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-sexies lett. f, g, art. 74-sexies DPR 633/72)'); ALTER TABLE `co_iva` DROP `esente`, ADD `codice_natura_fe` varchar(4) NOT NULL; -- UPDATE `co_iva` SET `codice_natura_fe` = 'TD01' WHERE `descrizione` IN ('Fattura immediata di acquisto', 'Fattura immediata di vendita', 'Fattura differita di acquisto', 'Fattura differita di vendita', 'Fattura accompagnatoria di acquisto', 'Fattura accompagnatoria di vendita');