Base per la separazione di sezionali e filtri dinamici

This commit is contained in:
Dasc3er 2020-11-06 20:39:03 +01:00
parent dcf69559b0
commit b0b4cd61a3
26 changed files with 86 additions and 39 deletions

View File

@ -73,7 +73,7 @@ if (!empty($options['create_document'])) {
// Opzioni aggiuntive per le Fatture // Opzioni aggiuntive per le Fatture
if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto'])) { if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto'])) {
if ($options['op'] == 'nota_accredito' && !empty($segmenti)) { if ($options['op'] == 'nota_accredito' && !empty($segmenti)) {
$segmento = $database->fetchOne("SELECT * FROM zz_segments WHERE predefined_accredito='1'"); $segmento = $database->fetchOne("SELECT * FROM co_sezionali WHERE predefined_accredito='1'");
$id_segment = $segmento['id']; $id_segment = $segmento['id'];
} else { } else {
@ -92,7 +92,7 @@ if (!empty($options['create_document'])) {
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='.prepare($final_module['id']).' ORDER BY name", "value": "'.$id_segment.'" ]} {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE id_module='.prepare($final_module['id']).' ORDER BY name", "value": "'.$id_segment.'" ]}
</div>'; </div>';
} }

View File

@ -71,7 +71,7 @@ if (!empty($type) && $type != 'menu' && $type != 'custom') {
echo ' echo '
<div class="row"> <div class="row">
<div class="col-md-4 pull-right"> <div class="col-md-4 pull-right">
{[ "type": "select", "name": "id_segment_", "required": 0, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module = '.prepare($id_module).'", "value": "'.$_SESSION['module_'.$id_module]['id_segment'].'" ]} {[ "type": "select", "name": "id_segment_", "required": 0, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE id_module = '.prepare($id_module).'", "value": "'.$_SESSION['module_'.$id_module]['id_segment'].'" ]}
</div> </div>
</div> </div>
<br>'; <br>';

View File

@ -119,7 +119,7 @@ $operations['crea_fattura'] = [
'text' => tr('Fattura documenti'), 'text' => tr('Fattura documenti'),
'data' => [ 'data' => [
'title' => tr('Vuoi davvero fatturare questi documenti?'), 'title' => tr('Vuoi davvero fatturare questi documenti?'),
'msg' => '{[ "type": "checkbox", "label": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]}<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module=\''.$id_fatture.'\' AND is_fiscale = 1 ORDER BY name", "value": "'.$id_segment.'" ]}', 'msg' => '{[ "type": "checkbox", "label": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]}<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE id_module=\''.$id_fatture.'\' AND is_fiscale = 1 ORDER BY name", "value": "'.$id_segment.'" ]}',
'button' => tr('Procedi'), 'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning', 'class' => 'btn btn-lg btn-warning',
'blank' => false, 'blank' => false,

View File

@ -147,7 +147,7 @@ $operations['crea_fattura'] = [
'data' => [ 'data' => [
'title' => tr('Vuoi davvero fatturare questi documenti?'), 'title' => tr('Vuoi davvero fatturare questi documenti?'),
'msg' => '{[ "type": "checkbox", "label": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]} 'msg' => '{[ "type": "checkbox", "label": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]}
<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module=\''.$id_fatture.'\' AND is_fiscale = 1 ORDER BY name", "value": "'.$id_segment.'" ]}', <br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE id_module=\''.$id_fatture.'\' AND is_fiscale = 1 ORDER BY name", "value": "'.$id_segment.'" ]}',
'button' => tr('Procedi'), 'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning', 'class' => 'btn btn-lg btn-warning',
'blank' => false, 'blank' => false,

View File

@ -793,7 +793,7 @@ switch (post('op')) {
// Nota di debito // Nota di debito
if (get('op') == 'nota_addebito') { if (get('op') == 'nota_addebito') {
$rs_segment = $dbo->fetchArray("SELECT * FROM zz_segments WHERE predefined_addebito='1'"); $rs_segment = $dbo->fetchArray("SELECT * FROM co_sezionali WHERE predefined_addebito='1'");
if (!empty($rs_segment)) { if (!empty($rs_segment)) {
$id_segment = $rs_segment[0]['id']; $id_segment = $rs_segment[0]['id'];
} else { } else {

View File

@ -69,7 +69,7 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : $user['idan
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
{[ "type": "select", "label": "<?php echo tr('Sezionale'); ?>", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='<?php echo $id_module; ?>' ORDER BY name", "value": "<?php echo $_SESSION['module_'.$id_module]['id_segment']; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Sezionale'); ?>", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE id_module='<?php echo $id_module; ?>' ORDER BY name", "value": "<?php echo $_SESSION['module_'.$id_module]['id_segment']; ?>" ]}
</div> </div>
</div> </div>

View File

@ -289,7 +289,7 @@ if (App::debug()) {
$operations['copy-bulk'] = [ $operations['copy-bulk'] = [
'text' => '<span><i class="fa fa-copy"></i> '.tr('Duplica selezionati').'</span>', 'text' => '<span><i class="fa fa-copy"></i> '.tr('Duplica selezionati').'</span>',
'data' => [ 'data' => [
'msg' => tr('Vuoi davvero duplicare le righe selezionate?').'<br><br>{[ "type": "select", "label": "'.tr('Fattura in avanti di').'", "name": "skip_time", "required": 1, "values": "list=\"Giorno\":\"'.tr('Un giorno').'\", \"Settimana\":\"'.tr('Una settimana').'\", \"Mese\":\"'.tr('Un mese').'\", \"Anno\":\"'.tr('Un anno').'\" ", "value": "Giorno" ]}<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='.$id_module.' ORDER BY name", "value": "'.$_SESSION['module_'.$id_module]['id_segment'].'" ]}<br>{[ "type": "checkbox", "placeholder": "'.tr('Aggiungere i riferimenti ai documenti esterni?').'", "name": "riferimenti" ]}', 'msg' => tr('Vuoi davvero duplicare le righe selezionate?').'<br><br>{[ "type": "select", "label": "'.tr('Fattura in avanti di').'", "name": "skip_time", "required": 1, "values": "list=\"Giorno\":\"'.tr('Un giorno').'\", \"Settimana\":\"'.tr('Una settimana').'\", \"Mese\":\"'.tr('Un mese').'\", \"Anno\":\"'.tr('Un anno').'\" ", "value": "Giorno" ]}<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE id_module='.$id_module.' ORDER BY name", "value": "'.$_SESSION['module_'.$id_module]['id_segment'].'" ]}<br>{[ "type": "checkbox", "placeholder": "'.tr('Aggiungere i riferimenti ai documenti esterni?').'", "name": "riferimenti" ]}',
'button' => tr('Procedi'), 'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning', 'class' => 'btn btn-lg btn-warning',
], ],

View File

@ -54,7 +54,7 @@ if ($dir == 'entrata') {
} }
if (empty($record['is_fiscale'])) { if (empty($record['is_fiscale'])) {
$msg = '<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module=\''.$id_module.'\' AND is_fiscale = 1 ORDER BY name" ]} $msg = '<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE id_module=\''.$id_module.'\' AND is_fiscale = 1 ORDER BY name" ]}
{[ "type": "date", "label": "'.tr('Data').'", "name": "data", "required": 1, "value": "-now-" ]}'; {[ "type": "date", "label": "'.tr('Data').'", "name": "data", "required": 1, "value": "-now-" ]}';
echo ' echo '

View File

@ -47,7 +47,7 @@ if (isset($id_record)) {
co_statidocumento.descrizione AS `stato`, co_statidocumento.descrizione AS `stato`,
co_tipidocumento.descrizione AS `descrizione_tipo`, co_tipidocumento.descrizione AS `descrizione_tipo`,
co_pagamenti.riba AS `riba`, co_pagamenti.riba AS `riba`,
(SELECT is_fiscale FROM zz_segments WHERE id = id_segment) AS is_fiscale, (SELECT is_fiscale FROM co_sezionali WHERE id = id_segment) AS is_fiscale,
(SELECT descrizione FROM co_ritenutaacconto WHERE id=idritenutaacconto) AS ritenutaacconto_desc, (SELECT descrizione FROM co_ritenutaacconto WHERE id=idritenutaacconto) AS ritenutaacconto_desc,
(SELECT descrizione FROM co_rivalse WHERE id=idrivalsainps) AS rivalsainps_desc, (SELECT descrizione FROM co_rivalse WHERE id=idrivalsainps) AS rivalsainps_desc,
(SELECT descrizione FROM dt_causalet WHERE id=idcausalet) AS causale_desc (SELECT descrizione FROM dt_causalet WHERE id=idcausalet) AS causale_desc

View File

@ -644,7 +644,7 @@ class Fattura extends Document
*/ */
public function isFiscale() public function isFiscale()
{ {
$result = database()->fetchOne('SELECT is_fiscale FROM zz_segments WHERE id ='.prepare($this->id_segment))['is_fiscale']; $result = database()->fetchOne('SELECT is_fiscale FROM co_sezionali WHERE id ='.prepare($this->id_segment))['is_fiscale'];
return $result; return $result;
} }

View File

@ -242,7 +242,7 @@ return [
'data' => [ 'data' => [
'title' => tr('Vuoi davvero generare le fatture per questi interventi?'), 'title' => tr('Vuoi davvero generare le fatture per questi interventi?'),
'msg' => tr('Verranno fatturati gli interventi completati non inseriti in preventivi e contratti').'.<br>{[ "type": "checkbox", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]} 'msg' => tr('Verranno fatturati gli interventi completati non inseriti in preventivi e contratti').'.<br>{[ "type": "checkbox", "placeholder": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "name": "accodare" ]}
<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module=\''.$id_fatture.'\' AND is_fiscale = 1 ORDER BY name", "value": "'.$id_segment.'" ]}', <br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE id_module=\''.$id_fatture.'\' AND is_fiscale = 1 ORDER BY name", "value": "'.$id_segment.'" ]}',
'button' => tr('Crea fatture'), 'button' => tr('Crea fatture'),
'class' => 'btn btn-lg btn-warning', 'class' => 'btn btn-lg btn-warning',
'blank' => false, 'blank' => false,

View File

@ -119,7 +119,7 @@ $operations['crea_fattura'] = [
'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura documenti'), 'text' => '<span><i class="fa fa-file-code-o"></i> '.tr('Fattura documenti'),
'data' => [ 'data' => [
'title' => tr('Vuoi davvero fatturare questi documenti?'), 'title' => tr('Vuoi davvero fatturare questi documenti?'),
'msg' => '{[ "type": "checkbox", "label": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "placeholder": "'.tr('Aggiungere alle fatture di vendita nello stato bozza?').'", "name": "accodare" ]}<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module=\''.$id_fatture.'\' AND is_fiscale = 1 ORDER BY name", "value": "'.$id_segment.'" ]}', 'msg' => '{[ "type": "checkbox", "label": "'.tr('Aggiungere alle fatture esistenti non ancora emesse?').'", "placeholder": "'.tr('Aggiungere alle fatture di vendita nello stato bozza?').'", "name": "accodare" ]}<br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE id_module=\''.$id_fatture.'\' AND is_fiscale = 1 ORDER BY name", "value": "'.$id_segment.'" ]}',
'button' => tr('Procedi'), 'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning', 'class' => 'btn btn-lg btn-warning',
'blank' => false, 'blank' => false,

View File

@ -30,20 +30,20 @@ switch (post('op')) {
} }
if ($predefined) { if ($predefined) {
$dbo->query('UPDATE zz_segments SET predefined = 0 WHERE id_module = '.prepare($module)); $dbo->query('UPDATE co_sezionali SET predefined = 0 WHERE id_module = '.prepare($module));
} }
$predefined_accredito = post('predefined_accredito'); $predefined_accredito = post('predefined_accredito');
if ($predefined_accredito) { if ($predefined_accredito) {
$dbo->query('UPDATE zz_segments SET predefined_accredito = 0 WHERE id_module = '.prepare($module)); $dbo->query('UPDATE co_sezionali SET predefined_accredito = 0 WHERE id_module = '.prepare($module));
} }
$predefined_addebito = post('predefined_addebito'); $predefined_addebito = post('predefined_addebito');
if ($predefined_addebito) { if ($predefined_addebito) {
$dbo->query('UPDATE zz_segments SET predefined_addebito = 0 WHERE id_module = '.prepare($module)); $dbo->query('UPDATE co_sezionali SET predefined_addebito = 0 WHERE id_module = '.prepare($module));
} }
$dbo->update('zz_segments', [ $dbo->update('co_sezionali', [
'id_module' => $module, 'id_module' => $module,
'name' => post('name'), 'name' => post('name'),
'clause' => $_POST['clause'], 'clause' => $_POST['clause'],
@ -70,10 +70,10 @@ switch (post('op')) {
} }
if ($predefined) { if ($predefined) {
$dbo->query('UPDATE zz_segments SET predefined = 0 WHERE id_module = '.prepare($module)); $dbo->query('UPDATE co_sezionali SET predefined = 0 WHERE id_module = '.prepare($module));
} }
$dbo->insert('zz_segments', [ $dbo->insert('co_sezionali', [
'id_module' => $module, 'id_module' => $module,
'name' => post('name'), 'name' => post('name'),
'clause' => '1=1', 'clause' => '1=1',
@ -89,7 +89,7 @@ switch (post('op')) {
break; break;
case 'delete': case 'delete':
$dbo->query('DELETE FROM zz_segments WHERE id='.prepare($id_record)); $dbo->query('DELETE FROM co_sezionali WHERE id='.prepare($id_record));
// TODO // TODO
// eliminare riferimento sulle fatture eventuali collegate a questo segmento? // eliminare riferimento sulle fatture eventuali collegate a questo segmento?

View File

@ -20,7 +20,7 @@
include_once __DIR__.'/../../core.php'; include_once __DIR__.'/../../core.php';
if (isset($id_record)) { if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT *, (SELECT options FROM zz_modules WHERE id = zz_segments.id_module) options, (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='.prepare($id_record)); $record = $dbo->fetchOne('SELECT *, (SELECT options FROM zz_modules WHERE id = co_sezionali.id_module) options, (SELECT name FROM zz_modules WHERE id = co_sezionali.id_module) AS modulo, (SELECT COUNT(t.id) FROM co_sezionali t WHERE t.id_module = co_sezionali.id_module) AS n_sezionali FROM co_sezionali WHERE id='.prepare($id_record));
$array = preg_match('/(?<=FROM)\s([^\s]+)\s/', $record['options'], $table); $array = preg_match('/(?<=FROM)\s([^\s]+)\s/', $record['options'], $table);
if (strpos($table[0], 'co_documenti') !== false) { if (strpos($table[0], 'co_documenti') !== false) {

View File

@ -34,7 +34,7 @@ echo '
if ($nome_stampa != 'Liquidazione IVA') { if ($nome_stampa != 'Liquidazione IVA') {
echo' echo'
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_sezionale", "required": "1", "values": "query=SELECT id AS id, name AS descrizione FROM zz_segments WHERE id_module = (SELECT id FROM zz_modules WHERE name = \''.(($dir == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto').'\') AND is_fiscale = 1 UNION SELECT 0 AS id, \'Tutti i sezionali\' AS descrizione" ]} {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_sezionale", "required": "1", "values": "query=SELECT id AS id, name AS descrizione FROM co_sezionali WHERE id_module = (SELECT id FROM zz_modules WHERE name = \''.(($dir == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto').'\') AND is_fiscale = 1 UNION SELECT 0 AS id, \'Tutti i sezionali\' AS descrizione" ]}
</div>'; </div>';
} }
echo' echo'

View File

@ -27,7 +27,7 @@ $end = filter('end');
switch (filter('op')) { switch (filter('op')) {
case 'fatturato': case 'fatturato':
$results = $dbo->fetchArray("SELECT ROUND(SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto), 2) AS result, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN zz_segments ON co_documenti.id_segment=zz_segments.id WHERE co_tipidocumento.dir='entrata' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' AND is_fiscale=1 GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC'); $results = $dbo->fetchArray("SELECT ROUND(SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto), 2) AS result, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN co_sezionali ON co_documenti.id_segment=co_sezionali.id WHERE co_tipidocumento.dir='entrata' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' AND is_fiscale=1 GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
$results = Stats::monthly($results, $start, $end); $results = Stats::monthly($results, $start, $end);
@ -40,7 +40,7 @@ switch (filter('op')) {
break; break;
case 'acquisti': case 'acquisti':
$results = $dbo->fetchArray("SELECT ROUND(SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto), 2) AS result, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN zz_segments ON co_documenti.id_segment=zz_segments.id WHERE co_tipidocumento.dir='uscita' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' AND is_fiscale=1 GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC'); $results = $dbo->fetchArray("SELECT ROUND(SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto), 2) AS result, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id INNER JOIN co_sezionali ON co_documenti.id_segment=co_sezionali.id WHERE co_tipidocumento.dir='uscita' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' AND is_fiscale=1 GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
$results = Stats::monthly($results, $start, $end); $results = Stats::monthly($results, $start, $end);

View File

@ -36,7 +36,7 @@ switch (filter('op')) {
], ['id' => $id_record]); ], ['id' => $id_record]);
//aggiorno anche il segmento //aggiorno anche il segmento
$dbo->update('zz_segments', [ $dbo->update('co_sezionali', [
'clause' => 'co_scadenziario.tipo="'.$nome.'"', 'clause' => 'co_scadenziario.tipo="'.$nome.'"',
'name' => 'Scadenzario '.$nome, 'name' => 'Scadenzario '.$nome,
], [ ], [
@ -72,7 +72,7 @@ switch (filter('op')) {
$id_record = $dbo->lastInsertedID(); $id_record = $dbo->lastInsertedID();
//Aggiungo anche il segmento //Aggiungo anche il segmento
$dbo->insert('zz_segments', [ $dbo->insert('co_sezionali', [
'id_module' => Modules::get('Scadenzario')['id'], 'id_module' => Modules::get('Scadenzario')['id'],
'name' => 'Scadenzario '.$nome, 'name' => 'Scadenzario '.$nome,
'clause' => 'co_scadenziario.tipo="'.$nome.'"', 'clause' => 'co_scadenziario.tipo="'.$nome.'"',

View File

@ -101,28 +101,47 @@ if (!empty($options) && $options != 'custom' && $options != 'menu') {
echo ' echo '
<div class="nav-tabs-custom"> <div class="nav-tabs-custom">
<ul class="nav nav-tabs nav-justified"> <ul class="nav nav-tabs nav-justified">
<li class="active"><a data-toggle="tab" href="#fields">'.tr('Campi').' <span class="badge">'.($dbo->fetchNum('SELECT * FROM zz_views WHERE id_module='.prepare($record['id']).' ORDER BY `order` ASC')).'</a></li> <li class="active"><a data-toggle="tab" href="#campi">
<li><a data-toggle="tab" href="#filters">'.tr('Filtri').' <span class="badge">'.($dbo->fetchNum('SELECT * FROM zz_group_module WHERE idmodule='.prepare($record['id']).' ORDER BY `id` ASC')).'</span></a></li> '.tr('Campi').'
<span class="badge">'.($dbo->fetchNum('SELECT * FROM zz_views WHERE id_module='.prepare($record['id']).' ORDER BY `order` ASC')).'</span>
</a></li>
<li><a data-toggle="tab" href="#filtri_gruppi">
'.tr('Filtri per gruppo').'
<span class="badge">'.($dbo->fetchNum('SELECT * FROM zz_group_module WHERE idmodule='.prepare($record['id']).' ORDER BY `id` ASC')).'</span>
</a></li>
<li><a data-toggle="tab" href="#filtri_dinamici">
'.tr('Filtri dinamici').'
<span class="badge">'.($dbo->fetchNum('SELECT * FROM zz_group_module WHERE idmodule='.prepare($record['id']).' ORDER BY `id` ASC')).'</span>
</a></li>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
<!-- CAMPI --> <!-- CAMPI -->
<div id="fields" class="tab-pane fade in active">'; <div id="campi" class="tab-pane fade in active">';
include $module->filepath('fields.php'); include $module->filepath('fields.php');
echo ' echo '
</div> </div>
<!-- FILTRI --> <!-- FILTRI STATICI PER GRUPPO -->
<div id="filters" class="tab-pane fade">'; <div id="filtri_gruppi" class="tab-pane fade">';
include $module->filepath('filters.php'); include $module->filepath('filters.php');
echo ' echo '
</div> </div>
<!-- FILTRI DINAMICI -->
<div id="filtri_dinamici" class="tab-pane fade">';
include $module->filepath('filters.php');
echo '
</div>
</div> </div>
</div>'; </div>';

View File

@ -205,7 +205,7 @@ echo '
// Sezionale // Sezionale
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE is_fiscale = 1 AND id_module='.$id_module.' ORDER BY name", "value": "'.$_SESSION['module_'.$id_module]['id_segment'].'" ]} {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE is_fiscale = 1 AND id_module='.$id_module.' ORDER BY name", "value": "'.$_SESSION['module_'.$id_module]['id_segment'].'" ]}
</div>'; </div>';
// Data di registrazione // Data di registrazione
@ -235,7 +235,7 @@ if (!empty($anagrafica)) {
{[ "type": "select", "label": "'.tr('Fattura collegata').'", "name": "ref_fattura", "required": 1, "values": "query='.$query.'" ]} {[ "type": "select", "label": "'.tr('Fattura collegata').'", "name": "ref_fattura", "required": 1, "values": "query='.$query.'" ]}
</div>'; </div>';
} elseif ($dati_generali['TipoDocumento'] == 'TD06') { } elseif ($dati_generali['TipoDocumento'] == 'TD06') {
$query .= "AND co_documenti.id_segment = (SELECT id FROM zz_segments WHERE name = 'Fatture pro-forma' AND id_module = ".prepare($id_module).')'; $query .= "AND co_documenti.id_segment = (SELECT id FROM co_sezionali WHERE name = 'Fatture pro-forma' AND id_module = ".prepare($id_module).')';
echo ' echo '
<div class="col-md-3"> <div class="col-md-3">

View File

@ -57,7 +57,7 @@ echo '
// Sezionale // Sezionale
echo ' echo '
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='.$module_fattura['id'].' ORDER BY name", "value":"'.$_SESSION['module_'.$module_fattura['id']]['id_segment'].'" ]} {[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM co_sezionali WHERE id_module='.$module_fattura['id'].' ORDER BY name", "value":"'.$_SESSION['module_'.$module_fattura['id']]['id_segment'].'" ]}
</div> </div>
</div>'; </div>';

View File

@ -183,7 +183,7 @@ class Modules
if (!isset(self::$segments[$module])) { if (!isset(self::$segments[$module])) {
$database = database(); $database = database();
self::$segments[$module] = $database->fetchArray('SELECT * FROM `zz_segments` WHERE `id_module` = '.prepare($module).' ORDER BY `predefined` DESC, `id` ASC'); self::$segments[$module] = $database->fetchArray('SELECT * FROM `co_sezionali` WHERE `id_module` = '.prepare($module).' ORDER BY `predefined` DESC, `id` ASC');
} }
return (array) self::$segments[$module]; return (array) self::$segments[$module];

View File

@ -187,7 +187,7 @@ class Generator
{ {
$database = database(); $database = database();
$maschera = $database->fetchOne('SELECT pattern FROM zz_segments WHERE id = :id_segment', [ $maschera = $database->fetchOne('SELECT pattern FROM co_sezionali WHERE id = :id_segment', [
':id_segment' => $id_segment, ':id_segment' => $id_segment,
]); ]);

View File

@ -36,7 +36,7 @@ $record = $dbo->fetchOne('SELECT *,
(SELECT descrizione FROM dt_spedizione WHERE id=idspedizione) AS spedizione, (SELECT descrizione FROM dt_spedizione WHERE id=idspedizione) AS spedizione,
(SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idvettore) AS vettore, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idvettore) AS vettore,
(SELECT id FROM co_banche WHERE id = id_banca_azienda) AS id_banca, (SELECT id FROM co_banche WHERE id = id_banca_azienda) AS id_banca,
(SELECT is_fiscale FROM zz_segments WHERE id = id_segment) AS is_fiscale (SELECT is_fiscale FROM co_sezionali WHERE id = id_segment) AS is_fiscale
FROM co_documenti WHERE id='.prepare($id_record)); FROM co_documenti WHERE id='.prepare($id_record));
$record['rivalsainps'] = floatval($record['rivalsainps']); $record['rivalsainps'] = floatval($record['rivalsainps']);

View File

@ -22,7 +22,7 @@ include_once __DIR__.'/../../core.php';
$dir = $_GET['dir']; $dir = $_GET['dir'];
$id_sezionale = filter('id_sezionale'); $id_sezionale = filter('id_sezionale');
$sezionale = $dbo->fetchOne('SELECT name FROM zz_segments WHERE id = '.$id_sezionale)['name']; $sezionale = $dbo->fetchOne('SELECT name FROM co_sezionali WHERE id = '.$id_sezionale)['name'];
$date_start = filter('date_start'); $date_start = filter('date_start');
$date_end = filter('date_end'); $date_end = filter('date_end');

View File

@ -36,3 +36,30 @@ UPDATE `co_righe_documenti` INNER JOIN `in_righe_interventi` ON `co_righe_docume
-- Collegamento Righe -- Collegamento Righe
UPDATE `co_righe_documenti` INNER JOIN `in_righe_interventi` ON `co_righe_documenti`.`idintervento` = `in_righe_interventi`.`idintervento` AND `co_righe_documenti`.`descrizione` = `in_righe_interventi`.`descrizione` AND `co_righe_documenti`.`idarticolo` = `in_righe_interventi`.`idarticolo` SET `co_righe_documenti`.`original_id` = `in_righe_interventi`.`id`, `co_righe_documenti`.`original_type` = 'Modules\\Interventi\\Components\\Riga' WHERE `co_righe_documenti`.`original_id` IS NULL AND `co_righe_documenti`.`original_type` IS NULL; UPDATE `co_righe_documenti` INNER JOIN `in_righe_interventi` ON `co_righe_documenti`.`idintervento` = `in_righe_interventi`.`idintervento` AND `co_righe_documenti`.`descrizione` = `in_righe_interventi`.`descrizione` AND `co_righe_documenti`.`idarticolo` = `in_righe_interventi`.`idarticolo` SET `co_righe_documenti`.`original_id` = `in_righe_interventi`.`id`, `co_righe_documenti`.`original_type` = 'Modules\\Interventi\\Components\\Riga' WHERE `co_righe_documenti`.`original_id` IS NULL AND `co_righe_documenti`.`original_type` IS NULL;
-- Gestione della separazione tra segmenti (filtri dinamici) e sezionali (caratteristiche delle Fatture)
CREATE TABLE `zz_filters` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_module` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`clause` TEXT NOT NULL,
`position` enum('WHR','HVN') NOT NULL DEFAULT 'WHR',
`note` TEXT,
PRIMARY KEY (`id`),
FOREIGN KEY (`id_module`) REFERENCES `zz_modules`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `zz_filters` (`id_module`, `name`, `clause`, `position`) VALUES
(18, 'Scadenzario totale', 'ABS(`co_scadenziario`.`pagato`) < ABS(`co_scadenziario`.`da_pagare`)', 'WHR'),
(18, 'Scadenzario clienti', '((SELECT dir FROM co_tipidocumento WHERE co_tipidocumento.id=co_documenti.idtipodocumento)=''entrata'') AND ABS(`co_scadenziario`.`pagato`) < ABS(`co_scadenziario`.`da_pagare`)', 'WHR'),
(18, 'Scadenzario fornitori', '((SELECT dir FROM co_tipidocumento WHERE co_tipidocumento.id=co_documenti.idtipodocumento)=''uscita'') AND ABS(`co_scadenziario`.`pagato`) < ABS(`co_scadenziario`.`da_pagare`)', 'WHR'),
(18, 'Scadenzario Ri.Ba.', 'co_pagamenti.riba=1', 'WHR'),
(18, 'Scadenzario generico', 'co_scadenziario.tipo=\"generico\"', 'WHR'),
(18, 'Scadenzario F24', 'co_scadenziario.tipo=\"f24\"', 'WHR'),
(18, 'Scadenziaro completo', '(`co_scadenziario`.`scadenza` BETWEEN ''|period_start|'' AND ''|period_end|'' )', 'WHR'),
(3, 'Tutti', '1=1', 'WHR'),
(3, 'Attività', 'orario_inizio BETWEEN ''|period_start|'' AND ''|period_end|'' OR orario_fine BETWEEN ''|period_start|'' AND ''|period_end|''', 'WHR'),
(3, 'Promemoria', '((in_interventi_tecnici.orario_inizio=''0000-00-00 00:00:00'' AND in_interventi_tecnici.orario_fine=''0000-00-00 00:00:00'') OR in_interventi_tecnici.id IS NULL)', 'WHR');
DELETE FROM `zz_segments` WHERE `id` IN (4, 5, 6, 7, 8, 9, 11, 12, 13, 14);
ALTER TABLE `zz_segments` RENAME `co_sezionali`;

View File

@ -119,7 +119,8 @@ return [
'zz_permissions', 'zz_permissions',
'zz_plugins', 'zz_plugins',
'zz_prints', 'zz_prints',
'zz_segments', 'co_sezionali',
'zz_filters',
'zz_semaphores', 'zz_semaphores',
'zz_settings', 'zz_settings',
'zz_tasks', 'zz_tasks',