SAE_203_Gestion_des_sauveteurs/controllers/operation_ctrl.php
Noah 65abef740d Formulaire mission complet : sélection sauveteur/statut, durée indéterminée, préparation
- Ajout get_statuts() et get_sauveteurs() pour les select du formulaire
- Stockage ID utilisateur en session pour lier la mission au créateur
- Durée indéterminée -> date_fin = 2099-12-31
- Checkbox "En préparation"
- Renommage Opérations -> Missions (header + sub-nav)
- Sub-nav harmonisée entre nouvelle mission et ajout sauveteur
2026-06-10 22:05:40 +02:00

72 lines
2 KiB
PHP

<?php
function operations_form_ctrl()
{
require_once('controllers/auth_utilities.php');
if (!has_any_role(['gestionnaire', 'administration'])) {
header('Location: index.php?route=auth&ask=operations');
exit;
}
require('models/connection.php');
require('models/lecture_page_model.php');
$pdo = connection();
$sauveteurs = get_sauveteurs($pdo);
$statuts = get_statuts($pdo);
require('views/operations_view.php');
}
function add_operation_write_ctrl()
{
require_once('controllers/auth_utilities.php');
if (!has_any_role(['gestionnaire', 'administration'])) {
header('Location: index.php?route=auth&ask=operations');
exit;
}
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
header('Location: index.php?route=operations');
exit;
}
$id_sauveteur = (int) $_POST['id_sauveteur'];
$id_statut = (int) $_POST['id_statut'];
$lieu = $_POST['lieu'];
$date_debut = str_replace('T', ' ', $_POST['date_debut']) . ':00';
$en_prepa = isset($_POST['en_prepa']) ? 1 : 0;
$indeterminee = isset($_POST['duree_indeterminee']);
// Durée indéterminée → date très lointaine
if ($indeterminee || empty($_POST['date_fin'])) {
$date_fin = '2099-12-31 23:59:00';
} else {
$date_fin = str_replace('T', ' ', $_POST['date_fin']) . ':00';
}
// Utilisateur connecté
$id_utilisateur = isset($_SESSION['id']) ? (int) $_SESSION['id'] : 1;
require('models/connection.php');
$c = connection();
require('models/operation_crud.php');
$resultat = create_operation_crud(
$c,
$date_debut,
$date_fin,
$lieu,
$en_prepa,
$id_sauveteur,
$id_statut,
$id_utilisateur
);
if ($resultat) {
$_SESSION['notification'] = 'Mission enregistrée avec succès.';
} else {
$_SESSION['notification'] = 'Erreur lors de l\'enregistrement de la mission.';
}
header('Location: index.php?route=operations');
exit;
}