Sezionali fatture vendita

This commit is contained in:
Luca 2018-03-20 00:57:36 +01:00
parent ba4577a947
commit 9b24ab8125
11 changed files with 85 additions and 36 deletions

View File

@ -177,8 +177,9 @@ if (!API::isAPIRequest()) {
}
// Impostazione automatica dei sezionali
$_SESSION['uscita']['id_sezionale'] = get_var('Sezionale predefinito fatture di acquisto');
$_SESSION['entrata']['id_sezionale'] = get_var('Sezionale predefinito fatture di vendita');
(empty($_SESSION['entrata']['idsezionale'])) ? $_SESSION['entrata']['idsezionale'] = get_var('Sezionale predefinito fatture di vendita') : '';
(empty($_SESSION['uscita']['idsezionale'])) ? $_SESSION['uscita']['idsezionale'] = get_var('Sezionale predefinito fatture di acquisto'): '';
// Impostazione del tema grafico di default
$theme = !empty($theme) ? $theme : 'default';

View File

@ -1003,7 +1003,7 @@ function start_inputmask(element) {
});
$(element+'.alphanumeric-mask').inputmask('Regex', {
regex: "[A-Za-z0-9\s\#/+-_\|]*",
regex: "[A-Za-z0-9#_|\/\\-]*",
casing: "upper",
});
@ -1105,12 +1105,21 @@ function session_set_array(session_array, value, inversed) {
/**
* Funzione per impostare un valore ad una sessione
*/
function session_set(session_array, value, clear) {
function session_set(session_array, value, clear, reload) {
if (clear == undefined) {
clear = 1;
}
return $.get(globals.rootdir + "/ajax.php?op=session_set&session=" + session_array + "&value=" + value + "&clear=" + clear);
if (reload == undefined) {
reload = 0;
}
return $.get(globals.rootdir + "/ajax.php?op=session_set&session=" + session_array + "&value=" + value + "&clear=" + clear, function(data, status){
if (reload==1)
location.reload();
});
}
function session_keep_alive() {

View File

@ -31,7 +31,7 @@ if ($module['name'] == 'Ddt di vendita') {
</div>
<div class="col-md-4">
{[ "type": "select", "label": "<?php echo $tipo_anagrafica; ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='<?php echo $tipo_anagrafica; ?>' AND deleted=0 ORDER BY ragione_sociale", "value": "<?php echo $idanagrafica; ?>" ]}
{[ "type": "select", "label": "<?php echo $tipo_anagrafica; ?>", "name": "idanagrafica", "required": 1, "values": "query=SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE descrizione='<?php echo $tipo_anagrafica; ?>' AND deleted=0 ORDER BY ragione_sociale", "value": "<?php echo $idanagrafica; ?>", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=<?php echo $tipo_anagrafica; ?>" ]}
</div>
<div class="col-md-4">

View File

@ -24,7 +24,7 @@ switch (post('op')) {
$idtipodocumento = post('idtipodocumento');
$numero = get_new_numerofattura($data);
$id_sezionale = post('id_sezionale');
$idsezionale = post('idsezionale');
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).'), '.$id_sezionale.' )';
$query = 'INSERT INTO co_documenti (numero, numero_esterno, idanagrafica, idconto, idtipodocumento, idpagamento, data, idstatodocumento, idsede, idsezionale) 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).'), '.$idsezionale.' )';
$dbo->query($query);
$id_record = $dbo->lastInsertedID();
@ -868,7 +868,7 @@ switch (post('op')) {
$idddt = $post['idddt'];
$numero = get_new_numerofattura($data);
$id_sezionale = post('id_sezionale');
$idsezionale = post('idsezionale');
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, 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).' )');
$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).' )');
$id_record = $dbo->lastInsertedID();
// Lettura di tutte le righe della tabella in arrivo

View File

@ -33,19 +33,9 @@ if ($module['name'] == 'Fatture di vendita') {
<div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Tipo fattura'); ?>", "name": "idtipodocumento", "required": 1, "values": "query=SELECT id, descrizione FROM co_tipidocumento WHERE dir='<?php echo $dir; ?>'", "value": "" ]}
</div>
<?php
if( $dir == "entrata" ):
(!empty($_SESSION[$dir]['idsezionale'])) ? $idsezionale_default = $_SESSION[$dir]['idsezionale'] : $idsezionale_default = get_var("Sezionale predefinito fatture di vendita");
endif;
if( $dir == "uscita" ):
(!empty($_SESSION[$dir]['idsezionale'])) ? $idsezionale_default = $_SESSION[$dir]['idsezionale'] : $idsezionale_default = get_var("Sezionale predefinito fatture di acquisto");
endif;
?>
<div class="col-md-6">
{[ "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": "" ]}
{[ "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 $_SESSION[$dir]['idsezionale']; ?>", "extra": "" ]}
</div>
</div>

View File

@ -0,0 +1,50 @@
<?php
/*deve sempre essere impostato almeno un sezionale
if (isset($_SESSION[$dir]['idsezionale'])){
$idsezionale = $_SESSION[$dir]['idsezionale'];
}
else{
if ($dir=='entrata')
(!empty($_SESSION[$dir]['idsezionale'])) ? $idsezionale = $_SESSION[$dir]['idsezionale'] :$idsezionale = get_var("Sezionale predefinito fatture di vendita");
if ($dir=='uscita')
$idsezionale = get_var('Sezionale predefinito fatture di acquisto');
$_SESSION[$dir]['idsezionale'] = $idsezionale;
}
*/
?>
<div class="row">
<div class="col-md-4 pull-right">
{[ "type": "select", "label": "Sezionale", "name": "idsezionale_", "required": 0, "class": "", "values": "query=SELECT id, nome AS descrizione FROM co_sezionali WHERE dir = '<?php echo $dir; ?>'", "value": "<?php echo $_SESSION[$dir]['idsezionale']; ?>", "extra": "" ]}
</div>
</div>
<script>
$(document).ready(function () {
$("#idsezionale_").on("change", function(){
//alert ('<?php echo $dir; ?>');
if ($(this).val()<1){
session_set('<?php echo $dir; ?>,idsezionale', '', 1, 1);
}else{
session_set('<?php echo $dir; ?>,idsezionale', $(this).val(), 0, 1);
}
});
});
</script>

View File

@ -63,7 +63,7 @@ $_SESSION['superselect']['ddt'] = $dir;
}
?>
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo $label; ?>", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$" ]}
{[ "type": "text", "label": "<?php echo $label; ?>", "name": "numero_esterno", "class": "alphanumeric-mask text-center", "value": "$numero_esterno$" ]}
</div>
<div class="col-md-3">

View File

@ -24,10 +24,10 @@ function get_new_numerosecondariofattura($data)
global $dbo;
global $dir;
global $idtipodocumento;
global $id_sezionale;
global $idsezionale;
// recupero maschera per questo sezionale
$rs_maschera = $dbo->fetchArray("SELECT maschera FROM co_sezionali WHERE id='".$id_sezionale."'");
$rs_maschera = $dbo->fetchArray("SELECT maschera FROM co_sezionali WHERE id='".$idsezionale."'");
// esempio: ####/YY
$maschera = $rs_maschera[0]['maschera'];
@ -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='".$id_sezionale."' ";
$query = "SELECT numero_esterno FROM co_documenti WHERE DATE_FORMAT(data,'%Y')='".$anno."' AND idsezionale='".$idsezionale."' ";
// 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
@ -54,7 +54,7 @@ function get_new_numerosecondariofattura($data)
$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 $idsezionale."<br>";
echo $query."<br>";
echo $rs_ultima_fattura[0]['numero_esterno']."<br>";
echo $maschera."<br>";

View File

@ -63,7 +63,7 @@
<?php
$fatture = $dbo->fetchArray('SELECT COUNT(*) AS tot_fatture FROM co_documenti WHERE id_sezionale='.prepare($id_record));
$fatture = $dbo->fetchArray('SELECT COUNT(*) AS tot_fatture FROM co_documenti WHERE idsezionale='.prepare($id_record));
$tot_fatture = $fatture[0]['tot_fatture'];
if ($tot_fatture > 0) {
echo "<div class='alert alert-danger' style='margin:0px;'>Ci sono $tot_fatture fatture collegate a questo sezionale. Il comando elimina è stato disattivato, eliminare le fatture per attivare il comando \"Elimina sezionale\".</div>\n";

View File

@ -337,11 +337,11 @@ class App
// Sostituzione dei sezionali
$sezionali = [
'|sezionale_uscita|' => $_SESSION['uscita']['id_sezionale'],
'|sezionale_entrata|' => $_SESSION['entrata']['id_sezionale'],
'|sezionale_uscita|' => $_SESSION['uscita']['idsezionale'],
'|sezionale_entrata|' => $_SESSION['entrata']['idsezionale'],
];
foreach ($sezionali as $key => $value) {
$query = str_replace($key, !empty($value) ? ' AND id_sezionale = '.prepare($value) : '', $query);
$query = str_replace($key, !empty($value) ? ' AND idsezionale = '.prepare($value) : '', $query);
}
return $query;

View File

@ -159,7 +159,7 @@ DELETE FROM `zz_settings` WHERE
-- SEZIONALI
-- Modifico co_documenti per aggiungere riferimento al sezionale
ALTER TABLE `co_documenti` ADD `id_sezionale` int(11) NOT NULL ;
ALTER TABLE `co_documenti` ADD `idsezionale` int(11) NOT NULL ;
-- Creo tabella sezionali
CREATE TABLE IF NOT EXISTS `co_sezionali` (
@ -174,12 +174,11 @@ 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, ''),
(2, 'Standard acquisti', '####', 'uscita', NULL,'');
(1, 'Standard vendite', '####/YY', 'entrata', NULL, '');
-- Collego le fatture esistenti al sezionale di default
UPDATE `co_documenti` SET `id_sezionale`='1' WHERE `idtipodocumento` IN (SELECT `id` FROM `co_tipidocumento` WHERE `co_tipidocumento`.`dir`='entrata');
UPDATE `co_documenti` SET `id_sezionale`='2' WHERE `idtipodocumento` IN (SELECT `id` FROM `co_tipidocumento` WHERE `co_tipidocumento`.`dir`='uscita');
UPDATE `co_documenti` SET `idsezionale`='1' WHERE `idtipodocumento` IN (SELECT `id` FROM `co_tipidocumento` WHERE `co_tipidocumento`.`dir`='entrata');
UPDATE `co_documenti` SET `idsezionale`='2' WHERE `idtipodocumento` IN (SELECT `id` FROM `co_tipidocumento` WHERE `co_tipidocumento`.`dir`='uscita');
-- Innesto modulo sezionali sotto "Contabilità"
INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES