Merge branch 'main' of github.com:nonot345/SAE_203_Gestion_des_sauveteurs

This commit is contained in:
ryana 2026-06-08 15:50:48 +02:00
commit 6afb45f006
7 changed files with 146 additions and 91 deletions

View file

@ -1,8 +1,5 @@
<?php
/**
* Switch to the appropriate controller according to HTTP method
*/
function contact_ctrl() {
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
contact_write_ctrl();
@ -11,42 +8,35 @@ function contact_ctrl() {
}
}
/**
* Form display
*/
function contact_form_ctrl() {
// Print form
require('views/contact_form_view.php');
require('views/contact_views.php');
}
/**
* Form processing
*/
function contact_write_ctrl() {
// On récupère les données du formulaire
$nom = $_POST['nom'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$dep = $_POST['dep'];
$spe = $_POST['spe'];
$tel = $_POST['tel'];
$date = $_POST['ladate_lheure'];
$dep = $_POST['dep'];
$spe = $_POST['spe'];
$tel = $_POST['tel'];
$date = $_POST['ladate'];
$heure = $_POST['lheure'];
// Combine date + heure en DateTime
$date_heure = $date . ' ' . $heure . ':00';
// On peut ajouter une petite validation simple
if (empty($nom) || empty($prenom) || empty($tel)) {
echo "Veuillez remplir tous les champs obligatoires !";
$_SESSION['notification'] = 'Veuillez remplir tous les champs obligatoires.';
require('views/contact_views.php');
return;
}
// Connexion à la base
require('models/connection.php');
$c = connection();
// Création de la personne
require('models/contact_crud.php');
create_personne($spe, $nom, $prenom, $dep,$tel, $date_heure, $c);
// Affichage de la page de confirmation
require('views/welcome_view.php');
create_sauveteur($c, $nom, $prenom, $dep, $spe, $date_heure, $tel);
$_SESSION['notification'] = 'Sauveteur ajouté avec succès.';
header('Location: index.php?route=ajout_personnes');
exit;
}

View file

@ -0,0 +1,45 @@
<?php
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
ini_set('display_errors', 1);
require_once('models/connection.php');
require_once('models/operation_crud.php');
function operations_form_ctrl() {
// Appelle TA vue exacte
require('views/operations_view.php');
}
function add_operation_write_ctrl() {
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// 1. On récupère les 3 champs de ton formulaire
$date_debut = $_POST['date_debut'];
$date_fin = $_POST['date_fin'];
$lieu = $_POST['lieu'];
// 2. On force les champs obligatoires de la BDD en arrière-plan
$en_prepa = 0;
$id_sauveteur = 1; // Par défaut
$id_statut = 1; // Par défaut
$id_utilisateur = 1; // Par défaut
$connex = connection();
// On envoie tout au modèle
$resultat = create_operation_crud($connex, $date_debut, $date_fin, $lieu, $en_prepa, $id_sauveteur, $id_statut, $id_utilisateur);
require('models/close_connection.php');
if ($resultat) {
$_SESSION['notification'] = "Opération enregistrée avec succès.";
} else {
$_SESSION['notification'] = "<span style='color:red;'>Erreur lors de l'enregistrement.</span>";
}
header('Location: index.php?route=operations');
exit();
}
}
?>

View file

@ -65,6 +65,11 @@
modif_utilisateurs_write_ctrl();
break;
case 'ajout_personnes':
require('controllers/contact_crtl.php');
contact_ctrl();
break;
case 'operations':
require('controllers/operation_ctrl.php');
operations_form_ctrl();

View file

@ -1,23 +1,15 @@
<?php
function create_sauveteur(PDO $connex, $nom, $prenom, $dep, $spe, $date, $heure, $role, $tel)
{
$req = "INSERT INTO Sauveteur
(nom, prenom, dep, spe, ladate, lheure, role, tel)
VALUES
(:nom, :prenom, :dep, :spe, :date, :heure, :role, :tel)";
$prep = $connex->prepare($req);
function create_sauveteur(PDO $c, string $nom, string $prenom, string $dep, string $spe, string $date_heure, string $tel): void {
$req = "INSERT INTO Sauveteur (nom, prenom, departement, specialite, DateHeureEngagement, NumTel)
VALUES (:nom, :prenom, :dep, :spe, :date_heure, :tel)";
$prep = $c->prepare($req);
$prep->bindValue(':nom', $nom);
$prep->bindValue(':prenom', $prenom);
$prep->bindValue(':dep', $dep);
$prep->bindValue(':spe', $spe);
$prep->bindValue(':date_heure', $date_heure);
$prep->bindValue(':tel', $tel);
$prep->bindValue(':date', $date);
$prep->execute();
}

View file

@ -0,0 +1,24 @@
<?php
function create_operation_crud(PDO $connex, string $date_debut, string $date_fin, string $lieu, int $en_prepa, int $id_sauveteur, int $id_statut, int $id_utilisateur): bool {
// On insère les données dans la table Mission avec le champ Lieu ajouté
$req = "INSERT INTO Mission (DateHeureDebut, DateHeureFin, EnPrepa, ID_Sauveteur, ID_statut, ID_Utilisateur, Lieu)
VALUES (:date_debut, :date_fin, :en_prepa, :id_sauveteur, :id_statut, :id_utilisateur, :lieu)";
$prep = $connex->prepare($req);
$prep->bindValue(':date_debut', $date_debut);
$prep->bindValue(':date_fin', $date_fin);
$prep->bindValue(':lieu', $lieu);
$prep->bindValue(':en_prepa', $en_prepa, PDO::PARAM_INT);
$prep->bindValue(':id_sauveteur', $id_sauveteur, PDO::PARAM_INT);
$prep->bindValue(':id_statut', $id_statut, PDO::PARAM_INT);
$prep->bindValue(':id_utilisateur', $id_utilisateur, PDO::PARAM_INT);
$resultat = $prep->execute();
$prep->closeCursor();
return $resultat;
}
?>

View file

@ -1,50 +1,50 @@
<?php require('header.php')?>
<?php require('views/header.php'); ?>
<h2>Ajouts de personnes </h2>
<h2>Ajout de personnes</h2>
<form action="traite_formulaire.php" method="post">
<p>Nom : <input type="text" name="nom" /></p>
<p>Prénom : <input type="text" name="prenom" /></p>
<p>Département : <input type="text" name="dep" /></p>
<label for="spe">Spécialité :</label>
<select type="number" min="1" placeholder="spécialité" name="spe" >
<option value="1" selected="true">Evacuation </option>
<option value="2">ASV (assistance victime)</option>
<option value="3">Transmission</option>
<option value="4">Conseiller technique(chef)</option>
<option value="5">Gestion</option>
<option value="6">Désobstruction</option>
<option value="7">Médical</option>
<option value="8">Ventilation</option>
<option value="9">Pas de spécialitées</option>
</select>
<form action="index.php?route=ajout_personnes" method="post">
<p>
<label>Nom :</label>
<input type="text" name="nom" required>
</p>
<p>
<label for="date">Date d'engagement sur l'opération de secours :</label>
<input type="date" name="ladate" /></p>
</p>
<p>
<label for="heure">Heure d'engagement sur l'opération de secours :</label>
<input type="time" name="lheure"/>
</p>
<p>
<label for="roles">Rôle :</label>
<select type="number" min="1" placeholder="Rôle" name="role">
<option value="1" selected="true">Gestionnaire </option>
<option value="2">Lecteur </option>
<option value="3">Admin</option>
</select>
</p>
<p>
<label for="tel">Numéro de téléphone :</label>
<input type="tel" id="tel" name="tel" placeholder="Numéro de téléphone" required>
</p>
<p>
<label>Prénom :</label>
<input type="text" name="prenom" required>
</p>
<p>
<label>Département :</label>
<input type="text" name="dep" required>
</p>
<p>
<label for="spe">Spécialité :</label>
<select name="spe" id="spe">
<option value="1">Évacuation</option>
<option value="2">ASV (assistance victime)</option>
<option value="3">Transmission</option>
<option value="4">Conseiller technique (chef)</option>
<option value="5">Gestion</option>
<option value="6">Désobstruction</option>
<option value="7">Médical</option>
<option value="8">Ventilation</option>
<option value="9">Pas de spécialité</option>
</select>
</p>
<p>
<label for="date">Date d'engagement :</label>
<input type="date" id="date" name="ladate" required>
</p>
<p>
<label for="heure">Heure d'engagement :</label>
<input type="time" id="heure" name="lheure" required>
</p>
<p>
<label for="tel">Numéro de téléphone :</label>
<input type="tel" id="tel" name="tel" required>
</p>
<p>
<input type="submit" value="Valider">
<input type="reset" value="Annuler">
</p>
</form>
<input type="submit" value="Valider" />
<input type="reset" value="Annuler" />
</form>
<?php
require('footer.php');
<?php require('views/footer.php'); ?>

View file

@ -1,9 +1,8 @@
<?php require('views/header.php'); ?>
<nav style="margin-bottom: 20px;">
<a href="index.php?route=operations" style="text-decoration: underline; font-weight: bold; margin-right: 15px;">Opérations</a>
<a href="index.php?route=ajout_personnes" style="margin-right: 15px;">Ajout personnes</a>
<a href="index.php?route=planning">Planning</a>
<nav class="sub-nav">
<a href="index.php?route=operations">Opérations</a>
<a href="index.php?route=ajout_personnes">Ajout personnes</a>
</nav>
<h2>Création d'une opération</h2>