mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-01 16:36:45 +01:00
Impostazione "Totali delle tabelle ristretti alla selezione"
This commit is contained in:
parent
c35b641bd8
commit
3e5b3e2fa6
10
ajax.php
10
ajax.php
@ -140,5 +140,15 @@ switch (filter('op')) {
|
|||||||
|
|
||||||
echo json_encode($response);
|
echo json_encode($response);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'summable-results':
|
||||||
|
$ids = post('ids') ?: [];
|
||||||
|
$results = Util\Query::getSums($structure, [
|
||||||
|
'id' => $ids,
|
||||||
|
]);
|
||||||
|
|
||||||
|
echo json_encode($results);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -350,7 +350,7 @@ function getTable(selector) {
|
|||||||
|
|
||||||
var selected = new Map();
|
var selected = new Map();
|
||||||
var selected_ids = table.data('selected') ? table.data('selected').split(';') : [];
|
var selected_ids = table.data('selected') ? table.data('selected').split(';') : [];
|
||||||
selected_ids.forEach(function(item, index) {
|
selected_ids.forEach(function (item, index) {
|
||||||
selected.set(item, true);
|
selected.set(item, true);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -360,7 +360,7 @@ function getTable(selector) {
|
|||||||
id_module: table.data('idmodule'),
|
id_module: table.data('idmodule'),
|
||||||
id_plugin: table.data('idplugin'),
|
id_plugin: table.data('idplugin'),
|
||||||
|
|
||||||
initDatatable: function() {
|
initDatatable: function () {
|
||||||
if (table.hasClass('datatables')) {
|
if (table.hasClass('datatables')) {
|
||||||
start_local_datatables();
|
start_local_datatables();
|
||||||
} else {
|
} else {
|
||||||
@ -395,10 +395,15 @@ function getTable(selector) {
|
|||||||
bulk_container.addClass('disabled').attr('disabled', true);
|
bulk_container.addClass('disabled').attr('disabled', true);
|
||||||
btn_container.addClass('disabled').attr('disabled', true);
|
btn_container.addClass('disabled').attr('disabled', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Aggiornamento del footer nel caso sia richiesto
|
||||||
|
if (globals.restrict_summables_to_selected){
|
||||||
|
this.updateSelectedFooter();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
addSelectedRows: function (row_ids) {
|
addSelectedRows: function (row_ids) {
|
||||||
row_ids = Array.isArray(row_ids) ? row_ids : [row_ids];
|
row_ids = Array.isArray(row_ids) ? row_ids : [row_ids];
|
||||||
row_ids.forEach(function(item, index) {
|
row_ids.forEach(function (item, index) {
|
||||||
selected.set(item, true);
|
selected.set(item, true);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -406,7 +411,7 @@ function getTable(selector) {
|
|||||||
},
|
},
|
||||||
removeSelectedRows: function (row_ids) {
|
removeSelectedRows: function (row_ids) {
|
||||||
row_ids = Array.isArray(row_ids) ? row_ids : [row_ids];
|
row_ids = Array.isArray(row_ids) ? row_ids : [row_ids];
|
||||||
row_ids.forEach(function(item, index) {
|
row_ids.forEach(function (item, index) {
|
||||||
selected.delete(item);
|
selected.delete(item);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -416,5 +421,32 @@ function getTable(selector) {
|
|||||||
selected.clear();
|
selected.clear();
|
||||||
this.saveSelectedRows();
|
this.saveSelectedRows();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// Aggiornamento dei campi summable
|
||||||
|
updateSelectedFooter: function () {
|
||||||
|
let datatable = this.datatable;
|
||||||
|
let ids = this.getSelectedRows();
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
url: globals.rootdir + "/ajax.php",
|
||||||
|
type: "POST",
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
id_module: this.id_module,
|
||||||
|
id_plugin: this.id_plugin,
|
||||||
|
op: "summable-results",
|
||||||
|
ids: ids,
|
||||||
|
},
|
||||||
|
success: function (response) {
|
||||||
|
for (let [column, value] of Object.entries(response)) {
|
||||||
|
let index = parseInt(column) + 1;
|
||||||
|
let sel = datatable.column(index).footer();
|
||||||
|
$(sel).addClass("text-right")
|
||||||
|
.attr("id", "summable")
|
||||||
|
.html(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -174,6 +174,7 @@ if (Auth::check()) {
|
|||||||
order_manager_id: "'.($dbo->isInstalled() ? Modules::get('Stato dei servizi')['id'] : '').'",
|
order_manager_id: "'.($dbo->isInstalled() ? Modules::get('Stato dei servizi')['id'] : '').'",
|
||||||
dataload_page_buffer: '.setting('Lunghezza in pagine del buffer Datatables').',
|
dataload_page_buffer: '.setting('Lunghezza in pagine del buffer Datatables').',
|
||||||
tempo_attesa_ricerche: '.setting('Tempo di attesa ricerche in secondi').',
|
tempo_attesa_ricerche: '.setting('Tempo di attesa ricerche in secondi').',
|
||||||
|
restrict_summables_to_selected: '.setting('Totali delle tabelle ristretti alla selezione').',
|
||||||
};
|
};
|
||||||
</script>';
|
</script>';
|
||||||
} else {
|
} else {
|
||||||
|
@ -140,11 +140,11 @@ class Query
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filtri di ricerica
|
// Filtri di ricerca
|
||||||
$search_filters = [];
|
$search_filters = [];
|
||||||
foreach ($search as $field => $value) {
|
foreach ($search as $field => $original_value) {
|
||||||
$pos = array_search($field, $total['fields']);
|
$pos = array_search($field, $total['fields']);
|
||||||
$value = trim($value);
|
$value = trim($original_value);
|
||||||
|
|
||||||
if (isset($value) && $pos !== false) {
|
if (isset($value) && $pos !== false) {
|
||||||
$search_query = $total['search_inside'][$pos];
|
$search_query = $total['search_inside'][$pos];
|
||||||
@ -201,7 +201,14 @@ class Query
|
|||||||
|
|
||||||
// Campo id: ricerca tramite comparazione
|
// Campo id: ricerca tramite comparazione
|
||||||
elseif ($field == 'id') {
|
elseif ($field == 'id') {
|
||||||
$search_filters[] = $field.' = '.prepare($value);
|
// Filtro per una serie di ID
|
||||||
|
if (is_array($original_value)) {
|
||||||
|
if (!empty($original_value)) {
|
||||||
|
$search_filters[] = $field.' IN ('.implode(', ', $original_value).')';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$search_filters[] = $field.' = '.prepare($value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ricerca
|
// Ricerca
|
||||||
@ -264,7 +271,7 @@ class Query
|
|||||||
*/
|
*/
|
||||||
public static function getSums($structure, $search = [])
|
public static function getSums($structure, $search = [])
|
||||||
{
|
{
|
||||||
$total = self::readQuery($structure, $search);
|
$total = self::readQuery($structure);
|
||||||
|
|
||||||
// Calcolo di eventuali somme
|
// Calcolo di eventuali somme
|
||||||
if (empty($total['summable'])) {
|
if (empty($total['summable'])) {
|
||||||
|
@ -122,3 +122,6 @@ UPDATE `em_accounts` SET `connected_at` = NOW();
|
|||||||
|
|
||||||
-- Aggiunta del flag is_importabile sulle causali per permettere/bloccare l'importazione dei DDT
|
-- Aggiunta del flag is_importabile sulle causali per permettere/bloccare l'importazione dei DDT
|
||||||
ALTER TABLE `dt_causalet` ADD `is_importabile` BOOLEAN DEFAULT TRUE AFTER `descrizione`;
|
ALTER TABLE `dt_causalet` ADD `is_importabile` BOOLEAN DEFAULT TRUE AFTER `descrizione`;
|
||||||
|
|
||||||
|
-- Impostazione "Totali delle tabelle ristretti alla selezione"
|
||||||
|
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES (NULL, 'Totali delle tabelle ristretti alla selezione', '0', 'boolean', '1', 'Generali', 119);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user