Rivista struttura 'sezionali' e convertita in 'segmenti' per una maggiore flessibilità

This commit is contained in:
Luca 2018-03-21 16:57:31 +01:00
parent 43cbb7471e
commit 8f8b4b3b18
15 changed files with 159 additions and 159 deletions

View File

@ -176,9 +176,9 @@ if (!API::isAPIRequest()) {
$_SESSION['period_end'] = date('Y').'-12-31';
}
// Impostazione automatica dei sezionali
(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 automatica dei segments
(empty($_SESSION[14]['id_segment'])) ? $_SESSION[14]['id_segment'] = get_var('Sezionale predefinito fatture di vendita') : '';
(empty($_SESSION[15]['id_segment'])) ? $_SESSION[15]['id_segment'] = get_var('Sezionale predefinito fatture di acquisto'): '';
// Impostazione del tema grafico di default

View File

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

View File

@ -35,7 +35,7 @@ if ($module['name'] == 'Fatture di vendita') {
</div>
<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 $_SESSION[$dir]['idsezionale']; ?>", "extra": "" ]}
{[ "type": "select", "label": "<?php echo tr('Sezionale'); ?>", "name": "id_segment", "required": 1, "class": "", "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='<?php echo $id_module; ?>' ORDER BY name", "value": "<?php echo $_SESSION[$id_module]['id_segment']; ?>", "extra": "" ]}
</div>
</div>

View File

@ -4,19 +4,19 @@
/*deve sempre essere impostato almeno un sezionale
if (isset($_SESSION[$dir]['idsezionale'])){
$idsezionale = $_SESSION[$dir]['idsezionale'];
if (isset($_SESSION[$id_module]['id_segment'])){
$id_segment = $_SESSION[$id_module]['id_segment'];
}
else{
if ($dir=='entrata')
(!empty($_SESSION[$dir]['idsezionale'])) ? $idsezionale = $_SESSION[$dir]['idsezionale'] :$idsezionale = get_var("Sezionale predefinito fatture di vendita");
if ($id_module=='14')
(!empty($_SESSION[$id_module]['id_segment'])) ? $id_segment = $_SESSION[$id_module]['id_segment'] :$id_segment = get_var("Sezionale predefinito fatture di vendita");
if ($dir=='uscita')
$idsezionale = get_var('Sezionale predefinito fatture di acquisto');
if ($id_module=='15')
$id_segment = get_var('Sezionale predefinito fatture di acquisto');
$_SESSION[$dir]['idsezionale'] = $idsezionale;
$_SESSION[$id_module]['id_segment'] = $id_segment;
}
*/
@ -26,7 +26,7 @@
<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": "" ]}
{[ "type": "select", "label": "Sezionale", "name": "idsezionale_", "required": 0, "class": "", "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module = '<?php echo $id_module; ?>'", "value": "<?php echo $_SESSION[$id_module]['id_segment']; ?>", "extra": "" ]}
</div>
</div>
@ -35,13 +35,11 @@
$(document).ready(function () {
$("#idsezionale_").on("change", function(){
//alert ('<?php echo $dir; ?>');
if ($(this).val()<1){
session_set('<?php echo $dir; ?>,idsezionale', '', 1, 1);
session_set('<?php echo $id_module; ?>,id_segment', '', 1, 1);
}else{
session_set('<?php echo $dir; ?>,idsezionale', $(this).val(), 0, 1);
session_set('<?php echo $id_module; ?>,id_segment', $(this).val(), 0, 1);
}
});

View File

@ -24,12 +24,12 @@ function get_new_numerosecondariofattura($data)
global $dbo;
global $dir;
global $idtipodocumento;
global $idsezionale;
global $id_segment;
// recupero maschera per questo sezionale
$rs_maschera = $dbo->fetchArray("SELECT maschera FROM co_sezionali WHERE id='".$idsezionale."'");
// recupero maschera per questo segmento
$rs_maschera = $dbo->fetchArray("SELECT pattern FROM zz_segments WHERE id = '".$id_segment."'");
// esempio: ####/YY
$maschera = $rs_maschera[0]['maschera'];
$maschera = $rs_maschera[0]['pattern'];
// estraggo blocchi di caratteri standard da sostituire
preg_match('/[#]+/', $maschera, $m1 );
@ -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 idsezionale='".$idsezionale."' ";
$query = "SELECT numero_esterno FROM co_documenti WHERE DATE_FORMAT(data,'%Y')='".$anno."' AND id_segment='".$id_segment."' ";
// 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 $idsezionale."<br>";
/*echo $id_segment."<br>";
echo $query."<br>";
echo $rs_ultima_fattura[0]['numero_esterno']."<br>";
echo $maschera."<br>";

View File

@ -0,0 +1,48 @@
<?php
include_once __DIR__.'/../../core.php';
switch (post('op')) {
case 'update':
$name = post('name');
$category = post('category');
(strpos(post('pattern'), '#') !== false) ? $pattern = post('pattern') : $maschera = '####';
$id_module_ = post('id_module_');
$note = post('note');
$query = "UPDATE zz_segments SET name=\"$name\", category=\"$category\", pattern=\"$pattern\", id_module=\"$id_module_\", note=\"$note\" WHERE id=\"$id_record\"";
$rs = $dbo->query($query);
$_SESSION['infos'][] = tr('Modifiche salvate correttamente.');
break;
case 'add':
$name = post('name');
$category = post('category');
(strpos(post('pattern'), '#') !== false) ? $pattern = post('pattern') : $pattern = '####';
$id_module_ = post('id_module_');
$note = post('note');
$dbo->query("INSERT INTO zz_segments( name, category, pattern, id_module, note ) VALUES ( \"$name\", \"$category\", \"$pattern\", \"$id_module_\", \"$note\" )");
$id_record = $dbo->last_inserted_id();
$_SESSION['infos'][] = tr('Nuovo segmento aggiunto.');
break;
case 'delete':
$query = "DELETE FROM zz_segments WHERE id=\"$id_record\"";
$rs = $dbo->query($query);
// TODO
// eliminare riferimento sulle fatture eventuali collegate a questo segmento?
$_SESSION['infos'][] = tr('Segmento eliminato.');
break;
}

41
modules/segmenti/add.php Normal file
View File

@ -0,0 +1,41 @@
<form action="" method="post" id="add-form">
<input type="hidden" name="op" value="add">
<input type="hidden" name="backto" value="record-edit">
<div class="row">
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "required": 1, "class": "", "value": "$name$", "extra": "" ]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Categoria'); ?>", "name": "category", "required": 1, "class": "", "value": "$category$", "extra": "" ]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Maschera'); ?>", "name": "pattern", "required": 1, "class": "alphanumeric-mask", "value": "$pattern$", "maxlength": 25, "placeholder":"####/YY", "extra": "" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Modulo'); ?>", "name": "id_module_", "required": 1, "class": "", "values": "list=\"14\": \"Fatture di vendita\", \"15\": \"Fatture di acquisto\"", "value": "$id_module$", "extra": "" ]}
</div>
</div>
<div class="row">
<div class="col-md-12">
{[ "type": "textarea", "label": "Note", "name": "note", "required": 0, "class": "", "value": "", "extra": "" ]}
</div>
</div>
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> Inserisci</button>
<div class="clearfix"></div>
</form>
<!--script>
$(document).ready( function(){
start_jquerychosen();
});
</script-->

View File

@ -6,23 +6,29 @@
<!-- DATI ARTICOLO -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title"><?php echo tr('Sezionale'); ?></h3>
<h3 class="panel-title"><?php echo tr('Segmento'); ?></h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": 1, "class": "", "value": "$nome$", "extra": "" ]}
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "name", "required": 1, "class": "", "value": "$name$", "extra": "" ]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Maschera'); ?>", "name": "maschera", "required": 1, "class": "alphanumeric-mask", "value": "$maschera$", "maxlength": 25, "placeholder":"####/YY", "extra": "" ]}
{[ "type": "text", "label": "<?php echo tr('Categoria'); ?>", "name": "category", "required": 1, "class": "", "value": "$category$", "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": "<?php echo ($records[0]['n_sezionali']<2) ? 'readonly' : ''; ?>" ]}
{[ "type": "text", "label": "<?php echo tr('Maschera'); ?>", "name": "pattern", "required": 1, "class": "alphanumeric-mask", "value": "$pattern$", "maxlength": 25, "placeholder":"####/YY", "extra": "" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Magazzino'); ?>", "name": "idautomezzo", "required": 0, "class": "", "values": "query=SELECT id, nome AS descrizione FROM dt_automezzi", "value": "$idautomezzo$", "extra": "" ]}
{[ "type": "select", "label": "<?php echo tr('Modulo'); ?>", "name": "id_module_", "required": 1, "class": "", "values": "list=\"14\": \"Fatture di vendita\", \"15\": \"Fatture di acquisto\"", "value": "$id_module$", "extra": "<?php echo ($records[0]['n_sezionali']<2) ? 'readonly' : ''; ?>" ]}
</div>
</div>
<div class="row">
@ -63,14 +69,15 @@
<?php
$fatture = $dbo->fetchArray('SELECT COUNT(*) AS tot_fatture FROM co_documenti WHERE idsezionale='.prepare($id_record));
$fatture = $dbo->fetchArray('SELECT COUNT(*) AS tot_fatture FROM co_documenti WHERE id_segment='.prepare($id_record));
$tot_fatture = $fatture[0]['tot_fatture'];
if ($tot_fatture > 0) {
echo "<div class='alert alert-danger' style='margin:0px;'>";
echo tr("Ci sono _TOT_ fatture collegate a questo sezionale. Il comando elimina è stato disattivato, eliminare le fatture per attivare il comando 'Elimina sezionale'.", [
'_TOT_' => $tot_fatture,
echo tr("Ci sono _TOT_ fatture collegate a questo segmento del modulo '_MODULO_'. Il comando elimina è stato disattivato, eliminare le fatture per attivare il comando 'Elimina segmento'.", [
'_TOT_' => $tot_fatture,
'_MODULO_' => $records[0]['modulo'],
]);
echo "</div>";
@ -81,8 +88,8 @@
echo "<div class='alert alert-danger' style='margin:0px;'>";
echo tr("Questo è l'unico sezionale per i documenti in '_DIR_'. Il comando elimina è stato disattivato.", [
'_DIR_' => $records[0]['dir'],
echo tr("Questo è l'unico segmento per il modulo '_MODULO_'. Il comando elimina è stato disattivato.", [
'_MODULO_' => $records[0]['modulo'],
]);
echo "</div>";
@ -93,7 +100,7 @@
<input type="hidden" name="backto" value="record-list">
<input type="hidden" name="op" value="delete">
<input type="hidden" name="id_record" value="<?php echo $id_record; ?>">
<button type="button" class="btn-link" onclick="if( confirm('Eliminare questo Sezionale?') ){ $('#form-delete').submit(); }"><span class="text-danger"><i class="fa fa-trash-o"></i> Elimina sezionale</span></button>
<button type="button" class="btn-link" onclick="if( confirm('Eliminare questo segmento?') ){ $('#form-delete').submit(); }"><span class="text-danger"><i class="fa fa-trash-o"></i> Elimina segmento</span></button>
</form>
<?php
}

View File

@ -0,0 +1,5 @@
<?php
if ($docroot == '') {
die(_('Accesso negato!'));
}
$records = $dbo->fetchArray("SELECT *, (SELECT name FROM zz_modules WHERE id = zz_segments.id_module) AS modulo, (SELECT COUNT(t.id) FROM zz_segments t WHERE t.id_module = zz_segments.id_module) AS n_sezionali FROM zz_segments WHERE id='$id_record'");

View File

@ -1,48 +0,0 @@
<?php
include_once __DIR__.'/../../core.php';
switch (post('op')) {
case 'update':
$nome = post('nome');
(strpos(post('maschera'), '#') !== false) ? $maschera = post('maschera') : $maschera = '##';
$dir = post('dir');
$idautomezzo = post('idautomezzo');
$note = post('note');
$query = "UPDATE co_sezionali SET nome=\"$nome\", maschera=\"$maschera\", dir=\"$dir\", idautomezzo=\"$idautomezzo\", note=\"$note\" WHERE id=\"$id_record\"";
$rs = $dbo->query($query);
$_SESSION['infos'][] = tr('Modifiche salvate correttamente.');
break;
case 'add':
$nome = post('nome');
(strpos(post('maschera'), '#') !== false) ? $maschera = post('maschera') : $maschera = '##';
$dir = post('dir');
$idautomezzo = post('idautomezzo');
$note = post('note');
$dbo->query("INSERT INTO co_sezionali( nome, maschera, dir, idautomezzo, note ) VALUES ( \"$nome\", \"$maschera\", \"$dir\", \"$idautomezzo\", \"$note\" )");
$id_record = $dbo->last_inserted_id();
$_SESSION['infos'][] = tr('Nuovo sezionale aggiunto.');
break;
case 'delete':
$query = "DELETE FROM co_sezionali WHERE id=\"$id_record\"";
$rs = $dbo->query($query);
// TODO
// eliminare riferimento sulle fatture eventuali collegate a questo sezionale?
$_SESSION['infos'][] = tr('Sezionale eliminato.');
break;
}

View File

@ -1,47 +0,0 @@
<form action="" method="post" id="add-form">
<input type="hidden" name="op" value="add">
<input type="hidden" name="backto" value="record-edit">
<div class="row">
<div class="col-md-6">
{[ "type": "text", "label": "Inserisci un nome per questo sezionale:", "name": "nome", "required": 1, "class": "", "value": "", "extra": "" ]}
</div>
<div class="col-md-6">
{[ "type": "text", "label": "Maschera", "name": "maschera", "required": 1, "class": "alphanumeric-mask", "value": "", "maxlength": 25, "placeholder":"####/YY", "extra": "" ]}
</div>
</div>
<div class="row">
<div class="col-md-6">
{[ "type": "select", "label": "Documenti", "name": "dir", "required": 1, "class": "", "values": "list=\"entrata\": \"Documenti di vendita\", \"uscita\": \"Documenti di acquisto\"", "value": "", "extra": "" ]}
</div>
<div class="col-md-6">
{[ "type": "select", "label": "Magazzino", "name": "idautomezzo", "required": 0, "class": "", "values": "query=SELECT id, nome AS descrizione FROM dt_automezzi", "value": "", "extra": "" ]}
</div>
</div>
<div class="row">
<div class="col-md-12">
{[ "type": "textarea", "label": "Note", "name": "note", "required": 0, "class": "", "value": "", "extra": "" ]}
</div>
</div>
<button type="submit" class="btn btn-primary pull-right"><i class="fa fa-plus"></i> Inserisci</button>
<div class="clearfix"></div>
</form>
<!--script>
$(document).ready( function(){
start_jquerychosen();
});
</script-->

View File

@ -1,5 +0,0 @@
<?php
if ($docroot == '') {
die(_('Accesso negato!'));
}
$records = $dbo->fetchArray("SELECT *, (SELECT COUNT(t.id) FROM co_sezionali t WHERE t.dir = co_sezionali.dir) AS n_sezionali FROM co_sezionali WHERE id='$id_record'");

View File

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

View File

@ -157,37 +157,38 @@ DELETE FROM `zz_settings` WHERE
(`nome` = 'Password SMTP') OR
(`nome` = 'Sicurezza SMTP');
-- SEZIONALI
-- Modifico co_documenti per aggiungere riferimento al sezionale
ALTER TABLE `co_documenti` ADD `idsezionale` int(11) NOT NULL ;
-- SEGNENTI
-- Modifico co_documenti per aggiungere riferimento al segmento
ALTER TABLE `co_documenti` ADD `id_segment` int(11) NOT NULL ;
-- Creo tabella sezionali
CREATE TABLE IF NOT EXISTS `co_sezionali` (
-- Creo tabella segmenti
CREATE TABLE IF NOT EXISTS `zz_segments` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(255) NOT NULL,
`maschera` varchar(255) NOT NULL,
`dir` varchar(50) NOT NULL,
`idautomezzo` int(11) NULL ,
`id_module` int(11) NOT NULL,
`category` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`pattern` varchar(255) NOT NULL,
`note` text NOT NULL,
PRIMARY KEY (`id`)
);
-- Popolo con i sezionali di default
INSERT INTO `co_sezionali` (`id`, `nome`, `maschera`, `dir`, `idautomezzo`, `note`) VALUES
(1, 'Standard vendite', '####/YY', 'entrata', NULL, '');
-- Popolo con i segmenti di default
INSERT INTO `zz_segments` (`id`, `id_module`, `category`, `name`, `pattern`,`note`) VALUES
(1, 14, 'Fatture', 'Standard vendite', '####/YY', ''),
(2, 15, 'Fatture', 'Standard acquisti', '####', '');
-- Collego le fatture esistenti al sezionale di default
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');
-- Collego le fatture esistenti al segmento di default
UPDATE `co_documenti` SET `id_segment`='1' WHERE `idtipodocumento` IN (SELECT `id` FROM `co_tipidocumento` WHERE `co_tipidocumento`.`dir`='entrata');
UPDATE `co_documenti` SET `id_segment`='2' WHERE `idtipodocumento` IN (SELECT `id` FROM `co_tipidocumento` WHERE `co_tipidocumento`.`dir`='uscita');
-- Innesto modulo sezionali sotto "Contabilità"
-- Innesto modulo segmenti sotto "Strumenti"
INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES
(NULL, 'Sezionali', 'Sezionali', 'sezionali', '{ "main_query": [ { "type": "table", "fields": "Tipo documenti, Nome, Maschera, Magazzino, Note", "query": "SELECT `id`, `nome` AS `Nome`, `maschera` AS `Maschera`, (SELECT nome FROM dt_automezzi WHERE dt_automezzi.id = idautomezzo) AS Magazzino, IF(`dir`=''entrata'', ''Documenti di vendita'', ''Documenti di acquisto'') AS `Tipo documenti`, `note` AS `Note` FROM `co_sezionali` HAVING 2=2 ORDER BY `Tipo documenti`, `Nome`"} ]}', '', 'fa fa-database', '2.4', '2.4', 1, 12, 1, 1);
(NULL, 'Segmenti', 'Segmenti', 'segmenti', '{ "main_query": [ { "type": "table", "fields": "Modulo, Categoria, Nome, Maschera, Note", "query": "SELECT `id`, `category` AS `Categoria`, `name` AS `Nome`, (SELECT name FROM zz_modules WHERE id = zz_segments.id_module) AS Modulo, `pattern` AS `Maschera`, `note` AS `Note` FROM `zz_segments` HAVING 2=2 ORDER BY name, id_module"} ]}', '', 'fa fa-database', '2.4', '2.4', 1, 36, 1, 1);
-- Aggiungo impostazione predefinita
INSERT INTO `zz_settings` (`idimpostazione`, `nome`, `valore`, `tipo`, `editable`, `sezione`) VALUES
(NULL, 'Sezionale predefinito fatture di vendita', '1', 'query=SELECT id, CONCAT(nome, '': '', maschera) AS descrizione FROM co_sezionali WHERE dir=''entrata'' ORDER BY nome', 1, 'Fatturazione'),
(NULL, 'Sezionale predefinito fatture di acquisto', '2', 'query=SELECT id, CONCAT(nome, '': '', maschera) AS descrizione FROM co_sezionali WHERE dir=''uscita'' ORDER BY nome', 1, 'Fatturazione');
(NULL, 'Sezionale predefinito fatture di vendita', '1', 'query=SELECT id, CONCAT(name, '': '', pattern) AS descrizione FROM zz_segments WHERE id_module = 14 ORDER BY name', 1, 'Fatturazione'),
(NULL, 'Sezionale predefinito fatture di acquisto', '2', 'query=SELECT id, CONCAT(name, '': '', pattern) AS descrizione FROM zz_segments WHERE id_module = 15 ORDER BY name', 1, 'Fatturazione');
-- Aggiorno widget Fatturato con i sezionali
UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS(" ", REPLACE(REPLACE(REPLACE(FORMAT(SUM((SELECT SUM(subtotale+iva-sconto) FROM co_righe_documenti WHERE iddocumento=co_documenti.id)+iva_rivalsainps+rivalsainps+bollo-ritenutaacconto), 2), ",", "#"), ".", ","), "#", "."), "&euro;") AS dato FROM co_documenti WHERE idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir="entrata") |sezionale_entrata| AND data >= "|period_start|" AND data <= "|period_end|" AND 1=1' WHERE `zz_widgets`.`name` = 'Fatturato';