Miglioramento ricerche Datatables
Miglioramento delle ricerche Datatables in modo da rendere il sistema più comprensibile.
This commit is contained in:
parent
8ccdd70622
commit
4298e84d90
|
@ -110,7 +110,7 @@ if (!empty($type) && $type != 'menu' && $type != 'custom') {
|
|||
}
|
||||
|
||||
echo '
|
||||
<th'.$attr_td.' id="th_'.str_replace([' ', '.'], ['-', ''], $name).'"';
|
||||
<th'.$attr_td.' id="th_'.searchFieldName($name).'"';
|
||||
if ($total['search'][$key] == 1) {
|
||||
echo ' class="search"';
|
||||
} else {
|
||||
|
|
|
@ -38,16 +38,15 @@ if (Auth::check()) {
|
|||
<script>
|
||||
search = []';
|
||||
|
||||
$array = [];
|
||||
foreach ($_SESSION as $idx1 => $arr2) {
|
||||
if ($idx1 == 'module_'.$id_module) {
|
||||
foreach ($arr2 as $field => $value) {
|
||||
if (!empty($value) && starts_with($field, 'search_')) {
|
||||
$field_name = str_replace('search_', '', $field);
|
||||
echo '
|
||||
$array = $_SESSION['module_'.$id_module];
|
||||
if (!empty($array)) {
|
||||
foreach ($array as $field => $value) {
|
||||
if (!empty($value) && starts_with($field, 'search_')) {
|
||||
$field_name = str_replace('search_', '', $field);
|
||||
|
||||
echo '
|
||||
search.push("search_'.$field_name.'");
|
||||
search["search_'.$field_name.'"] = "'.$value.'";';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -602,7 +602,7 @@ function start_datatables() {
|
|||
$(win.document.body)
|
||||
.css('font-size', '10pt')
|
||||
.append(
|
||||
'<table class="main-records table table-condensed table-bordered dataTable" ><tfoot><tr><td></td><td class="pull-right" >' + $('#summable').text() + '</td><td></td></tr></tfoot></table>'
|
||||
'<table class="main-records table table-condensed table-bordered dataTable"><tfoot><tr><td></td><td class="pull-right">' + $('#summable').text() + '</td><td></td></tr></tfoot></table>'
|
||||
);
|
||||
$(win.document.body).find('table')
|
||||
.addClass('compact')
|
||||
|
@ -656,6 +656,7 @@ function start_datatables() {
|
|||
|
||||
clearInterval(tempo);
|
||||
|
||||
// Fix del pulsante di pulizia ricerca e del messaggio sulla ricerca lenta
|
||||
if (e.which != 9) {
|
||||
if (!$(this).val()) {
|
||||
if ($(this).parent().data("slow") != undefined) $("#slow").remove();
|
||||
|
@ -670,19 +671,19 @@ function start_datatables() {
|
|||
}
|
||||
}
|
||||
|
||||
idx1 = 'module_' + $this.data('idmodule'); //+ "-" + $this.data('idplugin');
|
||||
idx2 = 'search_' + $(this).parent().attr('id').replace('th_', '');
|
||||
|
||||
function start_search(search_value) {
|
||||
session_set(idx1 + ',' + idx2, search_value, 0);
|
||||
function start_search(module_id, field, search_value) {
|
||||
searchTable(module_id, field, search_value);
|
||||
column.search(search_value).draw();
|
||||
}
|
||||
|
||||
// Imposto delle sessioni per le ricerche del modulo e del campo specificatsi
|
||||
// Impostazione delle sessioni per le ricerche del modulo e del campo specificati
|
||||
var module_id = $this.data('idmodule'); //+ "-" + $this.data('idplugin');
|
||||
var field = $(this).parent().attr('id').replace('th_', '');
|
||||
var value = $(this).val();
|
||||
if (e.keyCode == 13 || $(this).val() == '') {
|
||||
start_search($(this).val());
|
||||
start_search(module_id, field, value);
|
||||
} else {
|
||||
tempo = window.setTimeout(start_search, tempo_attesa_ricerche, $(this).val());
|
||||
tempo = window.setTimeout(start_search, tempo_attesa_ricerche, module_id, field, value);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -1426,3 +1427,25 @@ function buttonRestore(button, loadingResult) {
|
|||
$this.addClass(loadingResult[1]);
|
||||
$this.prop("disabled", false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sostituisce i caratteri speciali per la ricerca attraverso le tabelle Datatables.
|
||||
*
|
||||
* @param string field
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function searchFieldName(field) {
|
||||
return field.replace(' ', '-').replace('.', '');
|
||||
}
|
||||
|
||||
/**
|
||||
* Salva nella sessione la ricerca per le tabelle Datatables.
|
||||
*
|
||||
* @param int module_id
|
||||
* @param string field
|
||||
* @param mixed value
|
||||
*/
|
||||
function searchTable(module_id, field, value) {
|
||||
session_set('module_' + module_id + ',' + 'search_' + searchFieldName(field), value, 0);
|
||||
}
|
||||
|
|
|
@ -354,3 +354,15 @@ function getURLPath()
|
|||
|
||||
return slashes($path);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sostituisce i caratteri speciali per la ricerca attraverso le tabelle Datatables.
|
||||
*
|
||||
* @param string $field
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function searchFieldName($field)
|
||||
{
|
||||
return str_replace([' ', '.'], ['-', ''], $field);
|
||||
}
|
||||
|
|
|
@ -30,13 +30,13 @@ if (!empty($search_filters)) {
|
|||
// Filtri derivanti dai permessi (eventuali)
|
||||
$module_query = Modules::replaceAdditionals($id_module, $module_query);
|
||||
|
||||
$rsi = $dbo->fetchArray($module_query);
|
||||
$interventi = $dbo->fetchArray($module_query);
|
||||
|
||||
// Se il cliente è uno solo carico la sua intestazione, altrimenti la lascio in bianco
|
||||
$idcliente = $rsi[0]['idanagrafica'];
|
||||
$idcliente = $interventi[0]['idanagrafica'];
|
||||
$singolo_cliente = true;
|
||||
for ($i = 0; $i < sizeof($rsi) && $singolo_cliente; ++$i) {
|
||||
if ($rsi[$i]['idanagrafica'] != $idcliente) {
|
||||
for ($i = 0; $i < sizeof($interventi) && $singolo_cliente; ++$i) {
|
||||
if ($interventi[$i]['idanagrafica'] != $idcliente) {
|
||||
$singolo_cliente = false;
|
||||
}
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ if (!$singolo_cliente) {
|
|||
|
||||
include_once $docroot.'/templates/pdfgen_variables.php';
|
||||
|
||||
$totrows = sizeof($rsi);
|
||||
$totrows = sizeof($interventi);
|
||||
$totale_km = 0.00;
|
||||
$totale = 0.00;
|
||||
$totale_calcolato = 0.00;
|
||||
|
@ -74,54 +74,53 @@ $diritto_chiamata_cons = [];
|
|||
|
||||
$idinterventi = ['0'];
|
||||
|
||||
if ($totrows > 0) {
|
||||
for ($i = 0; $i < $totrows; ++$i) {
|
||||
// Lettura dati dei tecnici dell'intervento corrente
|
||||
$sessioni = $dbo->fetchArray('SELECT *, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS nome_tecnico FROM in_interventi_tecnici WHERE idintervento='.prepare($rsi[$i]['id']));
|
||||
|
||||
$riga_tecnici = "<table><tr><td style='border:0px solid transparent;' colspan='2'><div style='width:75mm;'></div></td></tr>\n";
|
||||
$t = 0;
|
||||
foreach ($interventi as $intervento) {
|
||||
// Lettura dati dei tecnici dell'intervento corrente
|
||||
$sessioni = $dbo->fetchArray('SELECT *, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS nome_tecnico FROM in_interventi_tecnici WHERE idintervento='.prepare($intervento['id']));
|
||||
|
||||
foreach ($sessioni as $sessione) {
|
||||
$riga_tecnici .= "<tr><td valign='top' style='border:0px solid transparent;' align='left' >\n".$sessione['nome_tecnico']."\n</td>\n";
|
||||
$riga_tecnici .= "<td valign='bottom' style='border:0px solid transparent;' align='right'>\n".Translator::dateToLocale($sessione['orario_inizio']).' - '.Translator::timeToLocale($sessione['orario_inizio']).'-'.Translator::timeToLocale($sessione['orario_fine'])."\n";
|
||||
$riga_tecnici .= "</td></tr>\n";
|
||||
$riga_tecnici = "<table><tr><td style='border:0px solid transparent;' colspan='2'><div style='width:75mm;'></div></td></tr>\n";
|
||||
|
||||
array_push($costi_orari, floatval($sessione['prezzo_ore_unitario']));
|
||||
array_push($costi_km, floatval($sessione['prezzo_km_unitario']));
|
||||
array_push($diritto_chiamata, floatval($sessione['prezzo_dirittochiamata']));
|
||||
foreach ($sessioni as $sessione) {
|
||||
$riga_tecnici .= "<tr><td valign='top' style='border:0px solid transparent;' align='left' >\n".$sessione['nome_tecnico']."\n</td>\n";
|
||||
$riga_tecnici .= "<td valign='bottom' style='border:0px solid transparent;' align='right'>\n".Translator::dateToLocale($sessione['orario_inizio']).' - '.Translator::timeToLocale($sessione['orario_inizio']).'-'.Translator::timeToLocale($sessione['orario_fine'])."\n";
|
||||
$riga_tecnici .= "</td></tr>\n";
|
||||
|
||||
array_push($costo_ore_cons, floatval($sessione['prezzo_ore_consuntivo']));
|
||||
array_push($costo_km_cons, floatval($sessione['prezzo_km_consuntivo']));
|
||||
array_push($diritto_chiamata_cons, floatval($sessione['prezzo_dirittochiamata_consuntivo']));
|
||||
array_push($km, floatval($sessione['km']));
|
||||
$totale_km += floatval($sessione['km']);
|
||||
}
|
||||
array_push($costi_orari, floatval($sessione['prezzo_ore_unitario']));
|
||||
array_push($costi_km, floatval($sessione['prezzo_km_unitario']));
|
||||
array_push($diritto_chiamata, floatval($sessione['prezzo_dirittochiamata']));
|
||||
|
||||
$riga_tecnici .= "</table>\n";
|
||||
|
||||
$line = '<span>Intervento <b>'.$rsi[$i]['Numero'].'</b> del <b>'.Translator::timestampToLocale($rsi[$i]['Data inizio'])."</b><br/><small style='color:#444;'>".nl2br($rsi[$i]['richiesta'])."</small></span><br/>\n";
|
||||
|
||||
// Se l'elenco non è di un singolo cliente stampo anche la sua ragione sociale
|
||||
if (!$singolo_cliente) {
|
||||
$line .= '<br/><span><small><b>Cliente:</b> '.$rsi[$i]['Ragione sociale']."</small></span>\n";
|
||||
}
|
||||
|
||||
array_push($info_intervento, $line);
|
||||
|
||||
array_push($ntecnici, $n_tecnici);
|
||||
array_push($tecnici, $riga_tecnici);
|
||||
array_push($ore, get_ore_intervento($rsi[$i]['id']));
|
||||
|
||||
$totale_dirittochiamata += floatval($rs[$i]['prezzo_dirittochiamata']);
|
||||
array_push($idinterventi, "'".$rsi[$i]['id']."'");
|
||||
array_push($costo_ore_cons, floatval($sessione['prezzo_ore_consuntivo']));
|
||||
array_push($costo_km_cons, floatval($sessione['prezzo_km_consuntivo']));
|
||||
array_push($diritto_chiamata_cons, floatval($sessione['prezzo_dirittochiamata_consuntivo']));
|
||||
array_push($km, floatval($sessione['km']));
|
||||
$totale_km += floatval($sessione['km']);
|
||||
}
|
||||
|
||||
$riga_tecnici .= "</table>\n";
|
||||
|
||||
$line = '<span>Intervento <b>'.$intervento['Numero'].'</b> del <b>'.Translator::timestampToLocale($intervento['Data inizio'])."</b><br/><small style='color:#444;'>".nl2br($intervento['richiesta'])."</small></span><br/>\n";
|
||||
|
||||
// Se l'elenco non è di un singolo cliente stampo anche la sua ragione sociale
|
||||
if (!$singolo_cliente) {
|
||||
$line .= '<br/><span><small><b>Cliente:</b> '.$intervento['Ragione sociale']."</small></span>\n";
|
||||
}
|
||||
|
||||
array_push($info_intervento, $line);
|
||||
|
||||
array_push($ntecnici, $n_tecnici);
|
||||
array_push($tecnici, $riga_tecnici);
|
||||
array_push($ore, get_ore_intervento($intervento['id']));
|
||||
|
||||
$totale_dirittochiamata += floatval($rs[$i]['prezzo_dirittochiamata']);
|
||||
array_push($idinterventi, "'".$intervento['id']."'");
|
||||
}
|
||||
|
||||
$body .= '<big><big><b>RIEPILOGO INTERVENTI DAL '.Translator::dateToLocale($date_start).' al '.Translator::dateToLocale($date_end)."</b></big></big><br/><br/>\n";
|
||||
|
||||
$body .= '<big><big><b>RIEPILOGO INTERVENTI DAL '.Translator::dateToLocale($_SESSION['period_start']).' al '.Translator::dateToLocale($_SESSION['period_end'])."</b></big></big><br/><br/>\n";
|
||||
|
||||
// Sostituisco i valori tra | | con il valore del campo del db
|
||||
$body .= preg_replace('/|(.+?)|/', $rsi[0]['${1}'], $body);
|
||||
$body .= preg_replace('/|(.+?)|/', $interventi[0]['${1}'], $body);
|
||||
|
||||
if (sizeof($info_intervento) > 0) {
|
||||
// Tabella con riepilogo interventi, km e ore
|
||||
|
@ -391,4 +390,4 @@ $body .= "<p align=\"right\">\n";
|
|||
$body .= '<big><b>TOTALE INTERVENTI: '.Translator::numberToLocale($totale_intervento_scontato + $totale_articoli + $totale_spese)." €</b></big>\n";
|
||||
$body .= "</p>\n";
|
||||
|
||||
$report_name = 'Riepilogo_interventi.pdf';
|
||||
$report_name = 'riepilogo_interventi.pdf';
|
||||
|
|
Loading…
Reference in New Issue