up
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
/**
|
||||
* POST /api/lab/autorizar_orden.php
|
||||
* Cambia el estado de una orden médica (flujo de revisión).
|
||||
* Body JSON:
|
||||
* { id, accion: 'en_revision'|'autorizada'|'rechazada'|'completada', comentario? }
|
||||
*/
|
||||
require_once __DIR__ . '/_helpers.php';
|
||||
requireMethod('POST');
|
||||
|
||||
try {
|
||||
$datos = inputJson();
|
||||
$om = new OrdenMedica();
|
||||
$admin = adminId();
|
||||
|
||||
if (empty($datos['id'])) {
|
||||
jsonError('El campo id es obligatorio');
|
||||
}
|
||||
if (empty($datos['accion'])) {
|
||||
jsonError('El campo accion es obligatorio');
|
||||
}
|
||||
|
||||
$id = (int)$datos['id'];
|
||||
$accion = $datos['accion'];
|
||||
$comentario = $datos['comentario'] ?? '';
|
||||
|
||||
if ($accion === 'rechazada' && empty($comentario)) {
|
||||
jsonError('El motivo de rechazo es obligatorio');
|
||||
}
|
||||
|
||||
$om->cambiarEstado($id, $accion, $admin, $comentario);
|
||||
|
||||
$mensajes = [
|
||||
'en_revision' => 'Orden marcada en revisión',
|
||||
'autorizada' => 'Orden autorizada correctamente',
|
||||
'rechazada' => 'Orden rechazada',
|
||||
'en_domicilio'=> 'Orden marcada como en domicilio',
|
||||
'completada' => 'Orden completada',
|
||||
];
|
||||
|
||||
jsonOk(['id' => $id], $mensajes[$accion] ?? 'Estado actualizado');
|
||||
} catch (InvalidArgumentException $e) {
|
||||
jsonError($e->getMessage());
|
||||
} catch (Exception $e) {
|
||||
jsonError($e->getMessage(), 500);
|
||||
}
|
||||
Reference in New Issue
Block a user