connect_error) { echo json_encode([ "success" => false, "message" => "Erreur de connexion DB : " . $conn->connect_error ]); exit(); } // Lecture du JSON envoyé $input = file_get_contents('php://input'); $data = json_decode($input, true); if (!isset( $data['EmployeeId'], $data['TypeConge'], $data['DateDebut'], $data['DateFin'], $data['NumDays'] )) { echo json_encode([ "success" => false, "message" => "Données manquantes pour la demande de congé." ]); exit(); } // Récupération des champs $employeeId = (int) $data['EmployeeId']; $typeCongeNom= $data['TypeConge']; $dateDebut = $data['DateDebut']; $dateFin = $data['DateFin']; $commentaire = $data['Commentaire'] ?? ''; $numDays = (int) $data['NumDays']; $statut = 'En attente'; $validateur = null; $currentDate= date('Y-m-d'); // date complète pour DateDemande // Mapping frontend → DB switch ($typeCongeNom) { case 'CP': $dbTypeCongeName = 'Congé payé'; break; case 'RTT': $dbTypeCongeName = 'RTT'; break; case 'ABS': $dbTypeCongeName = 'Congé maladie'; break; default: echo json_encode([ "success" => false, "message" => "Type de congé inconnu." ]); $conn->close(); exit(); } // Récupération de l'ID du type de congé $stmt = $conn->prepare("SELECT Id FROM TypeConge WHERE Nom = ?"); $stmt->bind_param("s", $dbTypeCongeName); $stmt->execute(); $res = $stmt->get_result(); if ($row = $res->fetch_assoc()) { $typeCongeId = (int) $row['Id']; } else { echo json_encode([ "success" => false, "message" => "Type de congé non trouvé en DB : $dbTypeCongeName" ]); $stmt->close(); $conn->close(); exit(); } $stmt->close(); // Requête d'insertion avec DateDemande explicitement dans l'insert $query = " INSERT INTO DemandeConge (EmployeeId, DateDebut, DateFin, TypeCongeId, Statut, DateDemande, Commentaire, Validateur) VALUES (?, ?, ?, ?, ?, ?, ?, ?) "; // Préparation de la requête $stmt = $conn->prepare($query); if (!$stmt) { error_log("Erreur prepare insert : " . $conn->error); echo json_encode([ "success" => false, "message" => "Erreur interne lors de la préparation de la requête." ]); $conn->close(); exit(); } // Pour la colonne Validateur, on passe '' si null $validParam = $validateur ?? ''; // Bind des paramètres (types : i=integer, s=string) $stmt->bind_param( "ississss", $employeeId, // i $dateDebut, // s $dateFin, // s $typeCongeId, // i $statut, // s $currentDate, // s - DateDemande $commentaire, // s $validParam // s ); // Exécution if ($stmt->execute()) { echo json_encode([ "success" => true, "message" => "Demande de congé soumise avec succès." ]); } else { error_log("Erreur execute insert : " . $stmt->error); echo json_encode([ "success" => false, "message" => "Erreur lors de l'enregistrement : " . $stmt->error ]); } $stmt->close(); $conn->close();