From fad5e0b526594adbe44fa8205f608da2c072d13b Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Wed, 14 Dec 2022 09:23:20 +0100 Subject: [PATCH 1/7] Fix query vista contratti --- update/2_4_39.sql | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 update/2_4_39.sql diff --git a/update/2_4_39.sql b/update/2_4_39.sql new file mode 100644 index 000000000..b57fad894 --- /dev/null +++ b/update/2_4_39.sql @@ -0,0 +1,17 @@ +-- Fix query vista Contratti + +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `co_contratti` + LEFT JOIN `an_anagrafiche` ON `co_contratti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN `co_staticontratti` ON `co_contratti`.`idstato` = `co_staticontratti`.`id` + LEFT JOIN ( SELECT `idcontratto`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `co_righe_contratti` GROUP BY `idcontratto`) AS righe ON `co_contratti`.`id` = `righe`.`idcontratto` + LEFT JOIN ( SELECT GROUP_CONCAT(CONCAT(matricola, IF(nome != '', CONCAT(' - ', nome), '')) SEPARATOR '
') AS descrizione, my_impianti_contratti.idcontratto FROM my_impianti INNER JOIN my_impianti_contratti ON my_impianti.id = my_impianti_contratti.idimpianto GROUP BY my_impianti_contratti.idcontratto) AS impianti ON impianti.idcontratto = co_contratti.id + LEFT JOIN( SELECT um, SUM(qta) AS somma, idcontratto FROM co_righe_contratti GROUP BY um, idcontratto) AS orecontratti ON orecontratti.um = 'ore' AND orecontratti.idcontratto = co_contratti.id + LEFT JOIN( SELECT in_interventi.id_contratto, SUM(ore) AS sommatecnici FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi_tecnici.idintervento = in_interventi.id GROUP BY in_interventi.id_contratto) AS tecnici ON tecnici.id_contratto = co_contratti.id +WHERE + 1=1 + |date_period(custom,'|period_start|' >= `data_bozza` AND '|period_start|' <= `data_conclusione`,'|period_end|' >= `data_bozza` AND '|period_end|' <= `data_conclusione`,`data_bozza` >= '|period_start|' AND `data_bozza` <= '|period_end|',`data_conclusione` >= '|period_start|' AND `data_conclusione` <= '|period_end|',`data_bozza` >= '|period_start|' AND `data_conclusione` = '0000-00-00')| +HAVING + 2=2" WHERE `name` = 'Contratti'; \ No newline at end of file From 76c4ba03f3a918a348c1ad22d615dbaf8d67367b Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Wed, 14 Dec 2022 17:09:38 +0100 Subject: [PATCH 2/7] Fix #1131: Stampa inventario vuota --- templates/magazzino_inventario/body.php | 26 ++++++++++--------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/templates/magazzino_inventario/body.php b/templates/magazzino_inventario/body.php index 8bc1bc3d7..e36aaba57 100755 --- a/templates/magazzino_inventario/body.php +++ b/templates/magazzino_inventario/body.php @@ -42,29 +42,22 @@ $query = Query::getQuery($structure, $where, 0, []); $query = Modules::replaceAdditionals($id_module, $query); -// Modifiche alla query principale -$query = preg_replace('/FROM `mg_articoli`/', ' FROM mg_articoli LEFT JOIN (SELECT idarticolo, SUM(qta) AS qta_totale FROM mg_movimenti WHERE data <='.prepare($period_end).' GROUP BY idarticolo) movimenti ON movimenti.idarticolo=mg_articoli.id ', $query); - -$query = preg_replace('/^SELECT /', 'SELECT mg_articoli.prezzo_vendita,', $query); -$query = preg_replace('/^SELECT /', 'SELECT mg_articoli.um,', $query); -$query = preg_replace('/^SELECT /', 'SELECT movimenti.qta_totale,', $query); - if (post('acquisto') == 'standard') { - $query = preg_replace('/^SELECT /', 'SELECT mg_articoli.prezzo_acquisto AS acquisto,', $query); + $query = preg_replace('/^SELECT/', 'SELECT mg_articoli.prezzo_acquisto AS acquisto, ', $query); $text = "al prezzo presente nella scheda articolo"; } elseif(post('acquisto') == 'first') { - $query = preg_replace('/^SELECT /', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id ORDER BY co_righe_documenti.id ASC LIMIT 0,1) AS acquisto,', $query); + $query = preg_replace('/^SELECT/', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id ORDER BY co_righe_documenti.id ASC LIMIT 0,1) AS acquisto, ', $query); $text = "al primo articolo acquistato"; } elseif(post('acquisto') == 'last') { - $query = preg_replace('/^SELECT /', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id ORDER BY co_righe_documenti.id DESC LIMIT 0,1) AS acquisto,', $query); + $query = preg_replace('/^SELECT/', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id ORDER BY co_righe_documenti.id DESC LIMIT 0,1) AS acquisto, ', $query); $text = "all'ultimo articolo acquistato"; } else { - $query = preg_replace('/^SELECT /', 'SELECT (SELECT (SUM((prezzo_unitario-sconto_unitario)*qta)/SUM(qta)) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id) AS acquisto,', $query); + $query = preg_replace('/^SELECT/', 'SELECT (SELECT (SUM((prezzo_unitario-sconto_unitario)*qta)/SUM(qta)) AS acquisto FROM co_righe_documenti LEFT JOIN co_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_documenti.idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir="uscita") AND idarticolo=mg_articoli.id) AS acquisto, ', $query); $text = "alla media ponderata dell'articolo"; } if (post('tipo') == 'nozero') { - $query = str_replace('2=2', '2=2 AND movimenti.qta_totale > 0', $query); + $query = str_replace('2=2', '2=2 AND qta > 0', $query); } $data = Query::executeAndCount($query); @@ -98,17 +91,18 @@ echo ' $totale_qta = 0; $totali = []; + foreach ($data['results'] as $r) { - $valore_magazzino = $r['acquisto'] * $r['qta_totale']; + $valore_magazzino = $r['Prezzo di acquisto'] * $r['Q.tà']; echo ' '.$r['Codice'].' '.$r['Categoria'].' '.$r['Descrizione'].' - '.moneyFormat($r['prezzo_vendita']).' - '.Translator::numberToLocale($r['qta_totale']).' '.$r['um'].' - '.moneyFormat($r['acquisto']).' + '.moneyFormat($r['Prezzo di vendita']).' + '.Translator::numberToLocale($r['Q.tà disponibile']).' '.$r['um'].' + '.moneyFormat($r['Prezzo di acquisto']).' '.moneyFormat($valore_magazzino).' '; From 3f3e10f181abc07b92f25da1d441f5638c0784e8 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 15 Dec 2022 11:13:58 +0100 Subject: [PATCH 3/7] Fix query vista fatture vendita doppio invio mail --- update/2_4_39.sql | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/update/2_4_39.sql b/update/2_4_39.sql index b57fad894..642ddbdcf 100644 --- a/update/2_4_39.sql +++ b/update/2_4_39.sql @@ -1,5 +1,4 @@ -- Fix query vista Contratti - UPDATE `zz_modules` SET `options` = "SELECT |select| FROM @@ -14,4 +13,28 @@ WHERE 1=1 |date_period(custom,'|period_start|' >= `data_bozza` AND '|period_start|' <= `data_conclusione`,'|period_end|' >= `data_bozza` AND '|period_end|' <= `data_conclusione`,`data_bozza` >= '|period_start|' AND `data_bozza` <= '|period_end|',`data_conclusione` >= '|period_start|' AND `data_conclusione` <= '|period_end|',`data_bozza` >= '|period_start|' AND `data_conclusione` = '0000-00-00')| HAVING - 2=2" WHERE `name` = 'Contratti'; \ No newline at end of file + 2=2" WHERE `name` = 'Contratti'; + + +-- Fix query vista Fatture di vendita +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `co_documenti` + LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica` + LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` + LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`iva`) AS `iva` FROM `co_righe_documenti` GROUP BY `iddocumento`) AS righe ON `co_documenti`.`id` = `righe`.`iddocumento` + LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`co_banche`.`nome`, ' - ', `co_banche`.`iban`) AS descrizione FROM `co_banche` GROUP BY `co_banche`.`id`) AS banche ON `banche`.`id` =`co_documenti`.`id_banca_azienda` + LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id` + LEFT JOIN `fe_stati_documento` ON `co_documenti`.`codice_stato_fe` = `fe_stati_documento`.`codice` + LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id` + LEFT JOIN (SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_operations`.`op` = 'send-email' GROUP BY `zz_operations`.`id_record`) AS `email` ON `email`.`id_record` = `co_documenti`.`id` + LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id` + LEFT JOIN (SELECT `numero_esterno`, `id_segment`, `idtipodocumento`, `data` FROM `co_documenti` WHERE `co_documenti`.`idtipodocumento` IN( SELECT `id` FROM `co_tipidocumento` WHERE `dir` = 'entrata') AND( `co_documenti`.`data` BETWEEN '2022-01-01' AND '2022-12-31 23:59:59') AND `numero_esterno` != '' GROUP BY `id_segment`, `numero_esterno`, `idtipodocumento`, `data` HAVING COUNT(`numero_esterno`) > 1) dup ON `co_documenti`.`numero_esterno` = `dup`.`numero_esterno` AND `dup`.`id_segment` = `co_documenti`.`id_segment` AND `dup`.`idtipodocumento` = `co_documenti`.`idtipodocumento` AND `dup`.`data` = `co_documenti`.`data` +WHERE + 1=1 AND `dir` = 'entrata' |segment(`co_documenti`.`id_segment`)| |date_period(`co_documenti`.`data`)| +HAVING + 2=2 +ORDER BY + `co_documenti`.`data` DESC, + CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Fatture di vendita'; From 87590a16d8f643b305f1535c2377d99658c90db8 Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Thu, 15 Dec 2022 13:22:50 +0100 Subject: [PATCH 4/7] Fix #1132 query viste utenti e permessi --- update/2_4_39.sql | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/update/2_4_39.sql b/update/2_4_39.sql index 642ddbdcf..7659382a2 100644 --- a/update/2_4_39.sql +++ b/update/2_4_39.sql @@ -38,3 +38,17 @@ HAVING ORDER BY `co_documenti`.`data` DESC, CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Fatture di vendita'; + +-- Fix query viste Utenti e permessi +UPDATE `zz_modules` SET `options` = "SELECT + |select| +FROM + `zz_groups` + LEFT JOIN (SELECT `zz_users`.`idgruppo`, COUNT(`id`) AS num FROM `zz_users` GROUP BY `id`) AS utenti ON `zz_groups`.`id`=`utenti`.`idgruppo` +WHERE + 1=1 +HAVING + 2=2 +ORDER BY + `id`, + `nome` ASC" WHERE `name` = 'Utenti e permessi'; From 237eed1cc1374e0182b88b48f5a1ad6bbfa83a70 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 15 Dec 2022 18:36:37 +0100 Subject: [PATCH 5/7] Fix lunghezza campo codicerea e relativi controlli --- assets/src/js/functions/inputmask.js | 2 +- modules/aggiornamenti/src/Controlli/ReaValidi.php | 6 +++--- modules/anagrafiche/edit.php | 2 +- update/2_4_39.sql | 4 ++++ 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/assets/src/js/functions/inputmask.js b/assets/src/js/functions/inputmask.js index 5b7ad9cc1..5c31477f0 100644 --- a/assets/src/js/functions/inputmask.js +++ b/assets/src/js/functions/inputmask.js @@ -29,7 +29,7 @@ function initMaskInput(input) { }); } else if ($input.hasClass('rea-mask')) { $input.inputmask({ - mask: "AA-999999{1,15}", + mask: "AA-99999{1,23}", casing: "upper", }); } else if ($input.hasClass('provincia-mask')) { diff --git a/modules/aggiornamenti/src/Controlli/ReaValidi.php b/modules/aggiornamenti/src/Controlli/ReaValidi.php index 3b0cde2d3..190c7e892 100644 --- a/modules/aggiornamenti/src/Controlli/ReaValidi.php +++ b/modules/aggiornamenti/src/Controlli/ReaValidi.php @@ -25,7 +25,7 @@ class ReaValidi extends Controllo { public function getName() { - return tr('Anagrafiche con codici REA non validi'); + return tr('Anagrafiche con codici R.E.A. non validi'); } public function getType($record) @@ -43,7 +43,7 @@ class ReaValidi extends Controllo $database = database(); /** - * Verifico se i rea inseriti per le anagrafiche hanno una struttura valida. + * Verifico se i R.E.A. inseriti per le anagrafiche hanno una struttura valida. */ $anagrafiche_interessate = $database->fetchArray('SELECT an_anagrafiche.idanagrafica AS id, @@ -54,7 +54,7 @@ class ReaValidi extends Controllo INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche_anagrafiche.idanagrafica = an_anagrafiche.idanagrafica INNER JOIN an_tipianagrafiche ON an_tipianagrafiche.idtipoanagrafica = an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE - codicerea NOT REGEXP "^..-......$" AND codicerea != "" + codicerea NOT REGEXP "([A-Za-z]{2})-([0-9]{1,20})" AND codicerea != "" AND deleted_at IS NULL GROUP BY an_anagrafiche.idanagrafica'); diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index 73855ad6a..d90266919 100755 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -643,7 +643,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
{[ "type": "text", "label": "('.tr('provincia-C.C.I.A.A.').')'; ?>", "name": "codicerea", "value": "$codicerea$", "class": "rea-mask", "help": " 'RM-123456', + '_PATTERN_' => 'RM-12345', ]); ?>" ]}
diff --git a/update/2_4_39.sql b/update/2_4_39.sql index 7659382a2..6b71d804f 100644 --- a/update/2_4_39.sql +++ b/update/2_4_39.sql @@ -52,3 +52,7 @@ HAVING ORDER BY `id`, `nome` ASC" WHERE `name` = 'Utenti e permessi'; + + +-- Aumento dimensione massima codicerea +ALTER TABLE `an_anagrafiche` CHANGE `codicerea` `codicerea` VARCHAR(23) NOT NULL; \ No newline at end of file From 5b52d418256865c812aad34e1e52dc185894539a Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 16 Dec 2022 00:10:47 +0100 Subject: [PATCH 6/7] Miglioria per codice rea e provincia Rimozione cciaa e cciaa_citta, inutilizzati --- assets/src/js/functions/inputmask.js | 5 +++-- .../aggiornamenti/src/Controlli/ReaValidi.php | 17 ++++++++++++++--- modules/anagrafiche/actions.php | 4 +--- modules/anagrafiche/ajax/search.php | 1 - modules/anagrafiche/edit.php | 6 +++--- update/2_4_39.sql | 6 +++++- 6 files changed, 26 insertions(+), 13 deletions(-) diff --git a/assets/src/js/functions/inputmask.js b/assets/src/js/functions/inputmask.js index 5c31477f0..d8efc476a 100644 --- a/assets/src/js/functions/inputmask.js +++ b/assets/src/js/functions/inputmask.js @@ -29,12 +29,13 @@ function initMaskInput(input) { }); } else if ($input.hasClass('rea-mask')) { $input.inputmask({ - mask: "AA-99999{1,23}", + regex: "([A-Za-z]{2})-([0-9]{20})", casing: "upper", + placeholder: "", }); } else if ($input.hasClass('provincia-mask')) { $input.inputmask({ - mask: "AA", + regex: "[A-Za-z]{2}", casing: "upper", }); } else if ($input.hasClass('alphanumeric-mask')) { diff --git a/modules/aggiornamenti/src/Controlli/ReaValidi.php b/modules/aggiornamenti/src/Controlli/ReaValidi.php index 190c7e892..bdd1f7de3 100644 --- a/modules/aggiornamenti/src/Controlli/ReaValidi.php +++ b/modules/aggiornamenti/src/Controlli/ReaValidi.php @@ -35,7 +35,14 @@ class ReaValidi extends Controllo public function getOptions($record) { - return []; + return [ + [ + 'name' => tr('Rimuovi'), + 'icon' => 'fa fa-trash', + 'color' => 'danger', + 'params' => [], + ], + ]; } public function check() @@ -68,7 +75,7 @@ class ReaValidi extends Controllo $this->addResult([ 'id' => $anagrafica['id'], 'nome' => \Modules::link('Anagrafiche', $anagrafica['id'], $anagrafica['ragione_sociale']), - 'descrizione' => tr('Il codice REA "_REA_" non è valido', [ + 'descrizione' => tr('Il codice REA "_REA_" non è valido.', [ '_REA_' => $anagrafica['codicerea'], ]), ]); @@ -78,6 +85,10 @@ class ReaValidi extends Controllo public function execute($record, $params = []) { - return false; + $anagrafica = Anagrafica::find($record['id']); + $anagrafica->codicerea = null; + $anagrafica->save(); + + return true; } } diff --git a/modules/anagrafiche/actions.php b/modules/anagrafiche/actions.php index 3728f9120..40896fdd1 100755 --- a/modules/anagrafiche/actions.php +++ b/modules/anagrafiche/actions.php @@ -66,7 +66,7 @@ switch (post('op')) { $anagrafica->idsede_fatturazione = post('idsede_fatturazione'); $anagrafica->note = post('note'); $anagrafica->codiceri = post('codiceri'); - $anagrafica->codicerea = post('codicerea'); + $anagrafica->codicerea = strtoupper(post('codicerea')); $anagrafica->appoggiobancario = post('appoggiobancario'); $anagrafica->filiale = post('filiale'); $anagrafica->codiceiban = post('codiceiban'); @@ -89,8 +89,6 @@ switch (post('op')) { $anagrafica->idrelazione = post('idrelazione'); $anagrafica->sitoweb = post('sitoweb'); $anagrafica->iscrizione_tribunale = post('iscrizione_tribunale'); - $anagrafica->cciaa = post('cciaa'); - $anagrafica->cciaa_citta = post('cciaa_citta'); $anagrafica->n_alboartigiani = post('n_alboartigiani'); $anagrafica->foro_competenza = post('foro_competenza'); $anagrafica->riferimento_amministrazione = post('riferimento_amministrazione'); diff --git a/modules/anagrafiche/ajax/search.php b/modules/anagrafiche/ajax/search.php index 6154d3a5e..5b7eda1a1 100755 --- a/modules/anagrafiche/ajax/search.php +++ b/modules/anagrafiche/ajax/search.php @@ -43,7 +43,6 @@ $fields = [ 'Note' => 'note', 'Codice REA' => 'codicerea', 'Marche' => 'marche', - 'CCIAA' => 'cciaa', 'Numero di iscrizione albo artigiani' => 'n_alboartigiani', ]; diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index d90266919..01df49255 100755 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -192,7 +192,7 @@ if (sizeof($problemi_anagrafica) > 0) {
- {[ "type": "text", "label": "", "name": "provincia", "maxlength": 2, "class": "text-center provincia-mask text-uppercase", "value": "$provincia$", "extra": "onkeyup=\"this.value = this.value.toUpperCase();\"" ]} + {[ "type": "text", "label": "", "name": "provincia", "class": "text-center provincia-mask text-uppercase", "value": "$provincia$", "extra": "onkeyup=\"this.value = this.value.toUpperCase();\"" ]}
@@ -642,8 +642,8 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
- {[ "type": "text", "label": "('.tr('provincia-C.C.I.A.A.').')'; ?>", "name": "codicerea", "value": "$codicerea$", "class": "rea-mask", "help": " 'RM-12345', + {[ "type": "text", "label": "('.tr('provincia-C.C.I.A.A.').')'; ?>", "name": "codicerea", "value": "$codicerea$", "class": "rea-mask text-uppercase", "help": " 'RM-123456', ]); ?>" ]}
diff --git a/update/2_4_39.sql b/update/2_4_39.sql index 6b71d804f..a0f286fd7 100644 --- a/update/2_4_39.sql +++ b/update/2_4_39.sql @@ -55,4 +55,8 @@ ORDER BY -- Aumento dimensione massima codicerea -ALTER TABLE `an_anagrafiche` CHANGE `codicerea` `codicerea` VARCHAR(23) NOT NULL; \ No newline at end of file +ALTER TABLE `an_anagrafiche` CHANGE `codicerea` `codicerea` VARCHAR(23) DEFAULT NULL; + +-- Pulizia campi inutilizzati +ALTER TABLE `an_anagrafiche` DROP `cciaa`; +ALTER TABLE `an_anagrafiche` DROP `cciaa_citta`; From 98d76372e9cf6a955c28ddd44f728bf6f752dbdc Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 16 Dec 2022 15:05:27 +0100 Subject: [PATCH 7/7] Aggiunto controllo eliminazione metodo di pagamento --- modules/pagamenti/edit.php | 99 +++++++++++++++++++++++++++++++++++--- 1 file changed, 92 insertions(+), 7 deletions(-) diff --git a/modules/pagamenti/edit.php b/modules/pagamenti/edit.php index da9e083fd..eeb54e775 100755 --- a/modules/pagamenti/edit.php +++ b/modules/pagamenti/edit.php @@ -104,15 +104,37 @@ foreach ($results as $result) { $giorno_pagamento = ($result['giorno'] < -1) ? -$result['giorno'] - 1 : $result['giorno']; } +// Collegamenti diretti +$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`, NULL AS `deleted_at` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`idpagamento` = '.prepare($id_record).' + +UNION +SELECT `or_ordini`.`id`, `or_ordini`.`data`, `or_ordini`.`numero`, `or_ordini`.`numero_esterno`, `or_tipiordine`.`descrizione` AS tipo_documento, `or_tipiordine`.`dir`, NULL AS `deleted_at` FROM `or_ordini` JOIN `or_tipiordine` ON `or_tipiordine`.`id` = `or_ordini`.`idtipoordine` WHERE `or_ordini`.`idpagamento` = '.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`, NULL AS `deleted_at` FROM `dt_ddt` JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt` WHERE `dt_ddt`.`idpagamento` = '.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, NULL AS `deleted_at` FROM `co_contratti` WHERE `co_contratti`.`idpagamento` = '.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, NULL AS `deleted_at` FROM `co_preventivi` WHERE `co_preventivi`.`idpagamento` = '.prepare($id_record).' + +ORDER BY `data`'); + + echo '

'.tr('Rata _NUMBER_', [ '_NUMBER_' => $numero_rata, - ]).'

- + ]).''; + if (empty($elementi)) { + echo ' + '; + } + echo '
@@ -171,9 +193,7 @@ foreach ($results as $result) {
- - - + @@ -207,6 +227,71 @@ echo ' '; + + + +if (!empty($elementi)) { + echo ' +
+
+

'.tr('Documenti collegati: _NUM_', [ + '_NUM_' => count($elementi), + ]).'

+
+ +
+
+
+
    '; + + foreach ($elementi as $elemento) { + $descrizione = tr('_DOC_ _NUM_ del _DATE_ _DELETED_AT_', [ + '_DOC_' => $elemento['tipo_documento'], + '_NUM_' => !empty($elemento['numero_esterno']) ? $elemento['numero_esterno'] : $elemento['numero'], + '_DATE_' => Translator::dateToLocale($elemento['data']), + '_DELETED_AT_' => (!empty($elemento['deleted_at']) ? tr('Eliminato il:').' '.Translator::dateToLocale($elemento['deleted_at']) : ''), + ]); + + //se non è un preventivo è un ddt o una fattura + //se non è un ddt è una fattura. + if (in_array($elemento['tipo_documento'], ['Preventivo'])) { + $modulo = 'Preventivi'; + } elseif (in_array($elemento['tipo_documento'], ['Contratto'])) { + $modulo = 'Contratti'; + } elseif (in_array($elemento['tipo_documento'], ['Ordine cliente', 'Ordine fornitore'])) { + $modulo = ($elemento['dir'] == 'entrata') ? 'Ordini cliente' : 'Ordini fornitore'; + } elseif (in_array($elemento['tipo_documento'], ['Ddt in uscita', 'Ddt in entrata'])) { + $modulo = ($elemento['dir'] == 'entrata') ? 'Ddt di vendita' : 'Ddt di acquisto'; + } else { + $modulo = ($elemento['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto'; + } + + $id = $elemento['id']; + + echo ' +
  • '.Modules::link($modulo, $id, $descrizione).'
  • '; + } + +echo ' +
+
+
'; +} + +if (!empty($elementi)) { + echo ' +
+ ' . tr('Eliminando questo documento si potrebbero verificare problemi nelle altre sezioni del gestionale') . '. +
+ + '.tr('Elimina').' +'; +} else { + echo ' + + '.tr('Elimina').' +'; +} ?>