Files
whatsapp/api/lab/save_asignacion.php
2026-03-10 18:42:51 -05:00

50 lines
1.4 KiB
PHP

<?php
/**
* POST /api/lab/save_asignacion.php
* Asigna (o reasigna) una enfermera a un domicilio.
* Body JSON:
* { domicilio_id, enfermera_id, notas? }
* -- Para liberar/completar:
* { id, accion: 'liberar'|'completar', motivo? }
*/
require_once __DIR__ . '/_helpers.php';
requireMethod('POST');
try {
$datos = inputJson();
$asig = new Asignacion();
$admin = adminId();
// Liberar o completar
if (!empty($datos['id']) && !empty($datos['accion'])) {
$id = (int)$datos['id'];
if ($datos['accion'] === 'liberar') {
$asig->liberar($id, $admin, $datos['motivo'] ?? '');
jsonOk(['id' => $id], 'Asignación liberada');
}
if ($datos['accion'] === 'completar') {
$asig->completar($id, $admin);
jsonOk(['id' => $id], 'Asignación completada');
}
jsonError('Acción no reconocida');
}
// Asignar / reasignar
foreach (['domicilio_id', 'enfermera_id'] as $req) {
if (empty($datos[$req])) {
jsonError("El campo $req es obligatorio");
}
}
$id = $asig->asignar(
(int)$datos['domicilio_id'],
(int)$datos['enfermera_id'],
$admin,
$datos['notas'] ?? ''
);
jsonOk(['id' => $id], 'Enfermera asignada correctamente');
} catch (Exception $e) {
jsonError($e->getMessage(), 500);
}