Bugfix: sistemato calcolo numero preventivo e numero ordine

This commit is contained in:
Bacca97 2018-08-20 18:07:13 +02:00
parent a96aaa82e0
commit 6d3d22ec8c
4 changed files with 11 additions and 10 deletions

View File

@ -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 = '';
}

View File

@ -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']);
}

View File

@ -70,7 +70,7 @@ class Generator
*
* @return string
*/
protected static function complete($pattern)
public static function complete($pattern)
{
// Costruzione del pattern
$replaces = self::getReplaces();

View File

@ -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';