1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2024-12-23 22:03:18 +01:00

Migliorie modulo listini clienti

This commit is contained in:
MatteoPistorello 2022-11-28 14:50:21 +01:00
parent 4a1c2a8113
commit 9b04b5a05b
7 changed files with 164 additions and 29 deletions

View File

@ -554,6 +554,7 @@ function aggiornaPrezzoArticolo(aggiorna = "") {
}
$("#prezzo_unitario").val(prezzo_previsto).trigger("change");
$("#sconto").val(0).trigger("change");
// Aggiornamento automatico di guadagno e margine
if (direzione === "entrata") {

View File

@ -149,7 +149,7 @@ switch ($resource) {
FROM mg_listini
LEFT JOIN mg_listini_articoli ON mg_listini.id=mg_listini_articoli.id_listino
LEFT JOIN an_anagrafiche ON mg_listini.id=an_anagrafiche.id_listino
WHERE mg_listini.data_attivazione<=NOW() AND mg_listini_articoli.data_scadenza>=NOW() AND id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($direzione).' |where|';
WHERE mg_listini.data_attivazione<=NOW() AND mg_listini_articoli.data_scadenza>=NOW() AND mg_listini.attivo=1 AND id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($direzione).' |where|';
$query_anagrafica = replace($query, [
'|where|' => ' AND idanagrafica = '.prepare($id_anagrafica),
]);
@ -160,7 +160,7 @@ switch ($resource) {
'.($prezzi_ivati ? 'prezzo_unitario_ivato' : 'prezzo_unitario').' AS prezzo_unitario_listino_visibile
FROM mg_listini
LEFT JOIN mg_listini_articoli ON mg_listini.id=mg_listini_articoli.id_listino
WHERE mg_listini.is_sempre_visibile=1 AND id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($direzione);
WHERE mg_listini.data_attivazione<=NOW() AND mg_listini_articoli.data_scadenza>=NOW() AND mg_listini.attivo=1 AND mg_listini.is_sempre_visibile=1 AND id_articolo = '.prepare($id_articolo).' AND dir = '.prepare($direzione);
$listini_sempre_visibili = $database->fetchArray($query);
// Prezzi scheda articolo

View File

@ -29,6 +29,7 @@ switch (filter('op')) {
$listino->data_attivazione = post('data_attivazione') ?: null;
$listino->data_scadenza_predefinita = post('data_scadenza_predefinita') ?: null;
$listino->is_sempre_visibile = post('is_sempre_visibile');
$listino->attivo = post('attivo');
$listino->note = post('note');
$listino->save();
@ -41,6 +42,7 @@ switch (filter('op')) {
$listino->data_attivazione = post('data_attivazione') ?: null;
$listino->data_scadenza_predefinita = post('data_scadenza_predefinita') ?: null;
$listino->is_sempre_visibile = post('is_sempre_visibile');
$listino->attivo = post('attivo');
$listino->note = post('note');
$listino->save();
@ -72,10 +74,14 @@ switch (filter('op')) {
break;
case 'delete_articolo':
$articolo_listino = Articolo::find(post('id'));
$articolo_listino->delete();
$id_righe = (array)post('id');
foreach ($id_righe as $id_riga) {
$articolo_listino = Articolo::find($id_riga);
$articolo_listino->delete();
}
flash()->info(tr('Articolo del listino eliminato correttamente!'));
flash()->info(tr('Articoli del listino eliminati correttamente!'));
break;

View File

@ -25,7 +25,7 @@ echo '
<input type="hidden" name="backto" value="record-edit">
<div class="row">
<div class="col-md-4">
<div class="col-md-6">
{[ "type":"text", "label":"'.tr('Nome').'", "name":"nome", "required":"1" ]}
</div>
@ -36,9 +36,15 @@ echo '
<div class="col-md-3">
{[ "type":"date", "label":"'.tr('Data scadenza default').'", "name":"data_scadenza_predefinita" ]}
</div>
</div>
<div class="row">
<div class="col-md-6">
{[ "type":"checkbox", "label":"'.tr('Sempre visibile').'", "name":"is_sempre_visibile", "help": "'.tr('Se impostato il valore sarà sempre visibile sull\'articolo se il listino è attivo e la data di scadenza è ancora valida').'" ]}
</div>
<div class="col-md-2">
{[ "type":"checkbox", "label":"'.tr('Sempre visibile').'", "name":"is_sempre_visibile", "help": "'.tr('Se attivo il valore sarà visibile sull\'articolo').'" ]}
<div class="col-md-6">
{[ "type":"checkbox", "label":"'.tr('Attivo').'", "name":"attivo", "value": "1" ]}
</div>
</div>

View File

@ -31,7 +31,7 @@ echo '
<div class="panel-body">
<div class="row">
<div class="col-md-4">
<div class="col-md-6">
{[ "type":"text", "label":"'.tr('Nome').'", "name":"nome", "value":"$nome$", "required":"1" ]}
</div>
@ -42,9 +42,15 @@ echo '
<div class="col-md-3">
{[ "type":"date", "label":"'.tr('Data scadenza default').'", "name":"data_scadenza_predefinita", "value":"$data_scadenza_predefinita$" ]}
</div>
</div>
<div class="row">
<div class="col-md-6">
{[ "type":"checkbox", "label":"'.tr('Sempre visibile').'", "name":"is_sempre_visibile", "value":"$is_sempre_visibile$", "help": "'.tr('Se impostato il valore sarà sempre visibile sull\'articolo se il listino è attivo e la data di scadenza è ancora valida').'" ]}
</div>
<div class="col-md-2">
{[ "type":"checkbox", "label":"'.tr('Sempre visibile').'", "name":"is_sempre_visibile", "value":"$is_sempre_visibile$", "help": "'.tr('Se attivo il valore sarà visibile sull\'articolo').'" ]}
<div class="col-md-6">
{[ "type":"checkbox", "label":"'.tr('Attivo').'", "name":"attivo", "value": "$attivo$" ]}
</div>
</div>
@ -69,21 +75,48 @@ echo '
</div>
<div style="max-height:400px; overflow:auto;">
<table class="table table-striped table-condensed table-bordered">
<table class="table table-striped table-condensed table-bordered" id="tablelistini">
<tr>
<th class="text-center" width="14%">'.tr('Codice').'</th>
<th class="text-center">'.tr('Descrizione').'</th>
<th class="text-center" width="10%">'.tr('Data scadenza').'</th>
<th class="text-center" width="10%">'.tr('Minimo').'</th>
<th class="text-center" width="10%">'.tr('Prezzo di listino').'</th>
<th class="text-center" width="10%">'.tr('Prezzo ivato').'</th>
<th class="text-center" width="10%">'.tr('Sconto').'</th>
<th class="text-center" width="7%">#</th>
<th width="5" class="text-center">
<br><input id="check_all" type="checkbox"/>
</th>
<th class="text-center" width="14%">
'.tr('Codice').'
<input type="text" class="form-control" id="search_codice" placeholder="'.tr('Filtra').'...">
</th>
<th class="text-center">
'.tr('Descrizione').'
<input type="text" class="form-control" id="search_descrizione" placeholder="'.tr('Filtra').'...">
</th>
<th class="text-center" width="10%">
'.tr('Data scadenza').'
<input type="text" class="form-control" id="search_data_scadenza" placeholder="'.tr('Filtra').'...">
</th>
<th class="text-center" width="10%">
'.tr('Minimo').'
<input type="text" class="form-control" id="search_minimo" placeholder="'.tr('Filtra').'...">
</th>
<th class="text-center" width="10%">
'.tr('Prezzo di listino').'
<input type="text" class="form-control" id="search_prezzo_listino" placeholder="'.tr('Filtra').'...">
</th>
<th class="text-center" width="10%">
'.tr('Prezzo ivato').'
<input type="text" class="form-control" id="search_prezzo_ivato" placeholder="'.tr('Filtra').'...">
</th>
<th class="text-center" width="10%">
'.tr('Sconto').'
<input type="text" class="form-control" id="search_sconto" placeholder="'.tr('Filtra').'...">
</th>
<th class="text-center" width="7%"><br>#</th>
</tr>';
foreach ($articoli as $articolo) {
echo '
<tr data-id="'.$articolo['id'].'">
<td class="text-center">
<input class="check" type="checkbox"/>
</td>
<td class="text-center">
'.Modules::link('Articoli', $articolo['id_articolo'], $articolo['codice'], null, '').'
</td>
@ -135,6 +168,12 @@ echo '
echo '
</table>
<div class="btn-group">
<button type="button" class="btn btn-xs btn-default disabled" id="elimina_righe" onclick="rimuoviArticolo(getSelectData());">
<i class="fa fa-trash"></i>
</button>
</div>
</div>
</div>
</div>
@ -195,4 +234,77 @@ echo '
});
}).catch(swal.noop);
}
$(document).ready(function(){
$("input[id^=\'search_\']").keyup(function() {
$("#tablelistini tr").each(function(){
$(this).show();
});
$("input[id^=\'search_\']").each(function(){
var position = $(this).closest("th").index();
var filter = $(this).val().toUpperCase();
var tr = $("#tablelistini tr");
if(filter!=""){
for (i = 0; i < tr.length; i++) {
td = tr[i].getElementsByTagName("td")[position];
if (td) {
if (td.innerText.toUpperCase().indexOf(filter) <= -1) {
tr[i].style.display = "none";
}
}
}
}
});
if ($("#check_all").is(":checked")) {
$("#check_all").trigger("click");
$(".check").each(function(){
if ($(this).is(":checked")) {
$(this).trigger("click");
}
});
}
});
});
// Estraggo le righe spuntate
function getSelectData() {
let data=new Array();
$(\'#tablelistini\').find(\'.check:checked\').each(function (){
data.push($(this).closest(\'tr\').data(\'id\'));
});
return data;
}
$(".check").on("change", function() {
let checked = 0;
$(".check").each(function() {
if ($(this).is(":checked")) {
checked = 1;
}
});
if (checked) {
$("#elimina_righe").removeClass("disabled");
} else {
$("#elimina_righe").addClass("disabled");
}
});
$("#check_all").click(function(){
if( $(this).is(":checked") ){
$(".check").each(function(){
if( !$(this).is(":checked") ){
$(this).trigger("click");
}
});
}else{
$(".check").each(function(){
if( $(this).is(":checked") ){
$(this).trigger("click");
}
});
}
});
</script>';

View File

@ -71,4 +71,7 @@ echo '
</form>';
echo '
<script>$(document).ready(init)</script>';
<script>
$(document).ready(init);
content_was_modified = false;
</script>';

View File

@ -4,7 +4,7 @@ ALTER TABLE `an_anagrafiche` CHANGE `idlistino_acquisti` `id_piano_sconto_acquis
ALTER TABLE `an_anagrafiche` CHANGE `idlistino_vendite` `id_piano_sconto_vendite` INT(11) NULL DEFAULT NULL;
ALTER TABLE `an_anagrafiche` ADD `id_listino` INT NOT NULL AFTER `id_piano_sconto_acquisti`;
CREATE TABLE `mg_listini` ( `id` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(255) NOT NULL , `data_attivazione` DATE NULL , `data_scadenza_predefinita` DATE NULL , `is_sempre_visibile` BOOLEAN NOT NULL , `note` TEXT NOT NULL , `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `updated_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , PRIMARY KEY (`id`));
CREATE TABLE `mg_listini` ( `id` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(255) NOT NULL , `data_attivazione` DATE NULL , `data_scadenza_predefinita` DATE NULL , `is_sempre_visibile` BOOLEAN NOT NULL , `attivo` BOOLEAN NOT NULL , `note` TEXT NOT NULL , `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `updated_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , PRIMARY KEY (`id`));
CREATE TABLE `mg_listini_articoli` ( `id` INT NOT NULL AUTO_INCREMENT , `id_listino` INT NOT NULL, `id_articolo` INT NOT NULL , `data_scadenza` DATE NOT NULL , `prezzo_unitario` DECIMAL(15,6) NOT NULL , `prezzo_unitario_ivato` DECIMAL(15,6) NOT NULL , `sconto_percentuale` DECIMAL(15,6) NOT NULL , `dir` VARCHAR(20) NOT NULL , `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `updated_at` TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , PRIMARY KEY (`id`));
@ -17,7 +17,9 @@ INSERT INTO `zz_views` ( `id_module`, `name`, `query`, `order`, `search`, `slow`
((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Articoli', '(SELECT COUNT(id) FROM mg_listini_articoli WHERE id_listino=mg_listini.id)', 4, 1, 0, 0, 0, '', '', 1, 0, 1),
((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Anagrafiche', '(SELECT COUNT(idanagrafica) FROM an_anagrafiche WHERE id_listino=mg_listini.id)', 5, 1, 0, 0, 0, '', '', 1, 0, 1),
((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Ultima modifica', '(SELECT username FROM zz_users WHERE id=(SELECT id_utente FROM zz_operations WHERE id_module=(SELECT id FROM zz_modules WHERE name=\'Listini cliente\') AND id_record=mg_listini.id ORDER BY id DESC LIMIT 0,1))', 6, 1, 0, 0, 0, '', '', 1, 0, 1),
((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Sempre visibile', 'IF(is_sempre_visibile=0,\'NO\',\'\')', 7, 1, 0, 0, 0, '', '', 1, 0, 1);
((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Sempre visibile', 'IF(is_sempre_visibile=0,\'NO\',\'\')', 7, 1, 0, 0, 0, '', '', 1, 0, 1),
((SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'Attivo', 'IF(attivo=0,\'NO\',\'\')', 7, 1, 0, 0, 0, '', '', 1, 0, 1);
UPDATE `zz_plugins` SET `title` = 'Netto clienti', `name` = 'Netto Clienti' WHERE `zz_plugins`.`name` = 'Listino Clienti';
@ -627,22 +629,22 @@ CREATE TABLE `zz_group_segment` ( `id_gruppo` INT NOT NULL , `id_segment` INT NO
ALTER TABLE `zz_segments` ADD `is_sezionale` TINYINT(1) NOT NULL AFTER `autofatture`;
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Preventivi');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Preventivi'), 'Standard preventivi', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato codice preventivi'), '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Preventivi'), 'Standard preventivi', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato codice preventivi'), '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Contratti');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Contratti'), 'Standard contratti', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato codice contratti'), '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Contratti'), 'Standard contratti', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato codice contratti'), '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Ddt di acquisto');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ddt di acquisto'), 'Standard ddt in entrata', '1=1', 'WHR', '#', '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ddt di acquisto'), 'Standard ddt in entrata', '1=1', 'WHR', '#', '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Ddt di vendita');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ddt di vendita'), 'Standard ddt in uscita', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato numero secondario ddt'), '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ddt di vendita'), 'Standard ddt in uscita', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato numero secondario ddt'), '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Ordini cliente');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ordini cliente'), 'Standard ordini cliente', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato numero secondario ordine'), '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ordini cliente'), 'Standard ordini cliente', '1=1', 'WHR', (SELECT `valore` FROM `zz_settings` WHERE `nome`='Formato numero secondario ordine'), '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Ordini fornitore');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `created_at`, `updated_at`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ordini fornitore'), 'Standard ordini fornitore', '1=1', 'WHR', '#', '', '', '1', '0', '0', '0', '1', NULL, NULL, '0');
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`, `note`, `dicitura_fissa`, `predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`, `is_fiscale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE name='Ordini fornitore'), 'Standard ordini fornitore', '1=1', 'WHR', '#', '', '', '1', '0', '0', '0', '1', '0');
UPDATE `zz_segments` SET `predefined` = '0' WHERE `zz_segments`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Interventi');
UPDATE `zz_segments` SET `predefined` = '1', `is_sezionale` = '1', `name` = 'Standard attività' WHERE `zz_segments`.`name` = 'Tutti' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Interventi');
@ -777,3 +779,8 @@ HAVING
2=2
ORDER BY
`nome`" WHERE `name` = 'Piani di sconto/maggiorazione';
-- Aggiunti widget listini clienti
INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`, `help`) VALUES (NULL, 'Listini attivi', 'stats', (SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'controller_top', 'col-md-6', 'SELECT COUNT(mg_listini.id) AS dato FROM mg_listini WHERE 1=1 AND attivo=1 HAVING 2=2', '#4ccc4c', 'fa fa-check', '', '', 'javascript', '', 'Listini attivi', '1', '1', NULL);
INSERT INTO `zz_widgets` (`id`, `name`, `type`, `id_module`, `location`, `class`, `query`, `bgcolor`, `icon`, `print_link`, `more_link`, `more_link_type`, `php_include`, `text`, `enabled`, `order`, `help`) VALUES (NULL, 'Listini scaduti', 'stats', (SELECT `id` FROM `zz_modules` WHERE name='Listini cliente'), 'controller_top', 'col-md-6', 'SELECT COUNT(mg_listini.id) AS dato FROM mg_listini WHERE 1=1 AND attivo=0 HAVING 2=2', '#c62f2a', 'fa fa-times', '', '', 'javascript', '', 'Listini scaduti', '1', '2', NULL);