Base per la separazione di sezionali e filtri dinamici
This commit is contained in:
parent
dcf69559b0
commit
b0b4cd61a3
|
@ -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>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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>';
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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>
|
||||||
|
|
||||||
|
|
|
@ -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',
|
||||||
],
|
],
|
||||||
|
|
|
@ -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 '
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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?
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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.'"',
|
||||||
|
|
|
@ -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>';
|
||||||
|
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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>';
|
||||||
|
|
||||||
|
|
|
@ -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];
|
||||||
|
|
|
@ -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,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
@ -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']);
|
||||||
|
|
|
@ -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');
|
||||||
|
|
|
@ -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`;
|
||||||
|
|
|
@ -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',
|
||||||
|
|
Loading…
Reference in New Issue