feat(dashboard): accesos rápidos en dropdown por grupo, filtrado por rol
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
d6e1d083f4
commit
e90cfda3f3
@@ -116,26 +116,54 @@ Layout::open('Dashboard Turnero', 'fas fa-chart-bar');
|
|||||||
</style>
|
</style>
|
||||||
|
|
||||||
<?php
|
<?php
|
||||||
// Cargar lugares activos para los botones de acceso rápido
|
$_dashRole = $_SESSION['admin_user']['role'] ?? 'admin';
|
||||||
$_dbLugares = [];
|
$_dashIsAdmin = in_array($_dashRole, ['superadmin', 'admin', 'supervisor'], true);
|
||||||
|
$_dashIsRecep = $_dashRole === 'recepcionista';
|
||||||
|
$_dashIsBacte = $_dashRole === 'bacteriologo';
|
||||||
|
|
||||||
|
$_dashReceps = [];
|
||||||
|
$_dashMuestras = [];
|
||||||
try {
|
try {
|
||||||
$_pdo = Database::getInstance()->getConnection();
|
$_pdo = Database::getInstance()->getConnection();
|
||||||
// Recepción: primer escritorio
|
if ($_dashIsAdmin || $_dashIsRecep)
|
||||||
$_receps = $_pdo->query("SELECT id, nombre FROM turnero_lugares WHERE activo=1 AND tipo='recepcion' ORDER BY sort_order")->fetchAll(PDO::FETCH_ASSOC);
|
$_dashReceps = $_pdo->query("SELECT id, nombre FROM turnero_lugares WHERE activo=1 AND tipo='recepcion' ORDER BY sort_order")->fetchAll(PDO::FETCH_ASSOC);
|
||||||
$_muestras = $_pdo->query("SELECT id, nombre FROM turnero_lugares WHERE activo=1 AND tipo='muestras' ORDER BY sort_order")->fetchAll(PDO::FETCH_ASSOC);
|
if ($_dashIsAdmin || $_dashIsBacte)
|
||||||
foreach ($_receps as $_l) $_dbLugares[] = ['icon'=>'fas fa-concierge-bell', 'label'=>$_l['nombre'], 'url'=>BASE_URL.'erp.php?m=turnero&v=recepcion&desk_id='.$_l['id']];
|
$_dashMuestras = $_pdo->query("SELECT id, nombre FROM turnero_lugares WHERE activo=1 AND tipo='muestras' ORDER BY sort_order")->fetchAll(PDO::FETCH_ASSOC);
|
||||||
foreach ($_muestras as $_l) $_dbLugares[] = ['icon'=>'fas fa-flask', 'label'=>$_l['nombre'], 'url'=>BASE_URL.'erp.php?m=turnero&v=lugar&lugar_id='.$_l['id']];
|
|
||||||
} catch (\Throwable $_) {}
|
} catch (\Throwable $_) {}
|
||||||
?>
|
?>
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<h1><i class="fas fa-chart-bar me-2 text-primary"></i>Dashboard Turnero</h1>
|
<h1><i class="fas fa-chart-bar me-2 text-primary"></i>Dashboard Turnero</h1>
|
||||||
|
|
||||||
<!-- Accesos rápidos a lugares -->
|
<!-- Accesos rápidos: dropdown por grupo, filtrado por rol -->
|
||||||
<?php foreach ($_dbLugares as $_btn): ?>
|
<?php if (!empty($_dashReceps)): ?>
|
||||||
<a href="<?= htmlspecialchars($_btn['url'], ENT_QUOTES) ?>" class="btn btn-sm btn-outline-primary">
|
<div class="dropdown">
|
||||||
<i class="<?= $_btn['icon'] ?> me-1"></i><?= htmlspecialchars($_btn['label'], ENT_QUOTES) ?>
|
<button class="btn btn-sm btn-outline-primary dropdown-toggle" type="button" data-bs-toggle="dropdown">
|
||||||
</a>
|
<i class="fas fa-concierge-bell me-1"></i>Recepción
|
||||||
<?php endforeach; ?>
|
</button>
|
||||||
|
<ul class="dropdown-menu shadow-sm">
|
||||||
|
<?php foreach ($_dashReceps as $_r): ?>
|
||||||
|
<li><a class="dropdown-item" href="<?= BASE_URL ?>erp.php?m=turnero&v=recepcion&desk_id=<?= (int)$_r['id'] ?>">
|
||||||
|
<i class="fas fa-chair me-1 text-primary"></i><?= htmlspecialchars($_r['nombre'], ENT_QUOTES) ?>
|
||||||
|
</a></li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if (!empty($_dashMuestras)): ?>
|
||||||
|
<div class="dropdown">
|
||||||
|
<button class="btn btn-sm btn-outline-success dropdown-toggle" type="button" data-bs-toggle="dropdown">
|
||||||
|
<i class="fas fa-flask me-1"></i>Toma de Muestras
|
||||||
|
</button>
|
||||||
|
<ul class="dropdown-menu shadow-sm">
|
||||||
|
<?php foreach ($_dashMuestras as $_m): ?>
|
||||||
|
<li><a class="dropdown-item" href="<?= BASE_URL ?>erp.php?m=turnero&v=lugar&lugar_id=<?= (int)$_m['id'] ?>">
|
||||||
|
<i class="fas fa-vial me-1 text-success"></i><?= htmlspecialchars($_m['nombre'], ENT_QUOTES) ?>
|
||||||
|
</a></li>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<!-- Selector de fecha -->
|
<!-- Selector de fecha -->
|
||||||
<div class="d-flex align-items-center gap-2 ms-auto">
|
<div class="d-flex align-items-center gap-2 ms-auto">
|
||||||
|
|||||||
Reference in New Issue
Block a user