From 85d5ee692e141a5f341cbbe74109f2eaefde2956 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Thu, 11 Apr 2019 16:11:32 -0700 Subject: [PATCH] Fix #550 --- composer.json | 16 +++++++------- include/common/importa.php | 20 ++++++----------- include/src/Components/Description.php | 13 +++++++++-- include/src/Components/Discount.php | 1 + modules/contratti/actions.php | 15 ++++++------- modules/contratti/buttons.php | 3 +-- modules/ddt/actions.php | 2 -- modules/fatture/actions.php | 8 +++---- modules/fatture/bulk.php | 2 +- modules/fatture/buttons.php | 3 +-- modules/fatture/modutil.php | 6 ++---- modules/fatture/variables.php | 4 ++-- modules/interventi/actions.php | 2 -- modules/modelli_primanota/actions.php | 6 +++--- modules/modelli_primanota/add.php | 26 +++++++++++----------- modules/modelli_primanota/edit.php | 2 +- modules/ordini/actions.php | 3 +-- modules/preventivi/actions.php | 12 +++++------ modules/primanota/actions.php | 6 +++--- modules/primanota/add.php | 10 ++++----- modules/smtp/actions.php | 2 +- update/2_4_9.sql | 30 ++++++++++++++++++++++++-- 22 files changed, 103 insertions(+), 89 deletions(-) diff --git a/composer.json b/composer.json index 671d4bfb6..b4645c24e 100644 --- a/composer.json +++ b/composer.json @@ -21,17 +21,17 @@ "type": "project", "require": { "php": ">=5.6", - "ext-mbstring": "*", - "ext-json": "*", - "ext-pdo": "*", - "ext-zip": "*", - "ext-intl": "*", - "ext-simplexml": "*", - "ext-libxml": "*", - "ext-dom": "*", "ext-curl": "*", + "ext-dom": "*", + "ext-intl": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", "ext-openssl": "*", + "ext-pdo": "*", + "ext-simplexml": "*", "ext-xsl": "*", + "ext-zip": "*", "aluguest/ical-easy-reader": "^1.5", "danielstjules/stringy": "^3.1", "davidepastore/codice-fiscale": "^0.4.0", diff --git a/include/common/importa.php b/include/common/importa.php index f18d68c52..5019b6275 100644 --- a/include/common/importa.php +++ b/include/common/importa.php @@ -106,17 +106,11 @@ if (!empty($righe)) { echo ' '; - $totale = 0.00; - foreach ($righe as $i => $r) { // Descrizione echo ' - - - - - '; + '; // Checkbox - da evadere? echo ' @@ -133,7 +127,6 @@ if (!empty($righe)) { echo ' -

'.Translator::numberToLocale($r['qta_rimanente']).'

'; @@ -152,7 +145,6 @@ if (!empty($righe)) { - '.Translator::numberToLocale($subtotale - $sconto + $iva).' €
@@ -185,8 +177,6 @@ if (!empty($righe)) { echo ' '; - - $totale += $subtotale - $sconto + $iva; } // Totale @@ -196,7 +186,7 @@ if (!empty($righe)) { '.tr('Totale').': - '.Translator::numberToLocale($totale).' € + '; @@ -285,7 +275,9 @@ echo ' subtot = subtot - sconto; - totale += subtot * qta + iva * qta; + if(subtot) { + totale += subtot * qta + iva * qta; + } r++; @@ -306,4 +298,6 @@ echo ' ?> } + + ricalcola_totale(); diff --git a/include/src/Components/Description.php b/include/src/Components/Description.php index 28a66440e..12b1a53bf 100644 --- a/include/src/Components/Description.php +++ b/include/src/Components/Description.php @@ -16,6 +16,7 @@ abstract class Description extends Model if (!$bypass) { $model->is_descrizione = 1; + $model->qta = 1; } $model->setParent($document); @@ -42,6 +43,16 @@ abstract class Description extends Model return $diff; } + /** + * Restituisce la quantità rimanente dell'elemento. + * + * @return float + */ + public function getQtaRimanenteAttribute() + { + return $this->qta - $this->qta_evasa; + } + public function delete() { $this->evasione(-$this->qta); @@ -62,8 +73,6 @@ abstract class Description extends Model if (empty($this->disableOrder)) { $this->order = orderValue($this->table, $this->getParentID(), $document->id); } - - $this->save(); } /** diff --git a/include/src/Components/Discount.php b/include/src/Components/Discount.php index 89fc85eb1..2bbde2535 100644 --- a/include/src/Components/Discount.php +++ b/include/src/Components/Discount.php @@ -14,6 +14,7 @@ abstract class Discount extends Row $model = parent::build($document, true); $model->is_sconto = 1; + $model->qta = 1; return $model; } diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 2f861af88..2f5fc174d 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -126,8 +126,8 @@ switch (post('op')) { } break; - - // Duplica contratto + + // Duplica contratto case 'copy': $dbo->query('CREATE TEMPORARY TABLE tmp SELECT * FROM co_contratti WHERE id = '.prepare($id_record)); $dbo->query('ALTER TABLE tmp DROP id'); @@ -146,14 +146,13 @@ switch (post('op')) { $dbo->query('UPDATE tmp SET idcontratto = '.prepare($id_record)); $dbo->query('INSERT INTO co_righe_contratti SELECT NULL,tmp.* FROM tmp'); $dbo->query('DROP TEMPORARY TABLE tmp'); - - //Azzero eventuale quantità evasa - $dbo->query('UPDATE co_righe_contratti SET qta_evasa=0 WHERE id='.prepare($id_record)); + + //Azzero eventuale quantità evasa + $dbo->query('UPDATE co_righe_contratti SET qta_evasa=0 WHERE id='.prepare($id_record)); flash()->info(tr('Contratto duplicato correttamente!')); - break; - + break; case 'manage_sconto': if (post('idriga') != null) { @@ -162,8 +161,6 @@ switch (post('op')) { $sconto = Sconto::build($contratto); } - $sconto->qta = 1; - $sconto->descrizione = post('descrizione'); $sconto->id_iva = post('idiva'); diff --git a/modules/contratti/buttons.php b/modules/contratti/buttons.php index 893c7a300..1b9b0926d 100644 --- a/modules/contratti/buttons.php +++ b/modules/contratti/buttons.php @@ -26,10 +26,9 @@ if ($record['rinnovabile']) { '; } - // Duplica contratto echo '
-
'; \ No newline at end of file +'; diff --git a/modules/ddt/actions.php b/modules/ddt/actions.php index 0c3b9c579..abf4d215d 100644 --- a/modules/ddt/actions.php +++ b/modules/ddt/actions.php @@ -188,8 +188,6 @@ switch (post('op')) { $sconto = Sconto::build($ddt); } - $sconto->qta = 1; - $sconto->descrizione = post('descrizione'); $sconto->id_iva = post('idiva'); diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 2a3d4a2ec..de0cfe021 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -299,7 +299,7 @@ switch (post('op')) { $articolo->calcolo_ritenuta_acconto = post('calcolo_ritenuta_acconto') ?: null; $articolo->id_ritenuta_acconto = post('id_ritenuta_acconto') ?: null; - $articolo->ritenuta_contributi = post('ritenuta_contributi'); + $articolo->ritenuta_contributi = boolval(post('ritenuta_contributi')); $articolo->id_rivalsa_inps = post('id_rivalsa_inps') ?: null; $articolo->prezzo_unitario_acquisto = post('prezzo_acquisto') ?: 0; @@ -339,8 +339,6 @@ switch (post('op')) { $sconto = Sconto::build($fattura); } - $sconto->qta = 1; - $sconto->descrizione = post('descrizione'); $sconto->id_iva = post('idiva'); @@ -348,7 +346,7 @@ switch (post('op')) { $sconto->calcolo_ritenuta_acconto = post('calcolo_ritenuta_acconto') ?: null; $sconto->id_ritenuta_acconto = post('id_ritenuta_acconto') ?: null; - $sconto->ritenuta_contributi = post('ritenuta_contributi'); + $sconto->ritenuta_contributi = boolval(post('ritenuta_contributi')); $sconto->id_rivalsa_inps = post('id_rivalsa_inps') ?: null; $sconto->sconto_unitario = post('sconto_unitario'); @@ -387,7 +385,7 @@ switch (post('op')) { $riga->calcolo_ritenuta_acconto = post('calcolo_ritenuta_acconto') ?: null; $riga->id_ritenuta_acconto = post('id_ritenuta_acconto') ?: null; - $riga->ritenuta_contributi = post('ritenuta_contributi'); + $riga->ritenuta_contributi = boolval(post('ritenuta_contributi')); $riga->id_rivalsa_inps = post('id_rivalsa_inps') ?: null; $riga->prezzo_unitario_acquisto = post('prezzo_acquisto') ?: 0; diff --git a/modules/fatture/bulk.php b/modules/fatture/bulk.php index db602d068..31edf7f0a 100644 --- a/modules/fatture/bulk.php +++ b/modules/fatture/bulk.php @@ -141,7 +141,7 @@ switch (post('op')) { break; case 'registra-contabile': - + break; } diff --git a/modules/fatture/buttons.php b/modules/fatture/buttons.php index 9d4dda066..cbe8004c3 100644 --- a/modules/fatture/buttons.php +++ b/modules/fatture/buttons.php @@ -47,10 +47,9 @@ if (empty($record['is_fiscale'])) { + ?> 0){ + if ($totale_pagato > 0) { // Lettura righe scadenziario $query = "SELECT * FROM co_scadenziario WHERE iddocumento='$iddocumento' AND ABS(pagato) < ABS(da_pagare) ORDER BY scadenza ASC"; $rs = $dbo->fetchArray($query); @@ -168,8 +168,7 @@ function aggiorna_scadenziario($iddocumento, $totale_pagato, $data_pagamento) } } } - }else{ - + } else { // Lettura righe scadenziario $query = "SELECT * FROM co_scadenziario WHERE iddocumento='$iddocumento' AND ABS(pagato)>0 ORDER BY scadenza DESC"; $rs = $dbo->fetchArray($query); @@ -214,7 +213,6 @@ function aggiorna_scadenziario($iddocumento, $totale_pagato, $data_pagamento) } } } - } } } diff --git a/modules/fatture/variables.php b/modules/fatture/variables.php index 4ab51bd80..dd78870ea 100644 --- a/modules/fatture/variables.php +++ b/modules/fatture/variables.php @@ -12,12 +12,12 @@ FROM co_documenti INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anag $logo_azienda = str_replace(DOCROOT, ROOTDIR, App::filepath('templates/base|custom|/logo_azienda.jpg')); //cliente -if($r['idconto_cliente']!=''){ +if ($r['idconto_cliente'] != '') { $conto = $r['idconto_cliente']; $conto_descrizione = $dbo->fetchOne('SELECT CONCAT ((SELECT numero FROM co_pianodeiconti2 WHERE id=co_pianodeiconti3.idpianodeiconti2), ".", numero, " ", descrizione) AS descrizione FROM co_pianodeiconti3 WHERE id='.prepare($conto))['descrizione']; } //Fornitore -else if($r['idconto_fornitore']!=''){ +elseif ($r['idconto_fornitore'] != '') { $conto = $r['idconto_fornitore']; $conto_descrizione = $dbo->fetchOne('SELECT CONCAT ((SELECT numero FROM co_pianodeiconti2 WHERE id=co_pianodeiconti3.idpianodeiconti2), ".", numero, " ", descrizione) AS descrizione FROM co_pianodeiconti3 WHERE id='.prepare($conto))['descrizione']; } diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 4d5d355f3..a8869e053 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -332,8 +332,6 @@ switch (post('op')) { $sconto = Riga::build($intervento); } - $sconto->qta = 1; - $sconto->descrizione = post('descrizione'); $sconto->id_iva = post('idiva'); diff --git a/modules/modelli_primanota/actions.php b/modules/modelli_primanota/actions.php index 8bd0ea3fa..a3954a2b4 100644 --- a/modules/modelli_primanota/actions.php +++ b/modules/modelli_primanota/actions.php @@ -10,7 +10,7 @@ switch (post('op')) { for ($i = 0; $i < sizeof(post('idconto')); ++$i) { $idconto = post('idconto')[$i]; - if(!empty($idconto)){ + if (!empty($idconto)) { $query = 'INSERT INTO co_movimenti_modelli(idmastrino, nome, descrizione, idconto) VALUES('.prepare($idmastrino).', '.prepare($nome).', '.prepare($descrizione).', '.prepare($idconto).')'; if ($dbo->query($query)) { $id_record = $idmastrino; @@ -30,8 +30,8 @@ switch (post('op')) { for ($i = 0; $i < sizeof(post('idconto')); ++$i) { $idconto = post('idconto')[$i]; - if(!empty($idconto)){ - $query = 'INSERT INTO co_movimenti_modelli(idmastrino, nome, descrizione, idconto) VALUES('.prepare($idmastrino).', '.prepare($nome).', '.prepare($descrizione).', '.prepare($idconto).')'; + if (!empty($idconto)) { + $query = 'INSERT INTO co_movimenti_modelli(idmastrino, nome, descrizione, idconto) VALUES('.prepare($idmastrino).', '.prepare($nome).', '.prepare($descrizione).', '.prepare($idconto).')'; if ($dbo->query($query)) { $id_record = $idmastrino; } diff --git a/modules/modelli_primanota/add.php b/modules/modelli_primanota/add.php index bb180720e..5fc507025 100644 --- a/modules/modelli_primanota/add.php +++ b/modules/modelli_primanota/add.php @@ -44,32 +44,32 @@ include_once __DIR__.'/../../core.php'; echo ' '; - // Variabili utilizzabili - $variables = include Modules::filepath(Modules::get("Fatture di vendita")['id'], 'variables.php'); + // Variabili utilizzabili + $variables = include Modules::filepath(Modules::get('Fatture di vendita')['id'], 'variables.php'); - echo ' + echo '
'; - if (!empty($variables)) { - echo ' + if (!empty($variables)) { + echo '

'.tr("Puoi utilizzare le seguenti sequenze di testo all'interno del campo causale, verranno sostituite in fase generazione prima nota dalla fattura.").':

    '; - foreach ($variables as $variable => $value) { - echo ' + foreach ($variables as $variable => $value) { + echo '
  • {'.$variable.'}
  • '; - } + } - echo ' + echo '
'; - } else { - echo ' + } else { + echo '

'.tr('Non sono state definite variabili da utilizzare nel template').'.

'; - } + } - echo ' + echo '
'; ?> diff --git a/modules/modelli_primanota/edit.php b/modules/modelli_primanota/edit.php index 273f8373f..39fca21dc 100644 --- a/modules/modelli_primanota/edit.php +++ b/modules/modelli_primanota/edit.php @@ -85,7 +85,7 @@ echo ' diff --git a/modules/ordini/actions.php b/modules/ordini/actions.php index 3d557a40f..f1f4d6bb2 100644 --- a/modules/ordini/actions.php +++ b/modules/ordini/actions.php @@ -220,6 +220,7 @@ switch (post('op')) { flash()->info(tr('Riga rimossa!')); } + break; case 'manage_sconto': @@ -229,8 +230,6 @@ switch (post('op')) { $sconto = Sconto::build($ordine); } - $sconto->qta = 1; - $sconto->descrizione = post('descrizione'); $sconto->id_iva = post('idiva'); diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php index 2d595b759..7467a43b5 100644 --- a/modules/preventivi/actions.php +++ b/modules/preventivi/actions.php @@ -32,7 +32,7 @@ switch (post('op')) { $idstato = post('idstato'); $nome = post('nome'); $idanagrafica = post('idanagrafica'); - $idsede = post('idsede'); + $idsede = post('idsede'); $idagente = post('idagente'); $idreferente = post('idreferente'); $idpagamento = post('idpagamento'); @@ -70,7 +70,7 @@ switch (post('op')) { $query = 'UPDATE co_preventivi SET idstato='.prepare($idstato).','. ' nome='.prepare($nome).','. ' idanagrafica='.prepare($idanagrafica).','. - ' idsede='.prepare($idsede).','. + ' idsede='.prepare($idsede).','. ' idagente='.prepare($idagente).','. ' idreferente='.prepare($idreferente).','. ' idpagamento='.prepare($idpagamento).','. @@ -116,9 +116,9 @@ switch (post('op')) { $dbo->query('UPDATE tmp SET idpreventivo = '.prepare($id_record)); $dbo->query('INSERT INTO co_righe_preventivi SELECT NULL,tmp.* FROM tmp'); $dbo->query('DROP TEMPORARY TABLE tmp'); - - //Azzero eventuale quantità evasa - $dbo->query('UPDATE co_righe_preventivi SET qta_evasa=0 WHERE id='.prepare($id_record)); + + //Azzero eventuale quantità evasa + $dbo->query('UPDATE co_righe_preventivi SET qta_evasa=0 WHERE id='.prepare($id_record)); flash()->info(tr('Preventivo duplicato correttamente!')); @@ -243,8 +243,6 @@ switch (post('op')) { $sconto = Sconto::build($preventivo); } - $sconto->qta = 1; - $sconto->descrizione = post('descrizione'); $sconto->id_iva = post('idiva'); diff --git a/modules/primanota/actions.php b/modules/primanota/actions.php index 626040ba9..097a4c8eb 100644 --- a/modules/primanota/actions.php +++ b/modules/primanota/actions.php @@ -46,7 +46,7 @@ switch (post('op')) { if ($totale_pagato != 0 && empty($insoluto)) { // Inserisco nello scadenziario il totale pagato aggiorna_scadenziario($iddocumento, abs($totale_pagato), $data); - }else if(!empty($insoluto)){ + } elseif (!empty($insoluto)) { //Rimuovo dallo scadenzario l'insoluto aggiorna_scadenziario($iddocumento, -abs($totale_pagato), $data); } @@ -65,9 +65,9 @@ switch (post('op')) { // Aggiorno lo stato della fattura if (abs($rs[0]['tot_pagato']) == abs($rs[0]['tot_da_pagare'])) { $dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Pagato') WHERE id=".prepare($iddocumento)); - } else if(abs($rs[0]['tot_pagato']) != abs($rs[0]['tot_da_pagare']) && abs($rs[0]['tot_pagato'])!='0'){ + } elseif (abs($rs[0]['tot_pagato']) != abs($rs[0]['tot_da_pagare']) && abs($rs[0]['tot_pagato']) != '0') { $dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Parzialmente pagato') WHERE id=".prepare($iddocumento)); - }else{ + } else { $dbo->query("UPDATE co_documenti SET idstatodocumento=(SELECT id FROM co_statidocumento WHERE descrizione='Emessa') WHERE id=".prepare($iddocumento)); } diff --git a/modules/primanota/add.php b/modules/primanota/add.php index 511875404..c70711922 100644 --- a/modules/primanota/add.php +++ b/modules/primanota/add.php @@ -15,7 +15,7 @@ include_once __DIR__.'/../../core.php'; $dir = get('dir'); $insoluto = get('insoluto'); - if(!empty($insoluto)){ + if (!empty($insoluto)) { echo ''; } @@ -42,9 +42,9 @@ include_once __DIR__.'/../../core.php'; $tipo_doc = 'fattura'; } - if(!empty($insoluto)){ + if (!empty($insoluto)) { $operation = 'Registrazione insoluto'; - }else{ + } else { $operation = 'Pag.'; } @@ -90,9 +90,9 @@ include_once __DIR__.'/../../core.php'; $query = 'SELECT SUM(pagato) AS tot_pagato, SUM(da_pagare) AS tot_da_pagare FROM co_scadenziario GROUP BY iddocumento HAVING iddocumento='.prepare($iddocumento); $rs = $dbo->fetchArray($query); - if(!empty($insoluto)){ + if (!empty($insoluto)) { $importo_conto_aziendale = abs($rs[0]['tot_da_pagare']); - }else{ + } else { $importo_conto_aziendale = abs($rs[0]['tot_da_pagare']) - abs($rs[0]['tot_pagato']); } $totale_dare = $importo_conto_aziendale; diff --git a/modules/smtp/actions.php b/modules/smtp/actions.php index ee5563b0c..da625c3f3 100644 --- a/modules/smtp/actions.php +++ b/modules/smtp/actions.php @@ -72,7 +72,7 @@ switch (post('op')) { case 'test': $mail = new Mail($id_record); - echo json_encode( [ + echo json_encode([ 'test' => $mail->testSMTP(), ]); diff --git a/update/2_4_9.sql b/update/2_4_9.sql index 2865eaa4d..f75a41131 100644 --- a/update/2_4_9.sql +++ b/update/2_4_9.sql @@ -138,7 +138,7 @@ UPDATE `dt_righe_ddt` SET `sconto` = `sconto_globale`, `sconto_unitario` = `scon ALTER TABLE `dt_righe_ddt` DROP `sconto_globale`; -- Fix per la tabella in_righe_interventi -ALTER TABLE `in_righe_interventi` ADD `is_descrizione` TINYINT(1) NOT NULL AFTER `idintervento`, ADD `idarticolo` INT(11) AFTER `idintervento`, ADD FOREIGN KEY (`idarticolo`) REFERENCES `mg_articoli`(`id`); +ALTER TABLE `in_righe_interventi` ADD `is_descrizione` TINYINT(1) NOT NULL AFTER `idintervento`, ADD `idarticolo` INT(11) AFTER `idintervento`, ADD FOREIGN KEY (`idarticolo`) REFERENCES `mg_articoli`(`id`), ADD `is_sconto` BOOLEAN DEFAULT FALSE NOT NULL AFTER `is_descrizione`; ALTER TABLE `mg_articoli_interventi` ADD `is_descrizione` TINYINT(1) NOT NULL AFTER `idintervento`, ADD `is_sconto` BOOLEAN DEFAULT FALSE NOT NULL AFTER `is_descrizione`; -- Rimozione campi inutilizzati co_ritenutaacconto @@ -177,4 +177,30 @@ INSERT INTO `zz_segments` (`id`, `id_module`, `name`, `clause`, `position`, `pat (NULL, (SELECT id FROM zz_modules WHERE name='Scadenzario'), 'Scadenzario totale', '1=1', 'WHR', '####', '', 1, 0, 0, 1), (NULL, (SELECT id FROM zz_modules WHERE name='Scadenzario'), 'Scadenzario clienti', '((SELECT dir FROM co_tipidocumento WHERE co_tipidocumento.id=co_documenti.idtipodocumento)=\'entrata\')', 'WHR', '####', '', 0, 0, 0, 0), (NULL, (SELECT id FROM zz_modules WHERE name='Scadenzario'), 'Scadenzario fornitori', '((SELECT dir FROM co_tipidocumento WHERE co_tipidocumento.id=co_documenti.idtipodocumento)=\'uscita\')', 'WHR', '####', '', 0, 0, 0, 0), -(NULL, (SELECT id FROM zz_modules WHERE name='Scadenzario'), 'Scadenzario Ri.Ba.', 'co_pagamenti.riba=1', 'WHR', '####', '', 0, 0, 0, 0); \ No newline at end of file +(NULL, (SELECT id FROM zz_modules WHERE name='Scadenzario'), 'Scadenzario Ri.Ba.', 'co_pagamenti.riba=1', 'WHR', '####', '', 0, 0, 0, 0); + +-- Fix vari +ALTER TABLE `co_righe_documenti` CHANGE `um` `um` VARCHAR(20) NULL; +UPDATE `co_righe_documenti` SET `um` = NULL WHERE `um` = ''; +ALTER TABLE `co_righe_documenti` CHANGE `idritenutaacconto` `idritenutaacconto` INT(11) NULL, CHANGE `idrivalsainps` `idrivalsainps` INT(11) NULL; +UPDATE `co_righe_documenti` SET `idritenutaacconto` = NULL WHERE `idritenutaacconto` = 0; +UPDATE `co_righe_documenti` SET `idrivalsainps` = NULL WHERE `idrivalsainps` = 0; + +ALTER TABLE `co_righe_preventivi` CHANGE `um` `um` VARCHAR(20) NULL; +UPDATE `co_righe_preventivi` SET `um` = NULL WHERE `um` = ''; + +ALTER TABLE `co_righe_contratti` CHANGE `um` `um` VARCHAR(20) NULL; +UPDATE `co_righe_contratti` SET `um` = NULL WHERE `um` = ''; + +ALTER TABLE `or_righe_ordini` CHANGE `um` `um` VARCHAR(20) NULL; +UPDATE `or_righe_ordini` SET `um` = NULL WHERE `um` = ''; + +ALTER TABLE `dt_righe_ddt` CHANGE `um` `um` VARCHAR(20) NULL; +UPDATE `dt_righe_ddt` SET `um` = NULL WHERE `um` = ''; + +ALTER TABLE `in_righe_interventi` CHANGE `um` `um` VARCHAR(20) NULL; +UPDATE `in_righe_interventi` SET `um` = NULL WHERE `um` = ''; + +ALTER TABLE `mg_articoli_interventi` CHANGE `um` `um` VARCHAR(20) NULL; +UPDATE `mg_articoli_interventi` SET `um` = NULL WHERE `um` = ''; +