50 lines
1.4 KiB
PHP
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);
|
|
}
|