# Flujo de Trabajo - Guía Visual Rápida

## 🎯 Objetivo
Reservar cajas virtualmente desde la web y confirmarlas físicamente en el almacén.

---

## 📱 PARTE 1: RESERVA VIRTUAL (Web)

### Paso 1: Crear Reserva
```
┌─────────────────────────────────────┐
│  Nueva Reserva de Cajas             │
├─────────────────────────────────────┤
│                                     │
│  Cliente: [Cliente ABC ▼]           │
│                                     │
│  Notas:                             │
│  ┌─────────────────────────────┐   │
│  │ Reserva para despacho       │   │
│  │ urgente próxima semana      │   │
│  └─────────────────────────────┘   │
│                                     │
│  [Cancelar]  [Crear Reserva]       │
└─────────────────────────────────────┘

✅ Resultado: RES-20251214-0001 creada
```

### Paso 2: Descargar Inventario
```
┌─────────────────────────────────────┐
│  Reserva: RES-20251214-0001         │
│  Cliente: Cliente ABC               │
│  Estado: 🟡 Pendiente               │
├─────────────────────────────────────┤
│                                     │
│  📥 Acciones Disponibles:           │
│                                     │
│  [📊 Descargar Inventario]          │
│  [📄 Descargar Plantilla]           │
│  [📤 Importar Cajas]                │
│                                     │
└─────────────────────────────────────┘

Click "Descargar Inventario"
⬇️
inventario_disponible_2025-12-14.xlsx
```

### Paso 3: Marcar Cajas en Excel
```
Excel: inventario_disponible_2025-12-14.xlsx

┌──────────┬────────┬─────────┬────────────┐
│BOX_NUMBER│ MARCA  │ SECCION │SELECCIONAR │
├──────────┼────────┼─────────┼────────────┤
│CAJA001   │ ZARA   │ MUJER   │     X      │ ← Marcar
│CAJA002   │ ZARA   │ MUJER   │            │
│CAJA003   │ ZARA   │ HOMBRE  │     1      │ ← Marcar
│CAJA004   │ BERSHKA│ MUJER   │            │
│CAJA005   │ ZARA   │ MUJER   │     X      │ ← Marcar
│CAJA006   │ ZARA   │ NIÑO    │            │
└──────────┴────────┴─────────┴────────────┘

💡 Tip: Marca con "X" o "1" las cajas que quieres reservar
```

### Paso 4: Importar Excel
```
┌─────────────────────────────────────┐
│  Importar Cajas desde Excel         │
├─────────────────────────────────────┤
│                                     │
│  Archivo: [Seleccionar archivo...]  │
│           inventario_disponible.xlsx│
│                                     │
│  ℹ️ Instrucciones:                  │
│  1. Marca con "X" o "1"             │
│  2. Guarda el archivo               │
│  3. Súbelo aquí                     │
│                                     │
│  [Cancelar]  [Importar]             │
└─────────────────────────────────────┘

⬇️ Click "Importar"

✅ Importación completada: 3 cajas agregadas
```

### Resultado Fase 1
```
┌─────────────────────────────────────┐
│  Reserva: RES-20251214-0001         │
│  Cliente: Cliente ABC               │
│  Estado: 🟡 Pendiente               │
├─────────────────────────────────────┤
│                                     │
│  📊 Estadísticas:                   │
│  ┌─────────────────────────────┐   │
│  │ Progreso: 0%                │   │
│  │ ░░░░░░░░░░░░░░░░░░░░░░      │   │
│  └─────────────────────────────┘   │
│                                     │
│  Total cajas: 3                     │
│  Confirmadas: 0                     │
│  Pendientes: 3                      │
│                                     │
│  📦 Cajas Reservadas:               │
│  ┌─────────────────────────────┐   │
│  │ CAJA001 - ZARA - 🟡 Reservado│  │
│  │ CAJA003 - ZARA - 🟡 Reservado│  │
│  │ CAJA005 - ZARA - 🟡 Reservado│  │
│  └─────────────────────────────┘   │
└─────────────────────────────────────┘
```

---

## 🏭 PARTE 2: CONFIRMACIÓN FÍSICA (Almacén)

### Paso 5: Seleccionar Reserva
```
Módulo: Preparar Pedido > Pestaña "Reservas"

┌─────────────────────────────────────────────┐
│  Reservas Pendientes                        │
├─────────────────────────────────────────────┤
│                                             │
│  ○ RES-20251214-0001 - Cliente ABC          │
│     3 cajas | 0% completado                 │
│                                             │
│  ○ RES-20251214-0002 - Cliente XYZ          │
│     5 cajas | 40% completado                │
│                                             │
│  [Iniciar Confirmación]                     │
└─────────────────────────────────────────────┘

Click en RES-20251214-0001
⬇️
```

### Paso 6: Escanear Cajas
```
┌─────────────────────────────────────────────┐
│  Confirmando: RES-20251214-0001             │
│  Cliente: Cliente ABC                       │
│  Estado: 🔵 En Proceso                      │
├─────────────────────────────────────────────┤
│                                             │
│  📊 Progreso: 1/3 (33%)                     │
│  ████████░░░░░░░░░░░░░░░░░░░░               │
│                                             │
│  📦 Cajas Reservadas:                       │
│  ┌─────────────────────────────────────┐   │
│  │ ✅ CAJA001 - Confirmada 10:15       │   │
│  │ 🟡 CAJA003 - Pendiente              │   │
│  │ 🟡 CAJA005 - Pendiente              │   │
│  └─────────────────────────────────────┘   │
│                                             │
│  🔍 Escanear Caja:                          │
│  ┌─────────────────────────────────────┐   │
│  │ [____________________________]      │   │
│  │  Esperando escaneo...               │   │
│  └─────────────────────────────────────┘   │
│                                             │
│  [Completar Reserva]                        │
└─────────────────────────────────────────────┘

Operario escanea: CAJA003
⬇️
```

### Escenario A: Caja en Reserva
```
┌─────────────────────────────────────────────┐
│  ✅ Caja Confirmada                         │
├─────────────────────────────────────────────┤
│                                             │
│  CAJA003                                    │
│  ZARA - HOMBRE                              │
│  Ubicación: A-01-05                         │
│                                             │
│  ✓ Confirmada correctamente                │
│                                             │
└─────────────────────────────────────────────┘

Actualización automática:
┌─────────────────────────────────────────────┐
│  📊 Progreso: 2/3 (67%)                     │
│  ████████████████░░░░░░░░░░░░               │
│                                             │
│  📦 Cajas:                                  │
│  ✅ CAJA001 - Confirmada 10:15              │
│  ✅ CAJA003 - Confirmada 10:16              │
│  🟡 CAJA005 - Pendiente                     │
└─────────────────────────────────────────────┘
```

### Escenario B: Caja NO en Reserva
```
Operario escanea: CAJA999 (no estaba reservada)
⬇️

┌─────────────────────────────────────────────┐
│  ⚠️ Caja No Reservada                       │
├─────────────────────────────────────────────┤
│                                             │
│  CAJA999                                    │
│  ZARA - MUJER                               │
│  Ubicación: B-02-10                         │
│                                             │
│  Esta caja NO está en la reserva.           │
│  ¿Desea agregarla?                          │
│                                             │
│  [No]  [Sí, Agregar]                        │
└─────────────────────────────────────────────┘

Click "Sí, Agregar"
⬇️

✅ Caja CAJA999 agregada a la reserva

Actualización:
┌─────────────────────────────────────────────┐
│  📊 Progreso: 3/4 (75%)                     │
│  ██████████████████░░░░░░                   │
│                                             │
│  📦 Cajas:                                  │
│  ✅ CAJA001 - Confirmada                    │
│  ✅ CAJA003 - Confirmada                    │
│  ✅ CAJA999 - Confirmada (EXTRA)            │
│  🟡 CAJA005 - Pendiente                     │
└─────────────────────────────────────────────┘

💡 Caso de uso: Completar pallet entero
```

### Paso 7: Completar Reserva
```
Todas las cajas escaneadas:

┌─────────────────────────────────────────────┐
│  📊 Progreso: 4/4 (100%)                    │
│  ████████████████████████████████           │
│                                             │
│  📦 Cajas:                                  │
│  ✅ CAJA001 - Confirmada                    │
│  ✅ CAJA003 - Confirmada                    │
│  ✅ CAJA005 - Confirmada                    │
│  ✅ CAJA999 - Confirmada (EXTRA)            │
│                                             │
│  [✓ Completar Reserva]                      │
└─────────────────────────────────────────────┘

Click "Completar Reserva"
⬇️

┌─────────────────────────────────────────────┐
│  🎉 Reserva Completada                      │
├─────────────────────────────────────────────┤
│                                             │
│  Orden creada: ORD-20251214-0001            │
│  Cliente: Cliente ABC                       │
│  Total cajas: 4                             │
│                                             │
│  Estado: Despachado                         │
│                                             │
│  [Ver Orden]  [Nueva Reserva]               │
└─────────────────────────────────────────────┘
```

---

## 📊 Resumen de Estados

### Vista en Lista de Reservas
```
┌────────────────────────────────────────────────────────────┐
│  Reservas de Cajas                                         │
├────────────────────────────────────────────────────────────┤
│                                                            │
│  RES-20251214-0001 | Cliente ABC | 🟢 Completada | 100%   │
│  RES-20251214-0002 | Cliente XYZ | 🔵 En Proceso |  60%   │
│  RES-20251214-0003 | Cliente 123 | 🟡 Pendiente  |   0%   │
│  RES-20251213-0099 | Cliente ABC | 🔴 Cancelada  |   -    │
│                                                            │
└────────────────────────────────────────────────────────────┘
```

### Ciclo de Vida Completo
```
┌─────────────┐
│   CREAR     │  Usuario crea reserva
│  RESERVA    │  Estado: PENDING
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  IMPORTAR   │  Usuario importa Excel
│   CAJAS     │  Cajas: reservation_status = 'reserved'
└──────┬──────┘
       │
       ▼
┌─────────────┐
│  CONFIRMAR  │  Operario escanea cajas
│   FÍSICA    │  Estado: IN_PROGRESS
└──────┬──────┘  Items: status = 'confirmed'
       │
       ▼
┌─────────────┐
│  COMPLETAR  │  Sistema crea orden
│   RESERVA   │  Estado: COMPLETED
└──────┬──────┘  Inventario: estado = 'Despachado'
       │
       ▼
┌─────────────┐
│   ORDEN     │  ORD-20251214-0001
│  DESPACHADA │  Cliente recibe mercancía
└─────────────┘
```

---

## 💡 Casos de Uso Reales

### Caso 1: Reserva Simple
```
Situación: Cliente necesita 10 cajas específicas

1. Usuario crea reserva
2. Descarga inventario
3. Marca 10 cajas
4. Importa Excel
5. Operario confirma las 10 cajas
6. Sistema crea orden

Tiempo estimado: 15 minutos
```

### Caso 2: Reserva con Extras
```
Situación: Cliente pidió 15 cajas, pero hay 20 del mismo pallet

1. Usuario crea reserva con 15 cajas
2. Operario comienza a escanear
3. Ve que hay 20 cajas del mismo pallet
4. Escanea las 15 originales
5. Agrega las 5 extras
6. Completa con 20 cajas

Beneficio: Optimiza espacio, despacha pallet completo
```

### Caso 3: Cancelación
```
Situación: Cliente cancela pedido antes de confirmar

1. Usuario ve reserva pendiente
2. Click "Cancelar Reserva"
3. Sistema libera todas las cajas
4. Cajas vuelven a estar disponibles

Resultado: Sin impacto en inventario físico
```

---

## 🎯 Ventajas del Sistema

✅ **Reserva Virtual**: No mueves cajas hasta confirmar
✅ **Flexibilidad**: Agrega cajas durante confirmación
✅ **Trazabilidad**: Sabes quién reservó y quién confirmó
✅ **Eficiencia**: Proceso guiado paso a paso
✅ **Automatización**: Orden se crea automáticamente
✅ **Reversible**: Cancela antes de confirmar sin problema

---

## 📞 Soporte

¿Dudas sobre el flujo?
- Revisa `workflow.md` para detalles técnicos
- Consulta `reservation_quickstart.md` para API
- Ver `walkthrough.md` para implementación
