Files
hotel-hacienda/scripts_sql/README_INVENTORY_FIX.md
Consultoria AS bd9f0e770e docs: instructivo de rollback de emergencia para fix de inventario
- emergency_rollback_inventory.sh: script interactivo de rollback
- README_INVENTORY_FIX.md: guia completa de aplicacion y rollback
2026-06-25 12:06:58 -07:00

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

  1. Hacer backup de la base de datos:

    pg_dump -U postgres -d hotel_hacienda > backup_antes_fix_inventario.sql
    
  2. 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

  1. Crear un expense con productos
  2. Aprobarlo
  3. Ir a Purchase Entries y registrar la recepcion fisica
  4. Verificar que el stock subio correctamente
  5. Ir a Payments y pagar el expense
  6. Verificar que el stock NO cambio
  7. Rechazar el pago (cancelar el expense)
  8. 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.