70 lines
2.8 KiB
PHP
70 lines
2.8 KiB
PHP
<?php
|
|
/**
|
|
* Descriptor del módulo Turnero — Oleada 1
|
|
* Sistema de Turnero Inteligente con gestión de consentimientos informados.
|
|
*/
|
|
|
|
// ── Links estáticos base ──────────────────────────────────────
|
|
$_trLinks = [
|
|
['name' => 'Dashboard', 'icon' => 'fas fa-tachometer-alt', 'route' => '/erp.php?m=turnero&v=dashboard'],
|
|
['name' => 'Configuración', 'icon' => 'fas fa-sliders-h', 'route' => '/erp.php?m=turnero&v=configuracion'],
|
|
['name' => 'Kiosko', 'icon' => 'fas fa-desktop', 'route' => '/erp.php?m=turnero&v=kiosko'],
|
|
['name' => 'Pantalla TV Global', 'icon' => 'fas fa-th-large', 'route' => '/erp.php?m=turnero&v=display_global'],
|
|
];
|
|
|
|
// ── Links dinámicos: un enlace por escritorio de Recepción ────
|
|
try {
|
|
$_trPdo = Database::getInstance()->getConnection();
|
|
$_trDesks = $_trPdo->query(
|
|
"SELECT id, nombre FROM turnero_lugares
|
|
WHERE activo = 1 AND tipo = 'recepcion'
|
|
ORDER BY sort_order ASC"
|
|
)->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
if (!empty($_trDesks)) {
|
|
foreach ($_trDesks as $_d) {
|
|
$_trLinks[] = [
|
|
'name' => $_d['nombre'],
|
|
'icon' => 'fas fa-concierge-bell',
|
|
'route' => '/erp.php?m=turnero&v=recepcion&desk_id=' . (int)$_d['id'],
|
|
];
|
|
}
|
|
} else {
|
|
// Sin escritorios configurados: enlace genérico
|
|
$_trLinks[] = ['name' => 'Recepción', 'icon' => 'fas fa-concierge-bell', 'route' => '/erp.php?m=turnero&v=recepcion'];
|
|
}
|
|
} catch (\Throwable $_) {
|
|
// BD no disponible todavía (instalación inicial)
|
|
$_trLinks[] = ['name' => 'Recepción', 'icon' => 'fas fa-concierge-bell', 'route' => '/erp.php?m=turnero&v=recepcion'];
|
|
}
|
|
|
|
// ── Links dinámicos: un enlace por estación de Muestras ──────
|
|
try {
|
|
$_trMuestras = $_trPdo->query(
|
|
"SELECT id, nombre FROM turnero_lugares
|
|
WHERE activo = 1 AND tipo = 'muestras'
|
|
ORDER BY sort_order ASC"
|
|
)->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
foreach ($_trMuestras as $_m) {
|
|
$_trLinks[] = [
|
|
'name' => $_m['nombre'],
|
|
'icon' => 'fas fa-flask',
|
|
'route' => '/erp.php?m=turnero&v=lugar&lugar_id=' . (int)$_m['id'],
|
|
];
|
|
}
|
|
} catch (\Throwable $_) {}
|
|
|
|
return [
|
|
'slug' => 'turnero',
|
|
'name' => 'Turnero',
|
|
'icon' => 'fas fa-ticket-alt',
|
|
'category' => 'turnero',
|
|
'route' => '/erp.php?m=turnero&v=dashboard',
|
|
'is_active' => true,
|
|
'sort_order' => 40,
|
|
'oleada' => 1,
|
|
'description' => 'Sistema de turnos presenciales en recepción con prioridades, consentimientos y pantallas TV',
|
|
'links' => $_trLinks,
|
|
];
|