Confirmar egreso como unico evento para cerrar internacion y liberar cama
This commit is contained in:
@@ -358,17 +358,23 @@ const agregarCama = useCallback(async (cama: Omit<Cama, 'id'>) => {
|
||||
return;
|
||||
}
|
||||
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}`);
|
||||
setState(prev => ({
|
||||
...prev,
|
||||
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) {
|
||||
console.error('Error al eliminar cama:', err);
|
||||
throw err;
|
||||
}
|
||||
}, [state.currentUser, apiCall]);
|
||||
}, [state.currentUser, state.internaciones, apiCall]);
|
||||
|
||||
// Acciones de internaciones
|
||||
const iniciarInternacion = useCallback(async (internacion: Omit<Internacion, 'id' | 'activa'>) => {
|
||||
|
||||
Reference in New Issue
Block a user