From f8891d049852704dbbb666afbcb1ccdb14efdd2a Mon Sep 17 00:00:00 2001 From: ryana Date: Mon, 8 Jun 2026 15:53:57 +0200 Subject: [PATCH] modiflecture --- controllers/lecture_page_ctrl.php | 55 +++++++++++++++++++------------ models/lecture_page_model.php | 27 +++++++-------- views/lecture_page.php | 5 +++ 3 files changed, 53 insertions(+), 34 deletions(-) diff --git a/controllers/lecture_page_ctrl.php b/controllers/lecture_page_ctrl.php index 441e5e6..9e7afd6 100644 --- a/controllers/lecture_page_ctrl.php +++ b/controllers/lecture_page_ctrl.php @@ -1,53 +1,66 @@ '#2ecc71', - 'Sauveteur en approche de la cavité' => '#9b59b6', - 'Sauveteur sous terre' => '#8B4513', - 'Sauveteur équipe de gestion' => '#f1c40f', - "Sauveteur en mission à l'extérieur" => '#e67e22', - 'Sauveteur en repos' => '#3498db', - 'Sauveteur en brancardage civière' => '#e74c3c', + 'Sauveteur disponible' => '#2ecc71', + 'Sauveteur en approche de la cavité' => '#9b59b6', + 'Sauveteur sous terre' => '#8B4513', + 'Sauveteur équipe de gestion' => '#f1c40f', + "Sauveteur en mission à l'extérieur" => '#e67e22', + 'Sauveteur en repos' => '#3498db', + 'Sauveteur en brancardage civière' => '#e74c3c', ]; + // Créneaux 8h - 20h (30 min) $creneaux = []; for ($min = 8 * 60; $min < 20 * 60; $min += 30) { $creneaux[] = sprintf('%02d:%02d', intdiv($min, 60), $min % 60); } + // Index sauveteurs + grille vide $sauveteursById = []; + $grille = []; + foreach ($sauveteurs as $s) { $sauveteursById[$s['ID_Sauveteur']] = $s; - $grille[$s['ID_Sauveteur']] = array_fill_keys($creneaux, false); + $grille[$s['ID_Sauveteur']] = array_fill_keys($creneaux, ''); } + // Remplissage des missions foreach ($missions as $m) { + $id = $m['ID_Sauveteur']; + if (!isset($grille[$id])) continue; $specialite = $sauveteursById[$id]['Specialite'] ?? ''; - $couleur = $couleurs[$specialite] ?? '#cccccc'; - $debut = new DateTime($m['DtaHeureDebut']); - $fin = new DateTime($m['DtaHeureFin']); + $couleur = $couleurs[$specialite] ?? '#cccccc'; + + $debut = new DateTime($m['DtaHeureDebut']); + $fin = new DateTime($m['DtaHeureFin']); foreach ($creneaux as $c) { - $debutCreneau = new DateTime($date . ' ' . $c . ':00'); - $finCreneau = (clone $debutCreneau)->modify('+30 minutes'); - if ($debut < $finCreneau && $fin > $debutCreneau) { + + $start = new DateTime($date . ' ' . $c . ':00'); + $end = (clone $start)->modify('+30 minutes'); + + if ($debut < $end && $fin > $start) { $grille[$id][$c] = $couleur; } } } - require('views/planning_view.php'); - planning_view($sauveteurs, $creneaux, $grille, $date); + require 'views/planning_view.php'; } diff --git a/models/lecture_page_model.php b/models/lecture_page_model.php index 8bb7775..7ce2653 100644 --- a/models/lecture_page_model.php +++ b/models/lecture_page_model.php @@ -5,21 +5,22 @@ require_once 'config.php'; // Récupère tous les sauveteurs function get_all_sauveteurs(PDO $c): array { $req = "SELECT ID_Sauveteur, Nom, Prenom, Specialite FROM Sauveteur ORDER BY Nom, Prenom"; - $res = $c->query($req); - $sauveteurs = $res->fetchAll(PDO::FETCH_ASSOC); - $res->closeCursor(); - return $sauveteurs; + return $c->query($req)->fetchAll(PDO::FETCH_ASSOC); } -// Récupère les missions d'une journée +// Récupère les missions d'une date function get_missions_by_date(PDO $c, string $date): array { - $req = "SELECT ID_Mission, DtaHeureDebut, DtaHeureFin, ID_Sauveteur FROM Mission WHERE DATE(DtaHeureDebut) = :date OR DATE(DtaHeureFin) = :date"; - $prep = $c->prepare($req); - $prep->bindValue(':date', $date, PDO::PARAM_STR); - $prep->execute(); - $missions = $prep->fetchAll(PDO::FETCH_ASSOC); - $prep->closeCursor(); - return $missions; + $req = " + SELECT ID_Mission, DtaHeureDebut, DtaHeureFin, ID_Sauveteur + FROM Mission + WHERE DATE(DtaHeureDebut) = :date + OR DATE(DtaHeureFin) = :date + "; + + $stmt = $c->prepare($req); + $stmt->bindValue(':date', $date); + $stmt->execute(); + + return $stmt->fetchAll(PDO::FETCH_ASSOC); } - diff --git a/views/lecture_page.php b/views/lecture_page.php index a274d8d..49cd0cc 100644 --- a/views/lecture_page.php +++ b/views/lecture_page.php @@ -33,3 +33,8 @@ function planning_view(array $sauveteurs, array $creneaux, array $grille, string +<<<<<<< Updated upstream +======= +>>>>>> Stashed changes