22/06/2026 - sihsandrea ha scritto:
I campi di questa tabella dovrebbero essere
Id, descrizione, data inizio, data fine
Usare 2 inizio e 2 fine serve a complicarsi la vita
Posso anche modificare la tabella in record separati ma poi mi tocca rielaborare anche lo script che va aggiorna le date del periodo invernale e estivo con un ciclo perchè quello che ho impostato ora lavora su un unico record, che è il motivo per cui ho fatto quella tabella gbgar_scad_periodo cosi come l'ho fatta.
dovrei andare a rifare questo blocco php:
<?php session_start();
...
if($imposta_periodo === "on" || $imposta_periodo === "off"){
//preparazione aggiornamento tabella sql "gbgar_scad_periodo"
$fields = [];
$params = [];
$types = "";
if(!empty("$inizio_invernale")){
$fields[] = "start_inv=?";
$params[] = $inizio_invernale;
$types .= "s";
}
if(!empty("$fine_invernale")){
$fields[] = "end_inv=?";
$params[] = $fine_invernale;
$types .= "s";
}
if(!empty("$inizio_estivo")){
$fields[] = "start_est=?";
$params[] = $inizio_estivo;
$types .= "s";
}
if(!empty("$fine_estivo")){
$fields[] = "end_est=?";
$params[] = $fine_estivo;
$types .= "s";
}
if(empty($fields)){
echo"<div class='risposta'>
Date periodicità orari non aggiornate. Restano valide quelle attualmente impostate
</div>";
//return;
};
$params[]= $id_scad_impostate;
$types .= "i";
$set = implode(",", $fields);
$query_update = "UPDATE gbgar_scad_periodo SET $set WHERE id=?;";
$stmt = $Conn->prepare($query_update);
$stmt->bind_param($types, ...$params);
if($stmt->execute()){
echo"<div class='risposta'>Date modificate con successo !</div>";
}else{echo"<div class='risposta'>Errore durante la modifica". $stmt->error ."</div>";
}
}if(!isset($imposta_periodo)){
echo"<div class='risposta'>Le periodicità restano invariate</div>";
}
...
?>
Questo blocco fa parte di un file che a monte contiene un form che invia i dati allo stesso file che lo contiene. Compie di seguito la update riportata, sulla tabella gbgar_scad_periodo solo se viene attivato la check box che fa comparire anche il div, nel form, che contengono i campi in cui si inseriscono eventuali nuove date di scadenza.
In caso contrario il file spedisce a se stesso solo il valore del campo data_servizio.
poi ovviamente metto i valori in omonime variabili.
Ovviamente faccio una select successiva alla tabella delle scadenze che tira su nuovi valori eventualmente aggiornati oppure quelli esistenti precedentemente.
Tutti i valori poi sono inseriti nella variabile globale $SESSION che così mi trovo a disposizione anche nalla webapp-gest-servizi.php che compie le insert into/update/delete sulle tabelle gbgar_serv_master e gbgar_serv_detail.
Cmq non riesco a definire un periodo scolastico e non scolastico.
Il periodo puo essere solo invenale o estivo.
In ogni giorno del periodo invernale ci sono delle corse scolastiche e non scolastiche.
Se ad es le scuole di Forlì son chiuse per il. Patrono locale, nel nostro ambito le corse "scolastiche" vengono cmq eseguite.
CORSE tpl scolastiche non sono servizi scuolabus.
Le Corse invernali feriali ma non scolastiche sono solo quelle in cui le lezioni sono ufficialmente sospese es: 23, 24,,27,28... dic (sempre che non coincidano con domenica) etc...
Quindi come faccio a definire un periodo scolastico oppure non scolastico?
Quindi nella tabella gbgar_corse ho il campo frequenza, perché per lo stesso giorno posso avere la corsa delle 6.30 della linea 159 che è scolastica, e nello stesso gg stessa linea ore 8.15 corsa feriale ma non scolastica.
Però effettivamente, si è anche sicuri che tolto il periodo estivo, natalizio e pasquale i giorni feriali son tutti anche scolastici.
Quindi si mi conviene nella tabella gbgar_scad_periodi aggiungere
Sosp_scol_natale start/end e
Sosp_scol_pasquale start/end.
Aggiungendo Il campo descrizione_periodo.
quindi si, santo cielo la query update attuale sulla tabella gbga_scad_periodi non funzionerà più e devo rifarla.
nell'orario estivo ovviamente questa variante non esiste.
Ora scappo a fare dei servizi appunto
Buona giornata
Filippo P.