diff --git a/modules/ordini/modutil.php b/modules/ordini/modutil.php index d646eea65..d74c57fc4 100644 --- a/modules/ordini/modutil.php +++ b/modules/ordini/modutil.php @@ -26,20 +26,21 @@ function get_new_numerosecondarioordine($data) global $dir; $dbo = Database::getConnection(); + + // Calcolo il numero secondario se stabilito dalle impostazioni e se documento di vendita + $formato_numero_secondario = get_var('Formato numero secondario ordine'); + $formato_numero_secondario = str_replace('#', '%', $formato_numero_secondario); - $query = "SELECT numero_esterno FROM or_ordini WHERE DATE_FORMAT( data, '%Y' ) = ".prepare(date('Y', strtotime($data))).' AND idtipoordine IN(SELECT id FROM or_tipiordine WHERE dir='.prepare($dir).') ORDER BY CAST(numero_esterno AS UNSIGNED) DESC LIMIT 0,1'; + $query = 'SELECT numero_esterno FROM or_ordini WHERE DATE_FORMAT( data, "%Y" ) = '.prepare(date('Y', strtotime($data))).' AND idtipoordine IN(SELECT id FROM or_tipiordine WHERE dir='.prepare($dir).') AND numero_esterno LIKE('.prepare(Util\Generator::complete($formato_numero_secondario)).') ORDER BY CAST(numero AS UNSIGNED) DESC LIMIT 0,1'; $rs = $dbo->fetchArray($query); $numero_secondario = $rs[0]['numero_esterno']; - // Calcolo il numero secondario se stabilito dalle impostazioni e se documento di vendita - $formato_numero_secondario = get_var('Formato numero secondario ordine'); - if ($numero_secondario == '') { - $numero_secondario = $formato_numero_secondario; + $numero_secondario = get_var('Formato numero secondario ordine'); } if ($formato_numero_secondario != '' && $dir == 'entrata') { - $numero_esterno = Util\Generator::generate($formato_numero_secondario, $numero_secondario); + $numero_esterno = Util\Generator::generate(get_var('Formato numero secondario ordine'), $numero_secondario); } else { $numero_esterno = ''; } diff --git a/modules/preventivi/actions.php b/modules/preventivi/actions.php index b27808698..dfcb1d30d 100644 --- a/modules/preventivi/actions.php +++ b/modules/preventivi/actions.php @@ -25,11 +25,11 @@ switch (post('op')) { $numeropreventivo_template = str_replace('#', '%', $numeropreventivo_template); // Codice preventivo: calcolo il successivo in base al formato specificato - $rs = $dbo->fetchArray('SELECT numero FROM co_preventivi WHERE numero=(SELECT MAX(CAST(numero AS SIGNED)) FROM co_preventivi) AND numero LIKE('.prepare($numeropreventivo_template).') ORDER BY numero DESC LIMIT 0,1'); + $rs = $dbo->fetchArray('SELECT numero FROM co_preventivi WHERE numero=(SELECT MAX(CAST(numero AS SIGNED)) FROM co_preventivi) AND numero LIKE('.prepare(Util\Generator::complete($numeropreventivo_template)).') ORDER BY numero DESC LIMIT 0,1'); $numero = Util\Generator::generate(get_var('Formato codice preventivi'), $rs[0]['numero']); if (!is_numeric($numero)) { - $rs = $dbo->fetchArray('SELECT numero FROM co_preventivi WHERE numero LIKE('.prepare($numeropreventivo_template).') ORDER BY numero DESC LIMIT 0,1'); + $rs = $dbo->fetchArray('SELECT numero FROM co_preventivi WHERE numero LIKE('.prepare(Util\Generator::complete($numeropreventivo_template)).') ORDER BY numero DESC LIMIT 0,1'); $numero = Util\Generator::generate(get_var('Formato codice preventivi'), $rs[0]['numero']); } diff --git a/src/Util/Generator.php b/src/Util/Generator.php index 6f8fa67c4..1cf002c22 100644 --- a/src/Util/Generator.php +++ b/src/Util/Generator.php @@ -70,7 +70,7 @@ class Generator * * @return string */ - protected static function complete($pattern) + public static function complete($pattern) { // Costruzione del pattern $replaces = self::getReplaces(); diff --git a/update/2_4_1.sql b/update/2_4_1.sql index bd51dd32e..f225a4264 100644 --- a/update/2_4_1.sql +++ b/update/2_4_1.sql @@ -343,7 +343,7 @@ INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, -- Aggiunto supporto a Note di accredito e addebito ALTER TABLE `co_documenti` ADD `ref_documento` int(11) AFTER `idagente`, ADD FOREIGN KEY (`ref_documento`) REFERENCES `co_documenti`(`id`) ON DELETE CASCADE; -ALTER TABLE `co_righe_documenti` ADD `qta_evasa` int(11) NOT NULL AFTER `qta`, ADD `ref_riga_documento` int(11) AFTER `idcontratto`, ADD FOREIGN KEY (`ref_riga_documento`) REFERENCES `co_righe_documenti`(`id`) ON DELETE CASCADE; +ALTER TABLE `co_righe_documenti` ADD `qta_evasa` decimal(12,4) NOT NULL AFTER `qta`, ADD `ref_riga_documento` int(11) AFTER `idcontratto`, ADD FOREIGN KEY (`ref_riga_documento`) REFERENCES `co_righe_documenti`(`id`) ON DELETE CASCADE; ALTER TABLE `co_tipidocumento` ADD `reversed` BOOLEAN NOT NULL DEFAULT FALSE AFTER `dir`; UPDATE `co_tipidocumento` SET `reversed` = 1 WHERE `descrizione` = 'Nota di accredito';