Personalizzazione buffer datatables
This commit is contained in:
parent
13f127af7c
commit
bfde712708
|
@ -7,6 +7,7 @@ use Util\Query;
|
|||
// Informazioni fondamentali
|
||||
$columns = filter('columns');
|
||||
$order = filter('order')[0];
|
||||
$draw_numer = intval(filter('draw'));
|
||||
|
||||
$order['column'] = $order['column'] - 1;
|
||||
array_shift($columns);
|
||||
|
@ -32,6 +33,7 @@ $results = [
|
|||
'recordsTotal' => 0,
|
||||
'recordsFiltered' => 0,
|
||||
'summable' => [],
|
||||
'draw' => $draw_numer,
|
||||
];
|
||||
|
||||
$query = Query::getQuery($structure);
|
||||
|
@ -53,7 +55,9 @@ if (!empty($query)) {
|
|||
$results['recordsFiltered'] = $data['count'];
|
||||
|
||||
// SOMME
|
||||
$results['summable'] = Util\Query::getSums($structure, $search);
|
||||
if ($draw_numer == 1) {
|
||||
$results['summable'] = Util\Query::getSums($structure, $search);
|
||||
}
|
||||
|
||||
// Allineamento delle righe
|
||||
$align = [];
|
||||
|
|
|
@ -105,8 +105,6 @@ if (Auth::check()) {
|
|||
id_module: \''.$id_module.'\',
|
||||
id_record: \''.$id_record.'\',
|
||||
|
||||
order_manager_id: \''.($dbo->isInstalled() ? Modules::get('Stato dei serivizi')['id'] : '').'\',
|
||||
|
||||
cifre_decimali: '.setting('Cifre decimali per importi').',
|
||||
|
||||
decimals: "'.formatter()->getNumberSeparators()['decimals'].'",
|
||||
|
@ -124,7 +122,9 @@ if (Auth::check()) {
|
|||
ckeditorToolbar: [
|
||||
["Undo","Redo","-","Cut","Copy","Paste","PasteText","PasteFromWord","-","Scayt", "-","Link","Unlink","-","Bold","Italic","Underline","Superscript","SpecialChar","HorizontalRule","-","JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock","-","NumberedList","BulletedList","Outdent","Indent","Blockquote","-","Styles","Format","Image","Table", "TextColor", "BGColor" ],
|
||||
],
|
||||
|
||||
|
||||
order_manager_id: \''.($dbo->isInstalled() ? Modules::get('Stato dei serivizi')['id'] : '').'\',
|
||||
dataload_page_buffer: '.setting('Lunghezza in pagine del buffer Datatables').',
|
||||
tempo_attesa_ricerche: '.setting('Tempo di attesa ricerche in secondi').',
|
||||
};
|
||||
</script>';
|
||||
|
|
|
@ -172,20 +172,24 @@ $(document).ready(function () {
|
|||
});
|
||||
|
||||
$(".btn-select-all").click(function () {
|
||||
var table = $(document).find("#" + $(this).parent().parent().parent().data("target")).DataTable();
|
||||
$("#main_loading").show();
|
||||
var id = $(document).find("#" + $(this).parent().parent().parent().data("target"));
|
||||
var table = id.DataTable();
|
||||
|
||||
$("#main_loading").show();
|
||||
table.clear().draw();
|
||||
|
||||
$(id).data('page-length', table.page.len());
|
||||
|
||||
table.page.len(-1).draw();
|
||||
});
|
||||
|
||||
$(".btn-select-none").click(function () {
|
||||
var table = $(document).find("#" + $(this).parent().parent().parent().data("target")).DataTable();
|
||||
var id = $(document).find("#" + $(this).parent().parent().parent().data("target"));
|
||||
var table = id.DataTable();
|
||||
|
||||
table.rows().deselect();
|
||||
|
||||
table.page.len(200);
|
||||
table.page.len($(id).data('page-length'));
|
||||
});
|
||||
|
||||
$(".bulk-action").click(function () {
|
||||
|
@ -623,14 +627,14 @@ function start_datatables() {
|
|||
selector: 'td:first-child'
|
||||
},
|
||||
buttons: [{
|
||||
extend: 'csv',
|
||||
fieldSeparator: ";",
|
||||
exportOptions: {
|
||||
modifier: {
|
||||
selected: true
|
||||
extend: 'csv',
|
||||
fieldSeparator: ";",
|
||||
exportOptions: {
|
||||
modifier: {
|
||||
selected: true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
extend: 'copy',
|
||||
exportOptions: {
|
||||
|
@ -689,7 +693,8 @@ function start_datatables() {
|
|||
},
|
||||
],
|
||||
scroller: {
|
||||
loadingIndicator: true
|
||||
loadingIndicator: true,
|
||||
displayBuffer: globals.dataload_page_buffer,
|
||||
},
|
||||
ajax: {
|
||||
url: "ajax_dataload.php?id_module=" + id_module + "&id_plugin=" + id_plugin + "&id_parent=" + id_parent,
|
||||
|
@ -699,8 +704,9 @@ function start_datatables() {
|
|||
return data.data;
|
||||
}
|
||||
},
|
||||
initComplete: function () {
|
||||
initComplete: function (settings) {
|
||||
var api = this.api();
|
||||
|
||||
api.columns('.search').every(function () {
|
||||
var column = this;
|
||||
$('<br><input type="text" style="width:100%" class="form-control" placeholder="' + globals.translations.filter + '..."><i class="deleteicon fa fa-times fa-2x hide"></i>')
|
||||
|
@ -753,7 +759,10 @@ function start_datatables() {
|
|||
|
||||
$('.deleteicon').on("click", function (e) {
|
||||
reset($(this).parent().attr("id").replace("th_", ""));
|
||||
api.page.len(200).draw();
|
||||
|
||||
if (api.page.len() == -1){
|
||||
api.page.len($(id).data('page-length'));
|
||||
}
|
||||
});
|
||||
|
||||
// Ricerca di base ereditata dalla sessione
|
||||
|
@ -827,7 +836,7 @@ function start_datatables() {
|
|||
$(this.footer()).addClass("text-right");
|
||||
$(this.footer()).attr("id", "summable");
|
||||
$(this.footer()).html(sum.summable[i]);
|
||||
} else $(this.footer()).html(" ");
|
||||
}
|
||||
i++;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -170,7 +170,7 @@ $_SESSION['superselect']['idsede_destinazione'] = $record['idsede_destinazione']
|
|||
$("#idvettore").attr("required", false);
|
||||
$("#idvettore").attr("disabled", true);
|
||||
$("label[for=idvettore]").text("<?php echo tr('Vettore'); ?>");
|
||||
$("#idvettore").selectReset("<?php echo tr("Seleziona un'opzione") ?>");
|
||||
$("#idvettore").selectReset("<?php echo tr("Seleziona un'opzione"); ?>");
|
||||
$("#idvettore").next().next().find("button.bound:nth-child(1)").prop("disabled", true);
|
||||
}else{
|
||||
$("#idvettore").attr("required", true);
|
||||
|
|
|
@ -50,8 +50,8 @@ foreach ($rs as $key => $value) {
|
|||
$rs[$key]['prezzo'] = Translator::numberToLocale($prezzo);
|
||||
$rs[$key]['descrizione_intervento'] = strip_tags($rs[$key]['descrizione_intervento']);
|
||||
|
||||
if($prezzo <= 0){
|
||||
unset($rs[$key]);
|
||||
if ($prezzo <= 0) {
|
||||
unset($rs[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -57,8 +57,8 @@ function submodules($list, $depth = 0)
|
|||
|
||||
// Possibilità di disinstallare solo se il modulo non è tra quelli predefiniti
|
||||
if (empty($sub['default'])) {
|
||||
$result .= "
|
||||
<a href=\"javascript:;\" class=\"tip\" title=\"".tr('Disinstalla')."...\" onclick=\"if( confirm('".tr('Vuoi disinstallare questo modulo?').' '.tr('Tutti i dati salvati andranno persi!')."') ){ if( confirm('".tr('Sei veramente sicuro?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'uninstall', id: '".$sub['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); } }\">
|
||||
$result .= '
|
||||
<a href="javascript:;" class="tip" title="'.tr('Disinstalla')."...\" onclick=\"if( confirm('".tr('Vuoi disinstallare questo modulo?').' '.tr('Tutti i dati salvati andranno persi!')."') ){ if( confirm('".tr('Sei veramente sicuro?')."') ){ $.post( '".ROOTDIR.'/actions.php?id_module='.$id_module."', { op: 'uninstall', id: '".$sub['id']."' }, function(response){ location.href='".ROOTDIR.'/controller.php?id_module='.$id_module."'; }); } }\">
|
||||
<i class='fa fa-trash'></i>
|
||||
</a>";
|
||||
} else {
|
||||
|
|
|
@ -81,6 +81,11 @@ class Query
|
|||
}
|
||||
$date_query = !empty($filters) && !empty(self::$segments) ? ' AND ('.implode(' OR ', $filters).')' : '';
|
||||
|
||||
// Sostituzione periodi temporali
|
||||
preg_match('|segment\((.+?)\)|', $query, $matches);
|
||||
$segment_name = !empty($matches[1]) ? $matches[1] : 'id_segment';
|
||||
$segment_filter = !empty($matches[0]) ? $matches[0] : 'segment';
|
||||
|
||||
// Elenco delle sostituzioni
|
||||
$replace = [
|
||||
// Identificatori
|
||||
|
@ -96,7 +101,7 @@ class Query
|
|||
'|period_end|' => $_SESSION['period_end'],
|
||||
|
||||
// Segmenti
|
||||
'|segment|' => !empty($segment) ? ' AND id_segment = '.prepare($segment) : '',
|
||||
'|'.$segment_filter.'|' => !empty($segment) ? ' AND '.$segment_name.' = '.prepare($segment) : '',
|
||||
];
|
||||
|
||||
// Sostituzione dei formati
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?php
|
||||
|
||||
// Fix del calcolo del bollo
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
|
||||
// Fix del calcolo del bollo
|
||||
$fatture = \Modules\Fatture\Fattura::all();
|
||||
foreach ($fatture as $fattura) {
|
||||
$fattura->save();
|
||||
|
|
|
@ -89,9 +89,6 @@ UPDATE `mg_movimenti` SET `idsede_azienda` = (SELECT `idsede_partenza` FROM `dt_
|
|||
UPDATE `mg_movimenti` SET `idsede_controparte` = (SELECT `idsede_destinazione` FROM `co_documenti` WHERE `co_documenti`.`id` = `mg_movimenti`.`iddocumento`) WHERE `iddocumento`!=0;
|
||||
UPDATE `mg_movimenti` SET `idsede_azienda` = (SELECT `idsede_destinazione` FROM `co_documenti` WHERE `co_documenti`.`id` = `mg_movimenti`.`iddocumento`) WHERE `iddocumento`!=0;
|
||||
|
||||
-- Aggiungo LEFT e INNER JOIN per ottimizzare la query del modulo Fatture di vendita
|
||||
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `co_documenti` INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id` LEFT OUTER JOIN ( SELECT `zz_emails`.`name`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `zz_emails` ON `zz_operations`.`id_email` = `zz_emails`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` AND `zz_modules`.`name` = \'Fatture di vendita\' AND `zz_operations`.`op` = \'send-email\' LIMIT 1) AS `email` ON `email`.`id_record` = `co_documenti`.`id` WHERE 1=1 AND `dir` = \'entrata\' |segment| AND `data` >= \'|period_start|\' AND `data` <= \'|period_end|\' HAVING 2=2 ORDER BY `data` DESC, CAST(numero_esterno AS UNSIGNED) DESC' WHERE `zz_modules`.`name` = 'Fatture di vendita';
|
||||
|
||||
-- Sistemo vista per icon_Inviata modulo Fatture di vendita
|
||||
UPDATE `zz_views` SET `query` = 'IF(`email`.`name` IS NOT NULL, \'fa fa-envelope text-success\', \'\')' WHERE `zz_views`.`name` = 'icon_Inviata' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita') ;
|
||||
|
||||
|
@ -185,3 +182,29 @@ ALTER TABLE `in_interventi_tecnici` CHANGE `idtipointervento` `idtipointervento`
|
|||
|
||||
UPDATE `in_tariffe` INNER JOIN `in_tipiintervento` ON `in_tariffe`.`idtipointervento` = `in_tipiintervento`.`codice` SET `in_tariffe`.`idtipointervento` = `in_tipiintervento`.`idtipointervento`;
|
||||
ALTER TABLE `in_tariffe` CHANGE `idtipointervento` `idtipointervento` INT(11) NOT NULL, ADD FOREIGN KEY (`idtipointervento`) REFERENCES `in_tipiintervento`(`idtipointervento`);
|
||||
|
||||
-- Ottimizzazione query Fatture
|
||||
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `co_documenti`
|
||||
INNER JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
INNER JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`
|
||||
INNER JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`
|
||||
LEFT JOIN `fe_stati_documento` ON `co_documenti`.`codice_stato_fe` = `fe_stati_documento`.`codice`
|
||||
LEFT JOIN (SELECT `numero_esterno`, `id_segment` FROM `co_documenti` WHERE `co_documenti`.`idtipodocumento` IN(SELECT `id` FROM `co_tipidocumento` WHERE `dir` = ''entrata'') AND `co_documenti`.`data` >= ''2019-01-01'' AND `co_documenti`.`data` <= ''2019-12-31'' GROUP BY `id_segment`, `numero_esterno` HAVING COUNT(`numero_esterno`) > 1) dup ON `co_documenti`.`numero_esterno` = `dup`.`numero_esterno` AND `dup`.`id_segment` = `co_documenti`.`id_segment`
|
||||
LEFT OUTER JOIN (SELECT `zz_emails`.`name`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `zz_emails` ON `zz_operations`.`id_email` = `zz_emails`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` AND `zz_modules`.`name` = ''Fatture di vendita'' AND `zz_operations`.`op` = ''send-email'' LIMIT 1) AS `email` ON `email`.`id_record` = `co_documenti`.`id`
|
||||
WHERE 1=1 AND `dir` = ''entrata'' |segment(co_documenti.id_segment)| AND `co_documenti`.`data` >= ''|period_start|'' AND `co_documenti`.`data` <= ''|period_end|''
|
||||
HAVING 2=2
|
||||
ORDER BY `co_documenti`.`data` DESC, CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC' WHERE `name` = 'Fatture di vendita';
|
||||
|
||||
UPDATE `zz_views` SET `query` = 'IF(`dup`.`numero_esterno` IS NULL, '''', ''red'')' WHERE `name` = '_bg_' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
UPDATE `zz_views` SET `query` = 'an_anagrafiche.idanagrafica' WHERE `name` = 'idanagrafica' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
UPDATE `zz_views` SET `query` = 'IF(co_documenti.numero_esterno='''', co_documenti.numero, co_documenti.numero_esterno)', `order_by` ='CAST(co_documenti.numero_esterno AS UNSIGNED)' WHERE `name` = 'Numero' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
UPDATE `zz_views` SET `query` = 'co_documenti.data' WHERE `name` = 'Data' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
UPDATE `zz_views` SET `query` = 'an_anagrafiche.ragione_sociale' WHERE `name` = 'Ragione sociale' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
UPDATE `zz_views` SET `query` = '(SELECT SUM(subtotale - sconto + iva + rivalsainps - ritenutaacconto) FROM co_righe_documenti WHERE co_righe_documenti.iddocumento=co_documenti.id GROUP BY iddocumento) + co_documenti.iva_rivalsainps' WHERE `name` = 'Totale' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
UPDATE `zz_views` SET `query` = 'co_statidocumento.icona' WHERE `name` = 'icon_Stato' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
UPDATE `zz_views` SET `query` = 'co_statidocumento.descrizione' WHERE `name` = 'icon_title_Stato' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
UPDATE `zz_views` SET `query` = '`fe_stati_documento`.`icon`' WHERE `name` = 'icon_FE' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
UPDATE `zz_views` SET `query` = '`fe_stati_documento`.`descrizione`' WHERE `name` = 'icon_title_FE' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita');
|
||||
|
||||
-- Impostazione per la lunghezza delle pagine Datatables
|
||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES (NULL, 'Lunghezza in pagine del buffer Datatables', '200', 'decimal', 0, 'Generali', 1);
|
||||
|
|
Loading…
Reference in New Issue