From 2d6d54d94017202e02b820384706692f3c70d927 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Mon, 28 Aug 2017 15:01:02 +0200 Subject: [PATCH] Bugfix Bugfix nella gestione degli sconti per le fatture in stato di Emessa e aggiunta della conversione dei campi del database da DATETIME a DATE. --- modules/fatture/actions.php | 29 ++++++++------ modules/fatture/edit.php | 8 +++- update/2_3.php | 16 ++++++-- update/2_3.sql | 76 +++++++++++++++++++++++++++++++------ 4 files changed, 100 insertions(+), 29 deletions(-) diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 8cb0549a4..4e4743335 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -73,9 +73,6 @@ switch (post('op')) { $totale_imponibile = get_imponibile_fattura($id_record); $totale_fattura = get_totale_fattura($id_record); - $tipo_sconto = $post['tipo_sconto_generico']; - $sconto = $post['sconto_generico']; - if ($dir == 'uscita') { $idrivalsainps = post('idrivalsainps'); $idritenutaacconto = post('idritenutaacconto'); @@ -107,8 +104,6 @@ switch (post('op')) { ' n_colli='.prepare($n_colli).','. ' idsede='.prepare($idsede).','. ' numero_esterno='.prepare($numero_esterno).','. - ' tipo_sconto_globale='.prepare($tipo_sconto).','. - ' sconto_globale='.prepare($sconto).','. ' note='.prepare($note).','. ' note_aggiuntive='.prepare($note_aggiuntive).','. ' idconto='.prepare($idconto).','. @@ -121,13 +116,23 @@ switch (post('op')) { $query = 'SELECT descrizione FROM co_statidocumento WHERE id='.prepare($idstatodocumento); $rs = $dbo->fetchArray($query); - aggiorna_sconto([ - 'parent' => 'co_documenti', - 'row' => 'co_righe_documenti', - ], [ - 'parent' => 'id', - 'row' => 'iddocumento', - ], $id_record); + if ($records[0]['stato'] != 'Pagato' && $records[0]['stato'] != 'Emessa' && str_contains($r['descrizione'], 'SCONTO')) { + $tipo_sconto = $post['tipo_sconto_generico']; + $sconto = $post['sconto_generico']; + + $dbo->update('co_documenti', [ + 'tipo_sconto_globale' => $tipo_sconto, + 'sconto_globale' => $sconto, + ], ['id' => $id_record]); + + aggiorna_sconto([ + 'parent' => 'co_documenti', + 'row' => 'co_righe_documenti', + ], [ + 'parent' => 'id', + 'row' => 'iddocumento', + ], $id_record); + } // Ricalcolo inps, ritenuta e bollo (se la fattura non รจ stata pagata) if ($dir == 'entrata') { diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 12a3dbbe3..8e240db26 100644 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -85,7 +85,7 @@ if ($dir == 'uscita') { } ?> fetchArray('SELECT * FROM co_scadenziario WHERE iddocumento = '.prepare($id_record)); echo '
@@ -192,7 +192,11 @@ if ($records[0]['stato'] == 'Pagato') {
- {[ "type": "number", "label": "", "name": "sconto_generico", "value": "$sconto_globale$", "icon-after": "choice|untprc|$tipo_sconto_globale$" ]} + {[ "type": "number", "label": "", "name": "sconto_generico", "value": "$sconto_globale$", "icon-after": "choice|untprc|$tipo_sconto_globale$" ]}
diff --git a/update/2_3.php b/update/2_3.php index 92bc2dd4c..911dc0863 100644 --- a/update/2_3.php +++ b/update/2_3.php @@ -42,7 +42,6 @@ $tables = [ 'co_tipidocumento', 'dt_aspettobeni', 'dt_automezzi', - 'dt_automezzi_tagliandi', 'dt_automezzi_tecnici', 'dt_causalet', 'dt_ddt', @@ -95,9 +94,12 @@ $tables = [ $latest_ver = version_compare($mysql_ver, '5.6.5') >= 0; foreach ($tables as $table) { if ($latest_ver) { - $database->query('ALTER TABLE `'.$table.'` ADD (`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)'); + $database->query('ALTER TABLE `'.$table.'` ADD (`created_at` timestamp DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)'); } else { - $database->query('ALTER TABLE `'.$table."` ADD (`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)"); + $database->query('ALTER TABLE `'.$table.'` ADD (`created_at` timestamp DEFAULT NULL, `updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)'); + $database->query('UPDATE '.$table.' SET created_at = updated_at'); + + // Trigger per l'inizializzazione automatica di created_at $database->query('CREATE TRIGGER '.$table.'_creation BEFORE INSERT ON '.$table.' FOR EACH ROW SET NEW.created_at = CURRENT_TIMESTAMP'); } } @@ -145,7 +147,13 @@ if (!empty($array)) { $database->query("UPDATE mg_articoli SET contenuto = REPLACE(REPLACE(REPLACE(contenuto, '"', '\"'), '\n', ".prepare(PHP_EOL)."), '`', '\"')"); $database->query("UPDATE my_impianto_componenti SET contenuto = REPLACE(REPLACE(REPLACE(contenuto, '"', '\"'), '\n', ".prepare(PHP_EOL)."), '`', '\"')"); -// Fix dei timestamp delle tabelle zz_logs e zz_files +// Fix dei timestamp delle tabelle mg_prodotti, mg_movimenti, zz_logs e zz_files +$database->query('UPDATE `mg_prodotti` SET `created_at` = `data`, `updated_at` = `data`'); +$database->query('ALTER TABLE `mg_prodotti` DROP `data`'); + +$database->query('UPDATE `mg_movimenti` SET `created_at` = `data`, `updated_at` = `data`'); +$database->query('ALTER TABLE `mg_movimenti` DROP `data`'); + $database->query('UPDATE `zz_logs` SET `created_at` = `timestamp`, `updated_at` = `timestamp`'); $database->query('ALTER TABLE `zz_logs` DROP `timestamp`'); diff --git a/update/2_3.sql b/update/2_3.sql index 569907dda..c1f7460b2 100644 --- a/update/2_3.sql +++ b/update/2_3.sql @@ -65,6 +65,7 @@ DROP TABLE `mk_attivita`; DROP TABLE `mk_email`; DROP TABLE `mk_statoattivita`; DROP TABLE `mk_tipoattivita`; +DROP TABLE `dt_automezzi_tagliandi`; DROP TABLE `co_contratti_interventi`; -- RELEASE 2.2.1 [NON UFFICIALE] -- @@ -682,9 +683,6 @@ ALTER TABLE `my_impianto_componenti` CHANGE `idsostituto` `idsostituto` int(11); UPDATE `my_impianto_componenti` SET `idsostituto` = NULL WHERE `idsostituto` = 0; ALTER TABLE `my_impianto_componenti` ADD FOREIGN KEY (`idsostituto`) REFERENCES `my_impianto_componenti`(`id`) ON DELETE CASCADE; --- Fix dei timestamp delle tabelle zz_logs -ALTER TABLE `zz_logs` CHANGE `timestamp` `timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'; - -- Adeguamento dei contenuti di zz_files ALTER TABLE `zz_files` CHANGE `externalid` `id_record` int(11) NOT NULL, ADD `id_module` int(11) NOT NULL AFTER `filename`, ADD `original` varchar(255) NOT NULL AFTER `filename`; UPDATE `zz_files` SET `id_module` = (SELECT `id` FROM `zz_modules` WHERE `zz_modules`.`directory` = `zz_files`.`module`); @@ -873,13 +871,69 @@ OR (`id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Prima nota') AN -- Disabilitazione dei plugin instabili UPDATE `zz_plugins` SET `enabled` = 0 WHERE `name` = 'Pianificazione fatturazione' OR `name` = 'Pianificazione ordini di servizio'; --- Fix per le date delle tabelle dei documenti -ALTER TABLE `co_documenti` CHANGE `data` `data` date NOT NULL; -ALTER TABLE `or_ordini` CHANGE `data` `data` date NOT NULL; -ALTER TABLE `dt_ddt` CHANGE `data` `data` date NOT NULL; - -ALTER TABLE `co_preventivi` CHANGE `data_bozza` `data_bozza` date NOT NULL, CHANGE `data_accettazione` `data_accettazione` date NOT NULL, CHANGE `data_rifiuto` `data_rifiuto` date NOT NULL, CHANGE `data_conclusione` `data_conclusione` date NOT NULL, CHANGE `data_pagamento` `data_pagamento` date NOT NULL; -ALTER TABLE `co_contratti` CHANGE `data_bozza` `data_bozza` date NOT NULL, CHANGE `data_accettazione` `data_accettazione` date NOT NULL, CHANGE `data_rifiuto` `data_rifiuto` date NOT NULL, CHANGE `data_conclusione` `data_conclusione` date NOT NULL; - -- Fix del tipo di alcune impostazioni UPDATE `zz_settings` SET `tipo` = 'decimal' WHERE `nome` = 'Soglia minima per l\'applicazione della marca da bollo' OR `nome` = 'Importo marca da bollo'; + +-- Fix per le date in varie tabelle +ALTER TABLE `co_documenti` CHANGE `data` `data` datetime; +ALTER TABLE `or_ordini` CHANGE `data` `data` datetime; +ALTER TABLE `dt_ddt` CHANGE `data` `data` datetime; + +ALTER TABLE `co_preventivi` CHANGE `data_bozza` `data_bozza` datetime, CHANGE `data_accettazione` `data_accettazione` datetime, CHANGE `data_rifiuto` `data_rifiuto` datetime, CHANGE `data_conclusione` `data_conclusione` datetime, CHANGE `data_pagamento` `data_pagamento` datetime; +ALTER TABLE `co_contratti` CHANGE `data_bozza` `data_bozza` datetime, CHANGE `data_accettazione` `data_accettazione` datetime, CHANGE `data_rifiuto` `data_rifiuto` datetime, CHANGE `data_conclusione` `data_conclusione` datetime; + +ALTER TABLE `co_movimenti` CHANGE `data` `data` datetime, CHANGE `data_documento` `data_documento` datetime; +ALTER TABLE `co_ordiniservizio` CHANGE `data_scadenza` `data_scadenza` datetime; +ALTER TABLE `co_ordiniservizio_pianificazionefatture` CHANGE `data_scadenza` `data_scadenza` datetime; +ALTER TABLE `co_righe_contratti` CHANGE `data_richiesta` `data_richiesta` datetime; +ALTER TABLE `co_righe_preventivi` CHANGE `data_evasione` `data_evasione` datetime; +ALTER TABLE `co_scadenziario` CHANGE `data_emissione` `data_emissione` datetime, CHANGE `scadenza` `scadenza` datetime, CHANGE `data_pagamento` `data_pagamento` datetime; +ALTER TABLE `dt_automezzi_tecnici` CHANGE `data_inizio` `data_inizio` datetime, CHANGE `data_fine` `data_fine` datetime; +ALTER TABLE `my_impianto_componenti` CHANGE `data` `data` datetime, CHANGE `data_sostituzione` `data_sostituzione` datetime; +ALTER TABLE `or_righe_ordini` CHANGE `data_evasione` `data_evasione` datetime; + +UPDATE `co_documenti` SET `data` = NULL WHERE `data` = '0000-00-00 00:00:00'; +UPDATE `or_ordini` SET `data` = NULL WHERE `data` = '0000-00-00 00:00:00'; +UPDATE `dt_ddt` SET `data` = NULL WHERE `data` = '0000-00-00 00:00:00'; + +UPDATE `co_preventivi` SET `data_bozza` = NULL WHERE `data_bozza` = '0000-00-00 00:00:00'; +UPDATE `co_preventivi` SET `data_accettazione` = NULL WHERE `data_accettazione` = '0000-00-00 00:00:00'; +UPDATE `co_preventivi` SET `data_rifiuto` = NULL WHERE `data_rifiuto` = '0000-00-00 00:00:00'; +UPDATE `co_preventivi` SET `data_conclusione` = NULL WHERE `data_conclusione` = '0000-00-00 00:00:00'; +UPDATE `co_preventivi` SET `data_pagamento` = NULL WHERE `data_pagamento` = '0000-00-00 00:00:00'; +UPDATE `co_contratti` SET `data_bozza` = NULL WHERE `data_bozza` = '0000-00-00 00:00:00'; +UPDATE `co_contratti` SET `data_accettazione` = NULL WHERE `data_accettazione` = '0000-00-00 00:00:00'; +UPDATE `co_contratti` SET `data_rifiuto` = NULL WHERE `data_rifiuto` = '0000-00-00 00:00:00'; +UPDATE `co_contratti` SET `data_conclusione` = NULL WHERE `data_conclusione` = '0000-00-00 00:00:00'; + +UPDATE `co_movimenti` SET `data` = NULL WHERE `data` = '0000-00-00 00:00:00'; +UPDATE `co_movimenti` SET `data_documento` = NULL WHERE `data_documento` = '0000-00-00 00:00:00'; +UPDATE `co_ordiniservizio` SET `data_scadenza` = NULL WHERE `data_scadenza` = '0000-00-00 00:00:00'; +UPDATE `co_ordiniservizio_pianificazionefatture` SET `data_scadenza` = NULL WHERE `data_scadenza` = '0000-00-00 00:00:00'; +UPDATE `co_righe_contratti` SET `data_richiesta` = NULL WHERE `data_richiesta` = '0000-00-00 00:00:00'; +UPDATE `co_righe_preventivi` SET `data_evasione` = NULL WHERE `data_evasione` = '0000-00-00 00:00:00'; +UPDATE `co_scadenziario` SET `data_emissione` = NULL WHERE `data_emissione` = '0000-00-00 00:00:00'; +UPDATE `co_scadenziario` SET `scadenza` = NULL WHERE `scadenza` = '0000-00-00 00:00:00'; +UPDATE `co_scadenziario` SET `data_pagamento` = NULL WHERE `data_pagamento` = '0000-00-00 00:00:00'; +UPDATE `dt_automezzi_tecnici` SET `data_inizio` = NULL WHERE `data_inizio` = '0000-00-00 00:00:00'; +UPDATE `dt_automezzi_tecnici` SET `data_fine` = NULL WHERE `data_fine` = '0000-00-00 00:00:00'; +UPDATE `my_impianto_componenti` SET `data` = NULL WHERE `data` = '0000-00-00 00:00:00'; +UPDATE `my_impianto_componenti` SET `data_sostituzione` = NULL WHERE `data_sostituzione` = '0000-00-00 00:00:00'; +UPDATE `or_righe_ordini` SET `data_evasione` = NULL WHERE `data_evasione` = '0000-00-00 00:00:00'; + +ALTER TABLE `co_documenti` CHANGE `data` `data` date; +ALTER TABLE `or_ordini` CHANGE `data` `data` date; +ALTER TABLE `dt_ddt` CHANGE `data` `data` date; + +ALTER TABLE `co_preventivi` CHANGE `data_bozza` `data_bozza` date, CHANGE `data_accettazione` `data_accettazione` date, CHANGE `data_rifiuto` `data_rifiuto` date, CHANGE `data_conclusione` `data_conclusione` date, CHANGE `data_pagamento` `data_pagamento` date; +ALTER TABLE `co_contratti` CHANGE `data_bozza` `data_bozza` date, CHANGE `data_accettazione` `data_accettazione` date, CHANGE `data_rifiuto` `data_rifiuto` date, CHANGE `data_conclusione` `data_conclusione` date; + +ALTER TABLE `co_movimenti` CHANGE `data` `data` date, CHANGE `data_documento` `data_documento` date; +ALTER TABLE `co_ordiniservizio` CHANGE `data_scadenza` `data_scadenza` date; +ALTER TABLE `co_ordiniservizio_pianificazionefatture` CHANGE `data_scadenza` `data_scadenza` date; +ALTER TABLE `co_righe_contratti` CHANGE `data_richiesta` `data_richiesta` date; +ALTER TABLE `co_righe_preventivi` CHANGE `data_evasione` `data_evasione` date; +ALTER TABLE `co_scadenziario` CHANGE `data_emissione` `data_emissione` date, CHANGE `scadenza` `scadenza` date, CHANGE `data_pagamento` `data_pagamento` date; +ALTER TABLE `dt_automezzi_tecnici` CHANGE `data_inizio` `data_inizio` date, CHANGE `data_fine` `data_fine` date; +ALTER TABLE `my_impianto_componenti` CHANGE `data` `data` date, CHANGE `data_sostituzione` `data_sostituzione` date; +ALTER TABLE `or_righe_ordini` CHANGE `data_evasione` `data_evasione` date;