From 54b954bd625f17f458eae1fc914d1f4d3e094da1 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Sat, 17 Oct 2020 10:41:10 +0200 Subject: [PATCH 01/21] Correzione della procedura di aggiornamento Rimozione delle classi per l'aggiornamento alla versione 2.4.10, che causano problemi con l'aumentare delle modifiche alle dipendenze. --- update/2_4_10.php | 100 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 79 insertions(+), 21 deletions(-) diff --git a/update/2_4_10.php b/update/2_4_10.php index fe6c28329..635dba6ac 100755 --- a/update/2_4_10.php +++ b/update/2_4_10.php @@ -1,24 +1,82 @@ fetchArray('SELECT id, bollo FROM co_documenti'); foreach ($fatture as $fattura) { - $fattura->manageRigaMarcaDaBollo(); + $bollo = floatval($fattura['bollo']); + + if ($bollo > 0) { + $fatture = $database->query( + 'insert into `co_righe_documenti` (`iddocumento`, `order`, `descrizione`, `um`, `idiva`, `idconto`, `calcolo_ritenuta_acconto`, `idritenutaacconto`, `ritenuta_contributi`, `idrivalsainps`, `prezzo_unitario_acquisto`, `sconto_unitario`, `tipo_sconto`, `qta`, `data_inizio_periodo`, `data_fine_periodo`, `riferimento_amministrazione`, `tipo_cessione_prestazione`, `ritenutaacconto`, `rivalsainps`, `subtotale`, `sconto`, `iva`, `desc_iva`, `iva_indetraibile`, `created_at`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', [ + 0 => 1, + 1 => 0, + 2 => 'Marca da bollo', + 3 => null, + 4 => '110', + 5 => '99', + 6 => null, + 7 => null, + 8 => false, + 9 => null, + 10 => 0, + 11 => 0.0, + 12 => 'PRC', + 13 => 1.0, + 14 => null, + 15 => null, + 16 => '', + 17 => '', + 18 => 0.0, + 19 => 0.0, + 20 => $bollo, + 21 => 0.0, + 22 => 0.0, + 23 => 'Escluso art. 15', + 24 => 0.0, + 25 => '2020-10-17 10:00:00', + ]); + $id_riga_bollo = $database->lastInsertedId(); + + $database->query('UPDATE co_documenti SET $id_riga_bollo = '.prepare($id_riga_bollo).' WHERE id = '.prepare($fattura['id'])); + } } // Fix per le relazioni tariffe-tecnici -$tecnici = Anagrafica::fromTipo('Tecnico')->get(); +$tecnici = $database->fetchArray("SELECT DISTINCT(an_anagrafiche.idanagrafica) AS id FROM an_anagrafiche + INNER JOIN an_tipianagrafiche ON an_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica + INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica = an_tipianagrafiche_anagrafiche.idtipoanagrafica +WHERE an_tipianagrafiche.descrizione = 'Tecnico'"); foreach ($tecnici as $tecnico) { - Anagrafica::fixTecnico($tecnico); + $presenti = $database->fetchArray('SELECT idtipointervento AS id FROM in_tariffe WHERE idtecnico = '.prepare($tecnico['id'])); + + // Aggiunta associazioni costi unitari al contratto + $query = 'SELECT * FROM in_tipiintervento'; + $elenco_presenti = array_column($presenti, 'id'); + if (!empty($elenco_presenti)) { + $query .= ' WHERE idtipointervento NOT IN ('.implode(', ', $elenco_presenti).')'; + } + $tipi = $database->fetchArray($query); + + foreach ($tipi as $tipo) { + $database->insert('in_tariffe', [ + 'idtecnico' => $tecnico['id'], + 'idtipointervento' => $tipo['id'], + 'costo_ore' => $tipo['costo_orario'], + 'costo_km' => $tipo['costo_km'], + 'costo_dirittochiamata' => $tipo['costo_diritto_chiamata'], + 'costo_ore_tecnico' => $tipo['costo_orario_tecnico'], + 'costo_km_tecnico' => $tipo['costo_km_tecnico'], + 'costo_dirittochiamata_tecnico' => $tipo['costo_diritto_chiamata_tecnico'], + ]); + } } // Spostamento automezzi su sedi -$automezzi = $dbo->fetchArray('SELECT * FROM dt_automezzi'); +$automezzi = $database->fetchArray('SELECT * FROM dt_automezzi'); foreach ($automezzi as $automezzo) { $nomesede = []; @@ -26,7 +84,7 @@ foreach ($automezzi as $automezzo) { (!empty($automezzo['descrizione'])) ? $nomesede[] = $automezzo['descrizione'] : null; (!empty($automezzo['targa'])) ? $nomesede[] = $automezzo['targa'] : null; - $dbo->insert( + $database->insert( 'an_sedi', [ 'nomesede' => implode(' - ', $nomesede), @@ -34,10 +92,10 @@ foreach ($automezzi as $automezzo) { ] ); - $idsede = $dbo->lastInsertedId(); + $idsede = $database->lastInsertedId(); // Aggiornamento sede di partenza su - $dbo->update( + $database->update( 'in_interventi', [ 'idsede_partenza' => $idsede, @@ -48,23 +106,23 @@ foreach ($automezzi as $automezzo) { } // Aggiornamento della sede azienda nei movimenti degli interventi -$dbo->query('UPDATE mg_movimenti SET idsede_azienda=(SELECT idsede_partenza FROM in_interventi WHERE in_interventi.id=mg_movimenti.idintervento) WHERE idintervento IS NOT NULL'); +$database->query('UPDATE mg_movimenti SET idsede_azienda=(SELECT idsede_partenza FROM in_interventi WHERE in_interventi.id=mg_movimenti.idintervento) WHERE idintervento IS NOT NULL'); // Cancellazione idautomezzo da mg_movimenti e in_interventi -$dbo->query('ALTER TABLE in_interventi DROP idautomezzo'); -$dbo->query('ALTER TABLE mg_movimenti DROP idautomezzo'); -$dbo->query('ALTER TABLE co_promemoria_articoli DROP idautomezzo'); -$dbo->query('ALTER TABLE co_righe_documenti DROP idautomezzo'); -$dbo->query('ALTER TABLE mg_articoli_interventi DROP idautomezzo'); +$database->query('ALTER TABLE in_interventi DROP idautomezzo'); +$database->query('ALTER TABLE mg_movimenti DROP idautomezzo'); +$database->query('ALTER TABLE co_promemoria_articoli DROP idautomezzo'); +$database->query('ALTER TABLE co_righe_documenti DROP idautomezzo'); +$database->query('ALTER TABLE mg_articoli_interventi DROP idautomezzo'); // Eliminazione tabelle degli automezzi non più usate -$dbo->query('DROP TABLE mg_articoli_automezzi'); -$dbo->query('DROP TABLE dt_automezzi'); -$dbo->query('DROP TABLE dt_automezzi_tecnici'); -$dbo->query('DELETE FROM zz_modules WHERE name="Automezzi"'); +$database->query('DROP TABLE mg_articoli_automezzi'); +$database->query('DROP TABLE dt_automezzi'); +$database->query('DROP TABLE dt_automezzi_tecnici'); +$database->query('DELETE FROM zz_modules WHERE name="Automezzi"'); //Rimuovo il codice come indice per in_interventi -$dbo->query('ALTER TABLE `in_interventi` DROP INDEX `codice`'); +$database->query('ALTER TABLE `in_interventi` DROP INDEX `codice`'); // File e cartelle deprecate $files = [ From 5a8f99f60aad43968b99d77913b4491e367f9301 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Sat, 17 Oct 2020 11:05:09 +0200 Subject: [PATCH 02/21] Aggiunto ricalcolo Marca da bollo automatico --- update/2_4_10.php | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/update/2_4_10.php b/update/2_4_10.php index 635dba6ac..885580560 100755 --- a/update/2_4_10.php +++ b/update/2_4_10.php @@ -5,14 +5,30 @@ $database = database(); error_reporting(E_ALL & ~E_WARNING & ~E_CORE_WARNING & ~E_NOTICE & ~E_USER_DEPRECATED & ~E_STRICT); // Fix del calcolo del bollo -$fatture = $database->fetchArray('SELECT id, bollo FROM co_documenti'); +$fatture = $database->fetchArray('SELECT id, bollo, split_payment FROM co_documenti'); foreach ($fatture as $fattura) { - $bollo = floatval($fattura['bollo']); + $bollo = $fattura['bollo']; + if (empty($bollo)) { + if (empty($fattura['split_payment'])) { + $totale = 'subtotale - sconto + iva + rivalsainps'; + } else { + $totale = 'subtotale - sconto + rivalsainps'; + } + + $righe = $database->fetchArray('SELECT ('.$totale.') AS netto FROM co_righe_documenti INNER JOIN co_iva ON co_iva.id = co_righe_documenti.idiva WHERE iddocumento = '.prepare($fattura['id'])." AND codice_natura_fe IN ('N1', 'N2', 'N3', 'N4')"); + $totale = sum(array_column($righe, 'netto')); + $importo_bollo = setting('Importo marca da bollo'); + if (abs($importo_bollo) > 0 && abs($totale) > setting("Soglia minima per l'applicazione della marca da bollo")) { + $bollo = $importo_bollo; + } + } + + $bollo = floatval($bollo); if ($bollo > 0) { $fatture = $database->query( 'insert into `co_righe_documenti` (`iddocumento`, `order`, `descrizione`, `um`, `idiva`, `idconto`, `calcolo_ritenuta_acconto`, `idritenutaacconto`, `ritenuta_contributi`, `idrivalsainps`, `prezzo_unitario_acquisto`, `sconto_unitario`, `tipo_sconto`, `qta`, `data_inizio_periodo`, `data_fine_periodo`, `riferimento_amministrazione`, `tipo_cessione_prestazione`, `ritenutaacconto`, `rivalsainps`, `subtotale`, `sconto`, `iva`, `desc_iva`, `iva_indetraibile`, `created_at`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', [ - 0 => 1, + 0 => $fattura['id'], 1 => 0, 2 => 'Marca da bollo', 3 => null, @@ -41,7 +57,7 @@ foreach ($fatture as $fattura) { ]); $id_riga_bollo = $database->lastInsertedId(); - $database->query('UPDATE co_documenti SET $id_riga_bollo = '.prepare($id_riga_bollo).' WHERE id = '.prepare($fattura['id'])); + $database->query('UPDATE co_documenti SET id_riga_bollo = '.prepare($id_riga_bollo).' WHERE id = '.prepare($fattura['id'])); } } From 14cfaf6f2a3746bedd95375844617a6bdb8bcf93 Mon Sep 17 00:00:00 2001 From: loviuz Date: Fri, 30 Oct 2020 11:39:11 +0100 Subject: [PATCH 03/21] Migliorie grafiche minori --- modules/impostazioni/edit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/impostazioni/edit.php b/modules/impostazioni/edit.php index fb5034f05..b7cdd9266 100755 --- a/modules/impostazioni/edit.php +++ b/modules/impostazioni/edit.php @@ -53,7 +53,7 @@ foreach ($gruppi as $key => $gruppo) {
-
'.tr('Impostazioni _SEZIONE_', [ +
'.tr('_SEZIONE_', [ '_SEZIONE_' => $gruppo['nome'], ]).'
From 84afddb4637cce27ccceb5d3f82f117cb4428a13 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 30 Oct 2020 13:15:36 +0100 Subject: [PATCH 04/21] Informazione codice BIC Miglioria minore --- modules/banche/add.php | 5 ++++- modules/ddt/edit.php | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/banche/add.php b/modules/banche/add.php index c2486ab31..712c4030e 100755 --- a/modules/banche/add.php +++ b/modules/banche/add.php @@ -21,6 +21,9 @@ include_once __DIR__.'/../../core.php'; $id_anagrafica = filter('id_anagrafica'); +$help_codice_bic = tr("Il codice BIC (o SWIFT) è composto da 8 a 11 caratteri (lettere e numeri) ed è suddiviso in:").'

  • '.tr('AAAA - codice bancario').'
  • '.tr('BB - codice ISO della nazione').'
  • '.tr('CC - codice città presso la quale è ubicata la banca').'
  • '.tr('DD - codice della filiale (opzionale)').'
'; + + echo '
@@ -41,7 +44,7 @@ echo ' {[ "type": "text", "label": "'.tr('IBAN').'", "name": "iban", "required": "1", "class": "alphanumeric-mask", "maxlength": 32, "value": "$iban$" ]}
- {[ "type": "text", "label": "'.tr('BIC').'", "name": "bic", "required": "1", "class": "alphanumeric-mask", "maxlength": 11, "value": "$bic$" ]} + {[ "type": "text", "label": "'.tr('BIC').'", "name": "bic", "required": "1", "class": "alphanumeric-mask", "minlength": 8, "maxlength": 11, "value": "$bic$", "help": "'.$help_codice_bic.'" ]}
diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php index bc84539aa..505b6d303 100755 --- a/modules/ddt/edit.php +++ b/modules/ddt/edit.php @@ -171,6 +171,10 @@ if ($module['name'] == 'Ddt di vendita') {
+ {[ "type": "select", "label": "", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": , "required": , "icon-after": "add||tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|" ]}
From 21005e4e8829a7c5509bee2bf22656f1da5e4eb3 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Fri, 30 Oct 2020 14:19:02 +0100 Subject: [PATCH 05/21] Miglioramenti JS minori per inserimento articolo --- include/common/articolo.php | 104 ++++++++++---------------- modules/articoli/ajax/complete.php | 5 +- plugins/dettagli_articolo/actions.php | 4 +- plugins/dettagli_articolo/edit.php | 6 +- update/2_4_18.sql | 2 +- 5 files changed, 50 insertions(+), 71 deletions(-) diff --git a/include/common/articolo.php b/include/common/articolo.php index 3dd9275d4..43457ce12 100755 --- a/include/common/articolo.php +++ b/include/common/articolo.php @@ -49,11 +49,8 @@ if (empty($result['idarticolo'])) {