diff --git a/lib/functions.js b/lib/functions.js index 5a6433316..6baeb4677 100644 --- a/lib/functions.js +++ b/lib/functions.js @@ -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", }); diff --git a/modules/ddt/modutil.php b/modules/ddt/modutil.php index a2c8e4183..09954c83c 100644 --- a/modules/ddt/modutil.php +++ b/modules/ddt/modutil.php @@ -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."
"; - echo $numero_secondario."
"; - echo $formato_numero_secondario."
"; - echo $numero_esterno."
"; - exit;*/ } else { $numero_esterno = ''; } diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 0bd00d076..d79a53958 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -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 diff --git a/modules/fatture/add.php b/modules/fatture/add.php index bc75eafd0..a041e29c3 100644 --- a/modules/fatture/add.php +++ b/modules/fatture/add.php @@ -45,7 +45,7 @@ if ($module['name'] == 'Fatture di vendita') { ?>
- {[ "type": "select", "label": "", "name": "idsezionale", "required": 1, "class": "", "values": "query=SELECT id, nome AS descrizione FROM co_sezionali WHERE dir='' ORDER BY nome", "value": "", "extra": "" ]} + {[ "type": "select", "label": "", "name": "id_sezionale", "required": 1, "class": "", "values": "query=SELECT id, nome AS descrizione FROM co_sezionali WHERE dir='' ORDER BY nome", "value": "", "extra": "" ]}
diff --git a/modules/fatture/bulk.php b/modules/fatture/bulk.php index 77116ac33..78cd0c801 100644 --- a/modules/fatture/bulk.php +++ b/modules/fatture/bulk.php @@ -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' => [ diff --git a/modules/fatture/modutil.php b/modules/fatture/modutil.php index e625e368c..212408d67 100644 --- a/modules/fatture/modutil.php +++ b/modules/fatture/modutil.php @@ -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."
"; + echo $query."
"; + echo $rs_ultima_fattura[0]['numero_esterno']."
"; + echo $maschera."
"; + echo $numero_esterno."
"; + exit;*/ // sostituisco anno nella maschera $anno = substr( $anno, -strlen($m2[0]) ); // nel caso ci fosse YY diff --git a/modules/sezionali/add.php b/modules/sezionali/add.php index e80028edb..165c4dfa3 100644 --- a/modules/sezionali/add.php +++ b/modules/sezionali/add.php @@ -9,7 +9,7 @@
- {[ "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": "" ]}
diff --git a/modules/sezionali/edit.php b/modules/sezionali/edit.php index 15fa4a408..587843335 100644 --- a/modules/sezionali/edit.php +++ b/modules/sezionali/edit.php @@ -15,7 +15,7 @@ {[ "type": "text", "label": "", "name": "nome", "required": 1, "class": "", "value": "$nome$", "extra": "" ]}
- {[ "type": "text", "label": "", "name": "maschera", "required": 1, "class": "", "value": "$maschera$", "extra": "" ]} + {[ "type": "text", "label": "", "name": "maschera", "required": 1, "class": "alphanumeric-mask", "value": "$maschera$", "maxlength": 25, "placeholder":"####/YY", "extra": "" ]}
{[ "type": "select", "label": "", "name": "dir", "required": 1, "class": "", "values": "list=\"entrata\": \"Documenti di vendita\", \"uscita\": \"Documenti di acquisto\"", "value": "$dir$", "extra": "" ]} diff --git a/update/2_4.sql b/update/2_4.sql index 2d314fd4e..0e6b09f70 100644 --- a/update/2_4.sql +++ b/update/2_4.sql @@ -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