- emergency_rollback_inventory.sh: script interactivo de rollback - README_INVENTORY_FIX.md: guia completa de aplicacion y rollback
97 lines
2.7 KiB
Markdown
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.
|