prepare(" SELECT can_manage_rdv FROM secretaire_praticien WHERE secretaire_user_id = :u AND praticien_id = :p AND is_active = 1 LIMIT 1 "); $st->execute(['u'=>$compteId,'p'=>$praticien_id]); $pivot = $st->fetch(PDO::FETCH_ASSOC); if (!$pivot || (int)$pivot['can_manage_rdv'] !== 1) { http_response_code(403); exit('Forbidden'); } // --- Aujourd’hui en Europe/Paris --- date_default_timezone_set('Europe/Paris'); $tz = new DateTimeZone('Europe/Paris'); $todayStart = (new DateTime('today', $tz))->setTime(0, 0, 0); $todayEnd = (clone $todayStart)->setTime(23, 59, 59); $today_start = $todayStart->format('Y-m-d H:i:s'); $today_end = $todayEnd->format('Y-m-d H:i:s'); // --- RDV du jour pour ce praticien --- $stmt = $pdo->prepare(" SELECT rv.*, c.nom AS nom_client, c.prenom AS prenom_client, c.email FROM rendez_vous rv JOIN client c ON rv.client_id = c.id WHERE rv.praticien_id = :p AND rv.date_rdv BETWEEN :d1 AND :d2 ORDER BY rv.date_rdv ASC "); $stmt->execute(['p'=>$praticien_id, 'd1'=>$today_start, 'd2'=>$today_end]); $rdvs = $stmt->fetchAll(PDO::FETCH_ASSOC); // Map statuts (valeurs BDD -> libellés traduits) $statutMap = [ 'prévu' => $translations['statut_prevu'] ?? 'Prévu', 'confirmé' => $translations['statut_confirme'] ?? 'Confirmé', 'annulé' => $translations['statut_annule'] ?? 'Annulé', 'terminé' => $translations['statut_termine'] ?? 'Terminé', ]; $PAGE_TITRE = $translations['titre_rdv_du_jour'] ?? 'Rendez-vous du jour'; $HEAD_EXTRA = << HTML; require_once __DIR__ . '/../includes/header_cabinet.php'; ?>

-

format('H:i')) ?>