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
This commit is contained in:
96
scripts_sql/README_INVENTORY_FIX.md
Normal file
96
scripts_sql/README_INVENTORY_FIX.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# 🆘 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.
|
||||
Reference in New Issue
Block a user