- emergency_rollback_inventory.sh: script interactivo de rollback - README_INVENTORY_FIX.md: guia completa de aplicacion y rollback
2.7 KiB
2.7 KiB
🆘 Instructivo: Fix de Inventario + Rollback de Emergencia
Archivos relacionados
| Archivo | Proposito |
|---|---|
fix_inventory_flow_complete.sql |
Aplica el fix completo de flujo de inventario |
rollback_inventory_flow_complete.sql |
Revierte el fix completo (restaura funciones originales) |
emergency_rollback_inventory.sh |
Script bash interactivo para ejecutar el rollback facilmente |
⚠️ Antes de aplicar el fix
-
Hacer backup de la base de datos:
pg_dump -U postgres -d hotel_hacienda > backup_antes_fix_inventario.sql -
Asegurarse de que nadie este usando el sistema (idealmente en horario de bajo trafico).
🚀 Aplicar el fix
Opcion 1: Con psql
cd /ruta/al/proyecto
psql -U postgres -d hotel_hacienda -f scripts_sql/fix_inventory_flow_complete.sql
Opcion 2: Desde dentro de psql
psql -U postgres -d hotel_hacienda
\i scripts_sql/fix_inventory_flow_complete.sql
✅ Validar despues del fix
- Crear un expense con productos
- Aprobarlo
- Ir a Purchase Entries y registrar la recepcion fisica
- Verificar que el stock subio correctamente
- Ir a Payments y pagar el expense
- Verificar que el stock NO cambio
- Rechazar el pago (cancelar el expense)
- Verificar que el stock bajo correctamente
🆘 Revertir el cambio (Rollback)
Opcion 1: Script interactivo de emergencia (recomendado)
cd /ruta/al/proyecto
./scripts_sql/emergency_rollback_inventory.sh
El script pedira confirmacion escribiendo SI.
Opcion 2: Con psql manualmente
cd /ruta/al/proyecto
psql -U postgres -d hotel_hacienda -f scripts_sql/rollback_inventory_flow_complete.sql
Opcion 3: Desde dentro de psql
psql -U postgres -d hotel_hacienda
\i scripts_sql/rollback_inventory_flow_complete.sql
📋 Que hace el rollback exactamente
Restaura estas funciones a su estado anterior al fix:
| Funcion | Comportamiento despues del rollback |
|---|---|
setpaymentstatusv2(status = 1) |
Vuelve a sumar stock al pagar |
setpaymentstatusv2(status = 3) |
No revierte stock al rechazar |
newexpensev2 |
Vuelve a crear movimientos de stock al crear expense |
updateexpensev4 |
Vuelve a crear/actualizar movimientos al editar expense |
purchaseentry |
Version original sin actualizar purchase_detail.id_stock_mov |
⚠️ Nota importante
El rollback NO elimina el tipo de movimiento Cancellation que se creo en movement_type, ni borra los movimientos de stock generados con ese tipo. Si ya se usaron esos movimientos, quedaran en la base de datos. Esto no afecta el funcionamiento del sistema anterior.