Pulsante Precedente e Successivo all'interno della scheda attività

This commit is contained in:
Luca 2024-02-28 01:46:48 +01:00
parent 39b6c16345
commit 6490ca640d
3 changed files with 48 additions and 3 deletions

View File

@ -344,3 +344,26 @@ function checkPrefix($cellulare) {
return false; // Nessun prefisso trovato return false; // Nessun prefisso trovato
} }
/**
* Funzione PHP che dato id_modulo restituisce un array contenente tutti i valori di "search_" per quel modulo
*
* @param int $id_module
*
* @return array
*/
function getSearchValues($id_module) {
$result = [];
if(isset($_SESSION['module_'.$id_module])) {
// Itera su tutti i valori
foreach($_SESSION['module_'.$id_module] as $key => $value) {
// Controlla se la chiave inizia con "search_"
if (!empty($value) && string_starts_with($key, 'search_')) {
$result[str_replace(["search_", "-"], ["", " "], $key)] = $value;
}
}
}
return $result;
}

View File

@ -25,9 +25,6 @@ include_once __DIR__.'/../../core.php';
$block_edit = $record['flag_completato']; $block_edit = $record['flag_completato'];
$module_anagrafiche = Modules::get('Anagrafiche'); $module_anagrafiche = Modules::get('Anagrafiche');
$codice = $database->FetchOne('SELECT codice FROM in_interventi WHERE id = '.$intervento->id.'')['codice'];
$prev = $database->FetchOne('SELECT id FROM in_interventi WHERE codice = '.($codice-1).' AND data_richiesta > "'.$_SESSION['period_start'].'" AND data_richiesta < "'.$_SESSION['period_end'].'"')['id'];
$next = $database->FetchOne('SELECT id FROM in_interventi WHERE codice = '.($codice+1).' AND data_richiesta > "'.$_SESSION['period_start'].'" AND data_richiesta < "'.$_SESSION['period_end'].'"')['id'];
// Verifica aggiuntive sulla sequenzialità dei numeri // Verifica aggiuntive sulla sequenzialità dei numeri
$numero_previsto = verifica_numero_intervento($intervento); $numero_previsto = verifica_numero_intervento($intervento);

View File

@ -42,4 +42,29 @@ if (isset($id_record)) {
INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento` = `in_statiintervento`.`idstatointervento` INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento` = `in_statiintervento`.`idstatointervento`
WHERE WHERE
`in_interventi`.`id`='.prepare($id_record)); `in_interventi`.`id`='.prepare($id_record));
//Pulsante Precedente e Successivo all'interno della scheda attività
$module_query = Util\Query::getQuery(Models\Module::getCurrent());
if (!empty(getSearchValues($id_module))) {
$having = [];
$search_values = getSearchValues($id_module);
foreach($search_values as $key => $value) {
$having[] = '`'.$key.'` LIKE "%'.$value.'%"';
}
foreach($having as $condition) {
$module_query = str_replace('2=2', '2=2 AND '.$condition, $module_query);
}
}
$prev_query = str_replace('1=1', '1=1 AND `in_interventi`.`codice` = '.($record['codice']-1), $module_query);
$prev = $database->FetchOne($prev_query)['id'];
$next_query = str_replace('1=1', '1=1 AND `in_interventi`.`codice` = '.($record['codice']+1), $module_query);
$next = $database->FetchOne($next_query)['id'];
} }