Init Git Prod Mars 2026

This commit is contained in:
Oleg Barykin committed 2026-03-05 10:25:39 +01:00
commit d81efe93b1
362 files changed
+86627

No files matched your search

+97
View File
@@ -0,0 +1,97 @@
<?php
require_once __DIR__ . '/../includes/init_secretaire.php';
if (!function_exists('h')) { function h($s){ return htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8'); } }
$sec_uid = (int)($_SESSION['compte_id'] ?? 0);
if ($sec_uid<=0) { header('Location:/index.php'); exit; }
// Liste praticiens
$q = $pdo->prepare("
SELECT sp.id as spid, sp.praticien_id, sp.can_manage_rdv, sp.can_edit_slots, sp.is_active,
p.nom, p.prenom, p.specialite, p.ville
FROM secretaire_praticien sp
JOIN praticien p ON p.id = sp.praticien_id
WHERE sp.secretaire_user_id = :u AND sp.is_active=1
ORDER BY p.nom, p.prenom
");
$q->execute(['u'=>$sec_uid]);
$rows = $q->fetchAll(PDO::FETCH_ASSOC);
// Compteurs simples Today/Tomorrow par praticien
$today = (new DateTime('today'))->format('Y-m-d 00:00:00');
$tomorrow = (new DateTime('tomorrow'))->format('Y-m-d 00:00:00');
$counts = [];
if ($rows) {
$ids = array_column($rows,'praticien_id');
$in = implode(',', array_fill(0, count($ids), '?'));
$s = $pdo->prepare("
SELECT praticien_id,
SUM(date_rdv >= ? AND date_rdv < ?) AS today_count,
SUM(date_rdv >= ? AND date_rdv < DATE_ADD(?, INTERVAL 1 DAY)) AS tomorrow_count
FROM rendez_vous
WHERE praticien_id IN ($in) AND statut IN ('prévu','confirmé')
GROUP BY praticien_id
");
$params = [$today,(new DateTime('tomorrow'))->format('Y-m-d 00:00:00'), (new DateTime('tomorrow'))->format('Y-m-d 00:00:00'), (new DateTime('tomorrow'))->format('Y-m-d 00:00:00')];
$s->execute(array_merge($params, $ids));
foreach($s->fetchAll(PDO::FETCH_ASSOC) as $r){ $counts[(int)$r['praticien_id']] = $r; }
}
require_once __DIR__ . '/../includes/header_cabinet.php';
?>
<div class="main1">
<div class="shadow p-4 rounded bg-light">
<h1 class="h4 mb-3"><?= h($translations['sec_dashboard_titre'] ?? 'Secrétariat — Tableau de bord') ?></h1>
<?php if(!$rows): ?>
<div class="alert alert-info"><?= h($translations['sec_aucun_praticien'] ?? "Aucun praticien lié pour l’instant.") ?></div>
<?php else: ?>
<div class="row g-4">
<?php foreach($rows as $r):
$pid = (int)$r['praticien_id'];
$c = $counts[$pid] ?? ['today_count'=>0,'tomorrow_count'=>0];
?>
<div class="col-12 col-md-6 col-lg-6">
<div class="card h-100">
<div class="card-body">
<div class="d-flex justify-content-between align-items-start mb-2">
<div>
<div class="fw-semibold"><?= h($r['prenom'].' '.$r['nom']) ?></div>
<div class="text-muted small"><?= h(trim(($r['specialite']??'').' · '.($r['ville']??''), ' · ')) ?></div>
</div>
<span class="badge bg-secondary"><?= h($translations['sec_actif'] ?? 'Actif') ?></span>
</div>
<div class="d-flex gap-3 mb-3">
<div><span class="fw-bold"><?= (int)$c['today_count'] ?></span> <span class="text-muted small"><?= h($translations['sec_aujourdhui'] ?? 'aujourd’hui') ?></span></div>
<div><span class="fw-bold"><?= (int)$c['tomorrow_count'] ?></span> <span class="text-muted small"><?= h($translations['sec_demain'] ?? 'demain') ?></span></div>
</div>
<div class="d-flex flex-wrap gap-2">
<a class="btn btn-primary btn-sm" href="agenda.php?praticien_id=<?= $pid ?>"><?= h($translations['choisir'] ?? 'Choisir') ?></a>
<?php if ($r['can_manage_rdv']): ?>
<!--<a class="btn btn-outline-secondary btn-sm" href="agenda.php?praticien_id=<?= $pid ?>"><?= h($translations['choisir'] ?? 'Choisir') ?></a>
<a class="btn btn-outline-secondary btn-sm" href="rendez_vous_du_jour.php?praticien_id=<?= $pid ?>"><?= h($translations['sec_btn_rdv'] ?? 'Rendez-vous') ?></a>
<a class="btn btn-outline-secondary btn-sm" href="rendez_vous.php?praticien_id=<?= $pid ?>"><?= h($translations['sec_btn_rdv_jour'] ?? 'Les rendez-vous') ?></a>
<a class="btn btn-outline-secondary btn-sm" href="reserver_rdv.php?praticien_id=<?= $pid ?>"><?= h($translations['sec_btn_prendre'] ?? 'Prendre un RDV') ?></a>-->
<?php endif; ?>
<?php if ($r['can_edit_slots']): ?>
<!--<a class="btn btn-outline-secondary btn-sm" href="disponibilites.php?praticien_id=<?= $pid ?>"><?= h($translations['sec_btn_dispos'] ?? 'Disponibilités') ?></a>-->
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>
<footer class="site-footer">
<div class="container">
<p><?= $translations['copyr'] ?? '&copy; '.date('Y') ?></p>
</div>
</footer>