Bugfix sezionali

This commit is contained in:
Luca 2018-03-19 19:07:32 +01:00
parent 74a659fd3c
commit ba4577a947
9 changed files with 43 additions and 33 deletions

View File

@ -1003,7 +1003,7 @@ function start_inputmask(element) {
});
$(element+'.alphanumeric-mask').inputmask('Regex', {
regex: "[A-Za-z0-9]*",
regex: "[A-Za-z0-9\s\#/+-_\|]*",
casing: "upper",
});

View File

@ -28,21 +28,7 @@ function get_new_numerosecondarioddt($data)
// Calcolo il numero secondario se stabilito dalle impostazioni e se documento di vendita
$formato_numero_secondario = get_var('Formato numero secondario ddt');
$query = "SELECT numero_esterno FROM dt_ddt WHERE DATE_FORMAT( data, '%Y' ) = '".date('Y', strtotime($data))."' AND idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir='".$dir."')";
// estraggo blocchi di caratteri standard da sostituire
preg_match('/[#]+/', $formato_numero_secondario, $m1 );
preg_match('/[Y]+/', $formato_numero_secondario, $m2 );
// Marzo 2017
// nel caso ci fossero lettere o numeri prima della maschera ### per il numero (es. 18-####)
// è necessario l'ordinamento alfabetico "ORDER BY numero_esterno" altrimenti
// nel caso di maschere del tipo 0001-2018 è necessario l'ordinamento numerico "ORDER BY CAST(numero_esterno AS UNSIGNED)"
$pos1 = strpos( $formato_numero_secondario, $m1[0] );
if( $pos1==0 ):
$query .= " ORDER BY CAST(numero_esterno AS UNSIGNED) DESC LIMIT 0,1";
else:
$query .= " ORDER BY numero_esterno DESC LIMIT 0,1";
endif;
$query = "SELECT numero_esterno FROM dt_ddt WHERE DATE_FORMAT( data, '%Y' ) = '".date('Y', strtotime($data))."' AND idtipoddt IN(SELECT id FROM dt_tipiddt WHERE dir='".$dir."') ORDER BY numero_esterno DESC LIMIT 0,1";
$rs = $dbo->fetchArray($query);
$numero_secondario = $rs[0]['numero_esterno'];
@ -54,11 +40,6 @@ function get_new_numerosecondarioddt($data)
if ($formato_numero_secondario != '' && $dir == 'entrata') {
//$numero_esterno = get_next_code($numero_secondario, 1, $formato_numero_secondario);
$numero_esterno = Util\Generator::generate($formato_numero_secondario, $numero_secondario);
/*echo $query."<br>";
echo $numero_secondario."<br>";
echo $formato_numero_secondario."<br>";
echo $numero_esterno."<br>";
exit;*/
} else {
$numero_esterno = '';
}

View File

@ -24,7 +24,7 @@ switch (post('op')) {
$idtipodocumento = post('idtipodocumento');
$numero = get_new_numerofattura($data);
$idsezionale = post('idsezionale');
$id_sezionale = post('id_sezionale');
if ($dir == 'entrata') {
$numero_esterno = get_new_numerosecondariofattura($data);
$idconto = get_var('Conto predefinito fatture di vendita');
@ -45,7 +45,7 @@ switch (post('op')) {
$idpagamento = get_var('Tipo di pagamento predefinito');
}
$query = 'INSERT INTO co_documenti (numero, numero_esterno, idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede, id_sezionale) VALUES ('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($idanagrafica).', '.prepare($idconto).', '.prepare($idtipodocumento).', '.prepare($idpagamento).', '.prepare($data).", (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`='Bozza'), (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica=".prepare($idanagrafica).'), '.$_SESSION[$dir]['id_sezionale'].' )';
$query = 'INSERT INTO co_documenti (numero, numero_esterno, idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede, id_sezionale) VALUES ('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($idanagrafica).', '.prepare($idconto).', '.prepare($idtipodocumento).', '.prepare($idpagamento).', '.prepare($data).", (SELECT `id` FROM `co_statidocumento` WHERE `descrizione`='Bozza'), (SELECT idsede_fatturazione FROM an_anagrafiche WHERE idanagrafica=".prepare($idanagrafica).'), '.$id_sezionale.' )';
$dbo->query($query);
$id_record = $dbo->lastInsertedID();
@ -868,7 +868,7 @@ switch (post('op')) {
$idddt = $post['idddt'];
$numero = get_new_numerofattura($data);
$idsezionale = post('idsezionale');
$id_sezionale = post('id_sezionale');
if ($dir == 'entrata') {
$numero_esterno = get_new_numerosecondariofattura($data);
@ -885,7 +885,7 @@ switch (post('op')) {
}
// Creazione nuova fattura
$dbo->query('INSERT INTO co_documenti(numero, numero_esterno, data, idanagrafica, idtipodocumento, idstatodocumento, idpagamento, idconto, idsezionale) VALUES('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($data).', '.prepare($idanagrafica).', (SELECT id FROM co_tipidocumento WHERE descrizione='.prepare($tipo_documento)."), (SELECT id FROM co_statidocumento WHERE descrizione='Bozza'), ".prepare($idpagamento).', '.prepare($idconto).', '.prepare($idsezionale).' )');
$dbo->query('INSERT INTO co_documenti(numero, numero_esterno, data, idanagrafica, idtipodocumento, idstatodocumento, idpagamento, idconto, id_sezionale) VALUES('.prepare($numero).', '.prepare($numero_esterno).', '.prepare($data).', '.prepare($idanagrafica).', (SELECT id FROM co_tipidocumento WHERE descrizione='.prepare($tipo_documento)."), (SELECT id FROM co_statidocumento WHERE descrizione='Bozza'), ".prepare($idpagamento).', '.prepare($idconto).', '.prepare($id_sezionale).' )');
$id_record = $dbo->lastInsertedID();
// Lettura di tutte le righe della tabella in arrivo

View File

@ -45,7 +45,7 @@ if ($module['name'] == 'Fatture di vendita') {
?>
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Sezionale'); ?>", "name": "idsezionale", "required": 1, "class": "", "values": "query=SELECT id, nome AS descrizione FROM co_sezionali WHERE dir='<?php echo $dir; ?>' ORDER BY nome", "value": "<?php echo $idsezionale_default; ?>", "extra": "" ]}
{[ "type": "select", "label": "<?php echo tr('Sezionale'); ?>", "name": "id_sezionale", "required": 1, "class": "", "values": "query=SELECT id, nome AS descrizione FROM co_sezionali WHERE dir='<?php echo $dir; ?>' ORDER BY nome", "value": "<?php echo $idsezionale_default; ?>", "extra": "" ]}
</div>
</div>

View File

@ -48,9 +48,30 @@ switch (post('op')) {
}
break;
case 'delete-bulk':
foreach ($id_records as $id) {
$dbo->query('DELETE FROM co_documenti WHERE id = '.prepare($id).Modules::getAdditionalsQuery($id_module));
$dbo->query('DELETE FROM co_righe_documenti WHERE iddocumento='.prepare($id).Modules::getAdditionalsQuery($id_module));
$dbo->query('DELETE FROM co_scadenziario WHERE iddocumento='.prepare($id).Modules::getAdditionalsQuery($id_module));
$dbo->query('DELETE FROM mg_movimenti WHERE iddocumento='.prepare($id).Modules::getAdditionalsQuery($id_module));
}
$_SESSION['infos'][] = tr('Fatture eliminate!');
break;
}
return [
'delete-bulk' => tr('Elimina selezionati'),
'export-bulk' => [
'text' => tr('Esporta stampe'),
'data' => [

View File

@ -24,11 +24,11 @@ function get_new_numerosecondariofattura($data)
global $dbo;
global $dir;
global $idtipodocumento;
global $idsezionale;
global $id_sezionale;
// recupero maschera per questo sezionale
$rs_maschera = $dbo->fetchArray("SELECT maschera FROM co_sezionali WHERE id='".$idsezionale."'");
// esempio: ####YYYY
$rs_maschera = $dbo->fetchArray("SELECT maschera FROM co_sezionali WHERE id='".$id_sezionale."'");
// esempio: ####/YY
$maschera = $rs_maschera[0]['maschera'];
// estraggo blocchi di caratteri standard da sostituire
@ -37,7 +37,7 @@ function get_new_numerosecondariofattura($data)
$anno = substr( $data, 0, 4);
$query = "SELECT numero_esterno FROM co_documenti WHERE DATE_FORMAT(data,'%Y')='".$anno."' AND id_sezionale='".$idsezionale."' ";
$query = "SELECT numero_esterno FROM co_documenti WHERE DATE_FORMAT(data,'%Y')='".$anno."' AND id_sezionale='".$id_sezionale."' ";
// Marzo 2017
// nel caso ci fossero lettere prima della maschera ### per il numero (es. FT-0001-2017)
// è necessario l'ordinamento alfabetico "ORDER BY numero_esterno" altrimenti
@ -52,6 +52,14 @@ function get_new_numerosecondariofattura($data)
$rs_ultima_fattura = $dbo->fetchArray( $query );
$numero_esterno = get_next_code( $rs_ultima_fattura[0]['numero_esterno'], 1, $maschera );
//$numero_esterno = Util\Generator::generate($maschera, $rs_ultima_fattura[0]['numero_esterno']);
/*echo $id_sezionale."<br>";
echo $query."<br>";
echo $rs_ultima_fattura[0]['numero_esterno']."<br>";
echo $maschera."<br>";
echo $numero_esterno."<br>";
exit;*/
// sostituisco anno nella maschera
$anno = substr( $anno, -strlen($m2[0]) ); // nel caso ci fosse YY

View File

@ -9,7 +9,7 @@
</div>
<div class="col-md-6">
{[ "type": "text", "label": "Maschera", "name": "maschera", "required": 1, "class": "", "value": "####YYYY", "extra": "" ]}
{[ "type": "text", "label": "Maschera", "name": "maschera", "required": 1, "class": "alphanumeric-mask", "value": "", "maxlength": 25, "placeholder":"####/YY", "extra": "" ]}
</div>

View File

@ -15,7 +15,7 @@
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "class": "", "value": "$nome$", "extra": "" ]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Maschera'); ?>", "name": "maschera", "required": 1, "class": "", "value": "$maschera$", "extra": "" ]}
{[ "type": "text", "label": "<?php echo tr('Maschera'); ?>", "name": "maschera", "required": 1, "class": "alphanumeric-mask", "value": "$maschera$", "maxlength": 25, "placeholder":"####/YY", "extra": "" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Documenti'); ?>", "name": "dir", "required": 1, "class": "", "values": "list=\"entrata\": \"Documenti di vendita\", \"uscita\": \"Documenti di acquisto\"", "value": "$dir$", "extra": "" ]}

View File

@ -174,7 +174,7 @@ CREATE TABLE IF NOT EXISTS `co_sezionali` (
-- Popolo con i sezionali di default
INSERT INTO `co_sezionali` (`id`, `nome`, `maschera`, `dir`, `idautomezzo`, `note`) VALUES
(1, 'Standard vendite', '###YY', 'entrata', NULL, ''),
(1, 'Standard vendite', '####/YY', 'entrata', NULL, ''),
(2, 'Standard acquisti', '####', 'uscita', NULL,'');
-- Collego le fatture esistenti al sezionale di default