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

97 lines
2.7 KiB
Markdown

# 🆘 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:**
```bash
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
```bash
cd /ruta/al/proyecto
psql -U postgres -d hotel_hacienda -f scripts_sql/fix_inventory_flow_complete.sql
```
### Opcion 2: Desde dentro de psql
```bash
psql -U postgres -d hotel_hacienda
```
```sql
\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)
```bash
cd /ruta/al/proyecto
./scripts_sql/emergency_rollback_inventory.sh
```
El script pedira confirmacion escribiendo `SI`.
### Opcion 2: Con psql manualmente
```bash
cd /ruta/al/proyecto
psql -U postgres -d hotel_hacienda -f scripts_sql/rollback_inventory_flow_complete.sql
```
### Opcion 3: Desde dentro de psql
```bash
psql -U postgres -d hotel_hacienda
```
```sql
\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.