up
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* GET /api/lab/my_agenda.php
|
||||
* Devuelve la agenda del enfermero autenticado (o de cualquier enfermera para admins).
|
||||
*
|
||||
* Query params:
|
||||
* enfermera_id (int) — Requerido para admins. Enfermeros usan automáticamente el suyo.
|
||||
* fecha (Y-m-d) — Por defecto: hoy.
|
||||
* rango_inicio (Y-m-d) — Para vista semanal/mensual.
|
||||
* rango_fin (Y-m-d)
|
||||
*/
|
||||
require_once __DIR__ . '/_helpers.php';
|
||||
requireMethod('GET');
|
||||
|
||||
try {
|
||||
// Determinar enfermera_id
|
||||
if (userRole() === 'enfermero') {
|
||||
$eid = enfermeraId();
|
||||
if (!$eid) {
|
||||
jsonError('Tu usuario no tiene una enfermera vinculada. Contacta al administrador.');
|
||||
}
|
||||
} else {
|
||||
$eid = (int)($_GET['enfermera_id'] ?? 0);
|
||||
if (!$eid) {
|
||||
jsonError('enfermera_id requerido');
|
||||
}
|
||||
}
|
||||
|
||||
$enf = new Enfermera();
|
||||
$fecha = $_GET['fecha'] ?? date('Y-m-d');
|
||||
|
||||
// Agenda del día con pleno detalle
|
||||
$agenda = $enf->agenda($eid, $fecha);
|
||||
|
||||
// Enriquecer con servicios extra y estado de asignación
|
||||
$db = Database::getInstance();
|
||||
foreach ($agenda as &$item) {
|
||||
$item['servicios_extra'] = $db->fetchAll(
|
||||
"SELECT * FROM lab_servicios_extra WHERE domicilio_id = ? ORDER BY created_at ASC",
|
||||
[(int)$item['domicilio_id']]
|
||||
);
|
||||
// Info completa del domicilio (notas, indicaciones)
|
||||
$extra = $db->fetch(
|
||||
"SELECT notas_admin, indicaciones_dir, barrio, ciudad FROM lab_domicilios WHERE id = ?",
|
||||
[(int)$item['domicilio_id']]
|
||||
);
|
||||
if ($extra) $item = array_merge($item, $extra);
|
||||
}
|
||||
unset($item);
|
||||
|
||||
// Resumen rápido
|
||||
$totales = array_count_values(array_column($agenda, 'domicilio_estado'));
|
||||
|
||||
jsonOk([
|
||||
'enfermera_id' => $eid,
|
||||
'fecha' => $fecha,
|
||||
'agenda' => $agenda,
|
||||
'total' => count($agenda),
|
||||
'totales' => $totales,
|
||||
]);
|
||||
|
||||
} catch (Exception $e) {
|
||||
jsonError($e->getMessage(), 500);
|
||||
}
|
||||
Reference in New Issue
Block a user