Confirmar egreso como unico evento para cerrar internacion y liberar cama

This commit is contained in:
2026-08-12 00:09:56 +00:00
parent 12f0a7f1e7
commit cce8a0b4c8
2 changed files with 11 additions and 5 deletions
+8 -2
View File
@@ -358,17 +358,23 @@ const agregarCama = useCallback(async (cama: Omit<Cama, 'id'>) => {
return; return;
} }
try { try {
// Si hay una internación activa asociada a esta cama, remover la asociación en el servidor
const activeInternacion = state.internaciones.find(i => i.camaId === id && i.activa);
if (activeInternacion) {
await apiCall('PUT', `/internaciones/${activeInternacion.id}`, { camaId: '' });
}
await apiCall('DELETE', `/camas/${id}`); await apiCall('DELETE', `/camas/${id}`);
setState(prev => ({ setState(prev => ({
...prev, ...prev,
camas: prev.camas.filter(c => c.id !== id), camas: prev.camas.filter(c => c.id !== id),
internaciones: prev.internaciones.map(i => i.camaId === id ? { ...i, activa: false } : i), internaciones: prev.internaciones.map(i => i.camaId === id ? { ...i, camaId: undefined } : i),
})); }));
} catch (err) { } catch (err) {
console.error('Error al eliminar cama:', err); console.error('Error al eliminar cama:', err);
throw err; throw err;
} }
}, [state.currentUser, apiCall]); }, [state.currentUser, state.internaciones, apiCall]);
// Acciones de internaciones // Acciones de internaciones
const iniciarInternacion = useCallback(async (internacion: Omit<Internacion, 'id' | 'activa'>) => { const iniciarInternacion = useCallback(async (internacion: Omit<Internacion, 'id' | 'activa'>) => {
+3 -3
View File
@@ -400,7 +400,7 @@ export function MapaCamas({
</Dialog> </Dialog>
)} )}
{cama.estado !== 'Disponible' && canEditCama(cama.id) && ( {cama.estado !== 'Disponible' && cama.estado !== 'Ocupada' && canEditCama(cama.id) && (
<Button <Button
variant="outline" variant="outline"
className="w-full" className="w-full"
@@ -411,7 +411,7 @@ export function MapaCamas({
</Button> </Button>
)} )}
{cama.estado !== 'Reparacion' && canEditCama(cama.id) && ( {cama.estado !== 'Reparacion' && cama.estado !== 'Ocupada' && canEditCama(cama.id) && (
<Button <Button
variant="outline" variant="outline"
className="w-full" className="w-full"
@@ -422,7 +422,7 @@ export function MapaCamas({
</Button> </Button>
)} )}
{cama.estado !== 'Reservada' && canEditCama(cama.id) && ( {cama.estado !== 'Reservada' && cama.estado !== 'Ocupada' && canEditCama(cama.id) && (
<Button <Button
variant="outline" variant="outline"
className="w-full" className="w-full"