# GAP ANALYSIS: ERP-CORE → RETAIL

**Fecha:** 2025-12-18
**Fase:** 1 - Planeacion
**Objetivo:** Identificar gaps entre estado actual de core y requerimientos de retail

---

## 1. RESUMEN DE GAPS

### 1.1 Clasificacion

| Tipo | Cantidad | Impacto |
|------|----------|---------|
| GAPS BLOQUEADORES | 5 | Critico - Impiden inicio |
| GAPS FUNCIONALES | 12 | Alto - Funcionalidad incompleta |
| GAPS TECNICOS | 8 | Medio - Optimizaciones |
| GAPS DOCUMENTACION | 4 | Bajo - Documentar |
| **TOTAL** | **29** | |

---

## 2. GAPS BLOQUEADORES (Deben resolverse antes de iniciar)

### GAP-BLK-001: MGN-001 Auth incompleto

| Aspecto | Detalle |
|---------|---------|
| **Estado actual** | 40% completado |
| **Requerido por** | RT-001 Fundamentos (100% herencia) |
| **Impacto** | Sin auth, nada funciona |
| **Accion** | Completar auth al 100% antes de retail |
| **Estimado** | 2 sprints |

**Faltantes:**
- [ ] OAuth2/OIDC (Google, Azure)
- [ ] 2FA/MFA completo
- [ ] Rate limiting avanzado
- [ ] Session management mejorado

---

### GAP-BLK-002: MGN-005 Catalogs no implementado

| Aspecto | Detalle |
|---------|---------|
| **Estado actual** | 0% - Solo planificado |
| **Requerido por** | RT-003 Inventario, RT-005 Clientes |
| **Impacto** | Sin catalogos base no hay productos ni clientes |
| **Accion** | Implementar catalogos basicos |
| **Estimado** | 1 sprint |

**Faltantes:**
- [ ] Countries CRUD
- [ ] Currencies con tasas
- [ ] UoM con conversiones
- [ ] Product categories

---

### GAP-BLK-003: MGN-010 Financial - Migracion TypeORM incompleta

| Aspecto | Detalle |
|---------|---------|
| **Estado actual** | 70% - Migracion parcial |
| **Requerido por** | RT-010 Facturacion (60% herencia) |
| **Impacto** | Inconsistencia en servicios financieros |
| **Accion** | Completar migracion TypeORM |
| **Estimado** | 1 sprint |

**Faltantes:**
- [ ] journals.service.ts - migrar a TypeORM
- [ ] taxes.service.ts - migrar a TypeORM
- [ ] invoices.service.ts - migrar a TypeORM
- [ ] payments.service.ts - migrar a TypeORM
- [ ] Eliminar archivos .old.ts

---

### GAP-BLK-004: MGN-011 Inventory incompleto

| Aspecto | Detalle |
|---------|---------|
| **Estado actual** | 60% completado |
| **Requerido por** | RT-003 Inventario (60% herencia) |
| **Impacto** | Stock base incompleto |
| **Accion** | Completar servicios de inventario |
| **Estimado** | 2 sprints |

**Faltantes:**
- [ ] Valoracion completa (FIFO, LIFO, AVCO)
- [ ] Lotes y series
- [ ] Ajustes de inventario
- [ ] Conteos ciclicos

---

### GAP-BLK-005: MGN-013 Sales incompleto

| Aspecto | Detalle |
|---------|---------|
| **Estado actual** | 50% completado |
| **Requerido por** | RT-006 Precios (30% herencia), RT-002 POS |
| **Impacto** | Sin precios base, POS no funciona |
| **Accion** | Completar servicios de ventas |
| **Estimado** | 2 sprints |

**Faltantes:**
- [ ] Pricelists completo
- [ ] Reglas de precios
- [ ] Customer groups
- [ ] Sales teams

---

## 3. GAPS FUNCIONALES

### GAP-FUN-001: Motor de Promociones no existe

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | MGN-013 Sales (SPEC-PRICING-RULES) |
| **Requerido por** | RT-006 Precios |
| **Estado** | Especificacion existe, no implementada |
| **Accion** | Implementar SPEC-PRICING-RULES |
| **SP Estimados** | 21 |

---

### GAP-FUN-002: Multi-sucursal no existe en core

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | MGN-004 Tenants, MGN-011 Inventory |
| **Requerido por** | RT-003 Inventario Multi-Sucursal |
| **Estado** | Core es single-warehouse |
| **Accion** | Crear extension retail para branches |
| **SP Estimados** | 34 |

---

### GAP-FUN-003: Programa de Lealtad no existe

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | MGN-014 CRM |
| **Requerido por** | RT-005 Clientes |
| **Estado** | CRM no tiene programa de puntos |
| **Accion** | Crear modulo loyalty para retail |
| **SP Estimados** | 21 |

---

### GAP-FUN-004: POS (Terminal de Venta) no existe

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | N/A |
| **Requerido por** | RT-002 POS |
| **Estado** | No existe en core |
| **Accion** | Crear modulo completo POS |
| **SP Estimados** | 55 |

---

### GAP-FUN-005: Gestion de Caja no existe

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | N/A |
| **Requerido por** | RT-007 Caja |
| **Estado** | No existe en core |
| **Accion** | Crear modulo completo cash management |
| **SP Estimados** | 28 |

---

### GAP-FUN-006: CFDI 4.0 no implementado

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | MGN-010 Financial |
| **Requerido por** | RT-010 Facturacion |
| **Estado** | Facturas base, sin CFDI |
| **Accion** | Implementar integracion PAC |
| **SP Estimados** | 21 |

---

### GAP-FUN-007: E-commerce no existe

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | MGN-013 Sales |
| **Requerido por** | RT-009 E-commerce |
| **Estado** | No existe tienda online |
| **Accion** | Crear modulo ecommerce |
| **SP Estimados** | 55 |

---

### GAP-FUN-008: Dashboard POS no existe

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | MGN-009 Reports |
| **Requerido por** | RT-008 Reportes |
| **Estado** | Reports planificado, no implementado |
| **Accion** | Implementar dashboards retail |
| **SP Estimados** | 30 |

---

### GAP-FUN-009: Conteos Ciclicos no implementado

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | MGN-011 Inventory (SPEC-INVENTARIOS-CICLICOS) |
| **Requerido por** | RT-003 Inventario |
| **Estado** | Especificacion existe, no implementada |
| **Accion** | Implementar SPEC-INVENTARIOS-CICLICOS |
| **SP Estimados** | 13 |

---

### GAP-FUN-010: Transferencias entre ubicaciones limitado

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | MGN-011 Inventory |
| **Requerido por** | RT-003 Inventario (transferencias sucursales) |
| **Estado** | Solo pickings basicos |
| **Accion** | Extender para transferencias retail |
| **SP Estimados** | 13 |

---

### GAP-FUN-011: Codigos de Barras multiples no existe

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | MGN-011 Inventory |
| **Requerido por** | RT-002 POS |
| **Estado** | Un solo codigo por producto |
| **Accion** | Crear tabla product_barcodes |
| **SP Estimados** | 5 |

---

### GAP-FUN-012: Integracion Hardware no existe

| Aspecto | Detalle |
|---------|---------|
| **Modulo Core** | N/A |
| **Requerido por** | RT-002 POS |
| **Estado** | No existe |
| **Accion** | Crear drivers para impresora, lector, cajon |
| **SP Estimados** | 13 |

---

## 4. GAPS TECNICOS

### GAP-TEC-001: PWA/Offline no existe

| Aspecto | Detalle |
|---------|---------|
| **Tecnologia** | Service Workers, IndexedDB |
| **Requerido por** | RT-002 POS |
| **Accion** | Implementar PWA con offline support |
| **SP Estimados** | 21 |

---

### GAP-TEC-002: Cache Redis no implementado

| Aspecto | Detalle |
|---------|---------|
| **Tecnologia** | Redis |
| **Requerido por** | RT-002 POS (performance < 100ms) |
| **Accion** | Configurar Redis para cache productos/precios |
| **SP Estimados** | 8 |

---

### GAP-TEC-003: WebSocket no implementado

| Aspecto | Detalle |
|---------|---------|
| **Tecnologia** | Socket.io / WS |
| **Requerido por** | RT-002 POS (sync tiempo real) |
| **Accion** | Implementar WebSocket para actualizaciones |
| **SP Estimados** | 8 |

---

### GAP-TEC-004: Indices optimizados faltantes

| Aspecto | Detalle |
|---------|---------|
| **Tecnologia** | PostgreSQL |
| **Requerido por** | RT-002 POS (performance) |
| **Accion** | Crear indices en tablas criticas |
| **SP Estimados** | 3 |

---

### GAP-TEC-005: Vistas materializadas no existen

| Aspecto | Detalle |
|---------|---------|
| **Tecnologia** | PostgreSQL |
| **Requerido por** | RT-008 Reportes |
| **Accion** | Crear vistas para reportes frecuentes |
| **SP Estimados** | 5 |

---

### GAP-TEC-006: Integracion PAC no existe

| Aspecto | Detalle |
|---------|---------|
| **Tecnologia** | API PAC (Finkok, Facturama) |
| **Requerido por** | RT-010 Facturacion |
| **Accion** | Implementar cliente PAC |
| **SP Estimados** | 13 |

---

### GAP-TEC-007: Integracion Pagos no existe

| Aspecto | Detalle |
|---------|---------|
| **Tecnologia** | Stripe, Conekta, MercadoPago |
| **Requerido por** | RT-009 E-commerce |
| **Accion** | Implementar pasarelas de pago |
| **SP Estimados** | 13 |

---

### GAP-TEC-008: Queue system no implementado

| Aspecto | Detalle |
|---------|---------|
| **Tecnologia** | Bull/BullMQ |
| **Requerido por** | RT-002 POS (sync offline) |
| **Accion** | Implementar cola de trabajos |
| **SP Estimados** | 8 |

---

## 5. GAPS DOCUMENTACION

### GAP-DOC-001: User Stories RT incompletas

| Aspecto | Detalle |
|---------|---------|
| **Estado** | Epicas completas, US pendientes |
| **Accion** | Detallar user stories |

---

### GAP-DOC-002: Especificaciones tecnicas retail faltantes

| Aspecto | Detalle |
|---------|---------|
| **Estado** | Directivas existen, specs tecnicas no |
| **Accion** | Crear specs para POS, Caja, E-commerce |

---

### GAP-DOC-003: API Documentation no existe

| Aspecto | Detalle |
|---------|---------|
| **Estado** | Sin OpenAPI/Swagger |
| **Accion** | Documentar endpoints con Swagger |

---

### GAP-DOC-004: Manual de Integracion Hardware faltante

| Aspecto | Detalle |
|---------|---------|
| **Estado** | Sin documentacion |
| **Accion** | Crear guia de configuracion hardware |

---

## 6. PLAN DE CIERRE DE GAPS

### 6.1 Fase Pre-Retail (Cerrar Bloqueadores)

| Gap | Sprint | Responsable |
|-----|--------|-------------|
| GAP-BLK-001 Auth | 1-2 | Backend-Agent |
| GAP-BLK-002 Catalogs | 3 | Backend-Agent |
| GAP-BLK-003 Financial | 4 | Backend-Agent |
| GAP-BLK-004 Inventory | 5-6 | Backend-Agent |
| GAP-BLK-005 Sales | 7-8 | Backend-Agent |

### 6.2 Fase Retail Sprint 1-4

| Gap | Sprint | Responsable |
|-----|--------|-------------|
| GAP-FUN-004 POS | 1-4 | Retail-Team |
| GAP-FUN-011 Barcodes | 1 | Database-Agent |
| GAP-TEC-001 PWA | 2-3 | Frontend-Agent |
| GAP-TEC-002 Redis | 1 | Backend-Agent |

### 6.3 Fase Retail Sprint 5-8

| Gap | Sprint | Responsable |
|-----|--------|-------------|
| GAP-FUN-002 Multi-sucursal | 5-6 | Backend-Agent |
| GAP-FUN-005 Caja | 5-6 | Backend-Agent |
| GAP-FUN-001 Promociones | 7-8 | Backend-Agent |
| GAP-FUN-010 Transferencias | 7 | Backend-Agent |

### 6.4 Fase Retail Sprint 9-12

| Gap | Sprint | Responsable |
|-----|--------|-------------|
| GAP-FUN-003 Lealtad | 9-10 | Backend-Agent |
| GAP-FUN-006 CFDI | 9-10 | Backend-Agent |
| GAP-FUN-007 E-commerce | 11-12 | Full-Stack |
| GAP-FUN-008 Dashboard | 11-12 | Frontend-Agent |

---

## 7. RESUMEN EJECUTIVO

### 7.1 Story Points por Tipo de Gap

| Tipo | SP Total |
|------|----------|
| Bloqueadores | ~60 SP (en core) |
| Funcionales | ~296 SP |
| Tecnicos | ~79 SP |
| **TOTAL** | **~435 SP** |

### 7.2 Riesgos Identificados

1. **ALTO:** Dependencia de completitud de core
2. **ALTO:** Complejidad de PWA offline
3. **MEDIO:** Integracion PAC (terceros)
4. **MEDIO:** Integracion hardware variado
5. **BAJO:** Documentacion incompleta

### 7.3 Proximos Pasos

1. Cerrar gaps bloqueadores (pre-retail)
2. Iniciar RT-001 Fundamentos (heredar core)
3. Desarrollar RT-002 POS (critico)
4. Iterar sobre gaps funcionales

---

**Documento generado:** 2025-12-18
**Fase:** 1 - Planeacion - GAP Analysis
**Estado:** COMPLETO
