<?php
/* doc-project | pointages/traitement_modif_pointage.php | Traite la modification d’un pointage, met à jour la base et notifie l’administration par e-mail. | Expose: aucun | Dépend de: vendor/autoload.php, config.php, pointage.php | Impacte: BDD z_ptg_aqp_pointages, envoi SMTP Gmail, redirection UI | Tables: z_ptg_aqp_pointages(PointageID, DateHeureEntree, DateHeureSortie, UserID), z_ptg_aqp_utilisateurs(UserID, Nom, Prenom) */
error_reporting(E_ALL);
ini_set('display_errors', 1);
require 'vendor/autoload.php'; // Inclure l'autoloader généré par Composer
// Démarrage de la session et connexion à la base de données
session_start();
require_once "config.php";
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;



if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $pointageId = $_POST['pointageId'];
    $DateHeureEntree = $_POST['DateHeureEntree'];
    $DateHeureSortie = $_POST['DateHeureSortie'];


    // Récupérer les données du pointage initial depuis la base de données
$stmt = $pdo->prepare("SELECT DateHeureEntree, DateHeureSortie FROM z_ptg_aqp_pointages WHERE PointageID = :pointageId");
$stmt->execute([':pointageId' => $pointageId]);
$pointageInitial = $stmt->fetch(PDO::FETCH_ASSOC);

// Extraire les valeurs de DateHeureEntree et DateHeureSortie
$DateHeureEntreeInitiale = $pointageInitial['DateHeureEntree'];
$DateHeureSortieInitiale = $pointageInitial['DateHeureSortie'];


// Mise à jour des informations de pointage
$stmt = $pdo->prepare("UPDATE z_ptg_aqp_pointages SET DateHeureEntree = :DateHeureEntree, DateHeureSortie = :DateHeureSortie WHERE PointageID = :pointageId");
$stmt->execute([
    ':DateHeureEntree' => $DateHeureEntree,
    ':DateHeureSortie' => $DateHeureSortie,
    ':pointageId' => $pointageId
]);


    // Récupérer UserId associé à PointageId
    $stmt = $pdo->prepare("SELECT UserID FROM z_ptg_aqp_pointages WHERE PointageID = :pointageId");
    $stmt->execute([':pointageId' => $pointageId]);
    $userId = $stmt->fetch(PDO::FETCH_ASSOC)['UserID'];

    // Récupérer le nom du salarié depuis la table z_ptg_aqp_utilisateurs
    $stmt = $pdo->prepare("SELECT Nom, Prenom FROM z_ptg_aqp_utilisateurs WHERE UserID = :userId");
    $stmt->execute([':userId' => $userId]);
    $userData = $stmt->fetch(PDO::FETCH_ASSOC);
    $nomSalarie = $userData['Nom'];
    $prenomSalarie = $userData['Prenom'];

  

// Construire le message
$message = "Un pointage vient d'être modifié :\n\n";
$message .= "Nom du salarié : $nomSalarie $prenomSalarie\n\n";
$message .= "Pointage initial:\n";
$message .= "Entrée : " . date("Y-m-d H:i:s", strtotime($DateHeureEntreeInitiale)) . "\n";
$message .= "Sortie : " . date("Y-m-d H:i:s", strtotime($DateHeureSortieInitiale)) . "\n\n";
$message .= "Pointage modifié :\n";
$message .= "Entrée : " . date("Y-m-d H:i:s", strtotime($DateHeureEntree)) . "\n";
$message .= "Sortie : " . date("Y-m-d H:i:s", strtotime($DateHeureSortie)) . "\n\n\n";
$message .= "Date et heure de modification : " . date("Y-m-d H:i:s") . "\n";


    // Configurer PHPMailer pour utiliser Gmail
    $mail = new PHPMailer();
    $mail->isSMTP();
    $mail->Host = 'smtp.gmail.com';
    $mail->SMTPAuth = true;
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port = 587;
    $mail->Username = 'jefftuccionote@gmail.com'; // Remplacez par votre adresse Gmail
    $mail->Password = 'lzleartlssottqix'; // Remplacez par votre mot de passe Gmail

    // Adresse de l'expéditeur
    $mail->setFrom('jefftuccionote@gmail.com', 'Modification Pointages');

    // Adresse du destinataire
    $adminEmail = 'jefftuccionote@gmail.com'; // Remplacez par l'adresse email de l'administrateur
    $mail->addAddress($adminEmail);

    // Sujet de l'e-mail
    $sujet = "Modification du pointage par $nomSalarie";
    $mail->Subject = $sujet;

    // Corps de l'e-mail
    $mail->Body = $message;

    // Envoyer l'e-mail
    if ($mail->send()) {
        // Redirection vers pointage.php avec UserId
        $toastMessage = rawurlencode("Pointage modifié avec succès");
        header("Location: pointage.php?employe=$userId&view=1&toast=$toastMessage&toastType=success");
        exit;
    } else {
        echo 'L\'e-mail n\'a pas pu être envoyé. Erreur: ' . $mail->ErrorInfo;
    }
}
?>
