2. Estimacion Berit - HITO 1: MVP Formulario 606
Sprint 1: Setup, BD y Maestro de Clientes
1.1 Setup Inicial
- [2] Crear repositorio GitHub ➕ 2026-01-13 🛫 2026-01-13 📅 2026-01-13 ✅ 2026-01-13
- [2] Setup Laravel + PostgreSQL ➕ 2026-01-13 🛫 2026-01-13 📅 2026-01-13 ✅ 2026-01-13
- [5] Instalar dependencias ➕ 2026-01-14 🛫 2026-01-14 📅 2026-01-15
- Spatie Media Library ✅ 2026-11-23
- Laravel Excel ✅ 2026-11-23
- DomPDF ✅ 2026-11-23
- [3] Configurar ambiente desarrollo ➕ 2026-01-15 🛫 2026-01-15 📅 2026-01-15
- Configurar colas ✅ 2026-11-24
1.2 Base de Datos
- [13] Crear todas las migraciones ➕ 2026-01-15 🛫 2026-01-15 📅 2026-01-17
- Tabla tenants (sistema multi-tenant)
- Tablas core: empresas, ciclo, tipos_documentos, contactos
- Tabla gastos (30+ campos del 606)
- Tabla gastos_fijos (para validaciones)
- Tablas auxiliares: formas_de_pago, tipos_bienes_servicios
- Índices críticos en tenant_id, empresa_id, ciclo_id
- [5] Seeders catálogos DGII ➕ 2026-01-17 🛫 2026-01-17 📅 2026-01-18
- Tipos documentos, formas de pago
- Tipos de bienes y servicios comprados
1.3 Multi-Tenant
- [3] Global scope + middleware ➕ 2026-01-19 🛫 2026-01-19 📅 2026-01-20
- TenantScope con filtrado automático por tenant_id
- Middleware SetTenantFromAuth
- Trait TenantScoped para modelos
- [2] Tests aislamiento ➕ 2026-01-20 🛫 2026-01-20 📅 2026-01-20
- Verificar que queries filtran por tenant_id
- Verificar auto-asignación de tenant_id
1.4 Maestro de Clientes
- [8] Filament Resource empresas ➕ 2026-01-21 🛫 2026-01-21 📅 2026-01-23
- Campos básicos: RNC, nombre, tipo_cliente, nivel_facturación
- Servicios (checkboxes): DGII, Anticipos, IR-17
- Tab “Gastos Fijos”: tabla con RNC proveedor + tipo gasto
- Aplicar TenantScoped trait
- [3] CRUD gastos fijos ➕ 2026-01-23 🛫 2026-01-23 📅 2026-01-24
- Vincular proveedor (contacto) + tipo de gasto
- Activar/desactivar gastos fijos
Sprint 2: Integración PREX y Auditoría
2.1 Contactos y Ciclos
- [5] Filament Resource contactos ➕ 2026-01-27 🛫 2026-01-27 📅 2026-01-29
- CRUD básico: RNC, nombre, tipo_documento
- Importación masiva desde Excel
- Aplicar TenantScoped trait
- [3] API ciclos fiscales ➕ 2026-01-29 🛫 2026-01-29 📅 2026-01-30
- Generación automática mensual (año + mes)
- Identificador: “202601”
- Validaciones: warning día 10, bloqueo día 20
2.2 API para Recibir de PREX
- [8] Endpoint POST /api/prex/import-gastos ➕ 2026-01-30 🛫 2026-01-30 📅 2026-02-01
- Validar API Key en header X-ORDEN-API-KEY
- Validar estructura del payload JSON
- Validar que empresa pertenece al tenant
- Crear registros en tabla gastos con origen=‘prex’
- Guardar prex_factura_id (solo referencia)
- Guardar voucher_url (link al PDF en PREX)
- Estado inicial: pendiente_revision
- Matching automático con contactos por RNC
- Crear contacto si no existe
- Retornar: {success: true, gastos_creados: [ids]}
- [3] Middleware de autenticación API ➕ 2026-02-01 🛫 2026-02-01 📅 2026-02-02
- ValidatePrexApiKey middleware
- Verificar API Key contra empresas.prex_api_key
- [2] Tests de integración ➕ 2026-02-02 🛫 2026-02-02 📅 2026-02-03
- Test payload válido
- Test API Key inválida
- Test datos duplicados
2.3 Interfaz de Auditoría
- [8] Layout 2 columnas ➕ 2026-02-03 🛫 2026-02-03 📅 2026-02-05
- Voucher original (iframe desde voucher_url)
- Controles: Zoom, navegación anterior/siguiente
- Contador: “Factura 5/23”
- Filtros: por estado, por empresa, por ciclo
- [8] Form editable + auto-save ➕ 2026-02-05 🛫 2026-02-05 📅 2026-02-06
- Inputs para todos los campos del gasto
- Auto-save al cambiar campo (debounce 500ms)
- Indicador visual: campo modificado (badge amarillo)
- Validación NCF: formato + no duplicado
- Validación RNC: 11 dígitos
- Validación fechas: lógicas (pago >= comprobante)
- Validación cálculos: total = monto + ITBIS
- Mensajes de error inline
- [5] Sistema de aprobación ➕ 2026-02-06 🛫 2026-02-06 📅 2026-02-07
- Estados: pendiente_revision, en_revision, aprobado, rechazado
- Botones: Aprobar, Rechazar, Aprobar todos
- Roles: Oficial edita, Supervisor aprueba
- Log de cambios (quién modificó qué)
2.4 Validaciones de Gastos Fijos
- [3] Service: ValidadorGastosFijosService ➕ 2026-02-07 🛫 2026-02-07 📅 2026-02-07
- Al aprobar → comparar gastos vs gastos_fijos del cliente
- Generar alertas si faltan gastos esperados
- Retornar lista de gastos faltantes
- [1] UI alertas en auditoría ➕ 2026-02-07 🛫 2026-02-07 📅 2026-02-07
- Banner: “Faltan 2 gastos fijos esperados”
- Lista: Luz (EDENORTE), Renta (INMOBILIARIA X)
Sprint 3: Resumen 606, TXT y Dashboard
3.1 Resumen 606
- [5] Documentar fórmulas del Excel ➕ 2026-02-10 🛫 2026-02-10 📅 2026-02-11
- Obtener Excel 606 de Berit
- Mapear cada celda del “Resumen 606”
- Identificar todas las fórmulas Excel
- Traducir a lógica PHP
- [13] Service: Resumen606Service ➕ 2026-02-12 🛫 2026-02-12 📅 2026-02-15
- Agrupación tipo gasto 01: Gastos de personal
- Agrupación tipo gasto 02: Gastos por trabajos, suministros y servicios
- Agrupación tipo gasto 09: Costo de venta (compras)
- Agrupaciones por NCF (B01, B11, B13, B14, B15)
- Cálculo: Compras gravadas vs exentas
- Cálculo: ITBIS adelantar vs ITBIS costo
- Cálculo: Retenciones (ITBIS, ISR)
- Validación: suma de tipos = Total general
- Tests unitarios de cálculos
3.2 Generación TXT
- [3] Documentar formato oficial DGII ➕ 2026-02-15 🛫 2026-02-15 📅 2026-02-16
- Obtener especificaciones TXT 606 de DGII
- Estructura: header, líneas detalle, footer
- Longitud campos, decimales, formato fechas
- [8] Service: Generador606TxtService ➕ 2026-02-16 🛫 2026-02-16 📅 2026-02-18
- Generar header (datos empresa, período)
- Formatear cada gasto aprobado como línea
- Padding, decimales correctos
- Fechas en formato YYYYMMDD
- Generar footer (totales, cantidad registros)
- Validar longitud de cada línea
- Endpoint: POST /api/reportes/606/generar-txt
- Retornar archivo TXT para descarga
3.3 Unificar Vouchers en PDF
- [5] Servicio de consolidación ➕ 2026-02-18 🛫 2026-02-18 📅 2026-02-19
- Obtener todas las voucher_urls de gastos aprobados
- Usar FPDI o similar para merge PDFs
- Orden cronológico por fecha_comprobante
- Endpoint: POST /api/reportes/606/unificar-vouchers
- Retornar PDF unificado para descarga
3.4 Dashboard Básico
- [5] Dashboard gastos ➕ 2026-02-19 🛫 2026-02-19 📅 2026-02-20
- Selector de ciclo (mes/año)
- Cards: Total gastos, ITBIS, # facturas, # pendientes revisión
- Gráfico: Evolución gastos (últimos 6 meses)
- Gráfico: Top 10 proveedores del mes
- Tabla: Resumen por tipo de gasto
- [3] Filtros y exportación ➕ 2026-02-20 🛫 2026-02-20 📅 2026-02-21
- Filtros: fecha, proveedor, monto, estado
- Exportar a Excel (listado completo de gastos)
- Exportar resumen 606 a Excel
Resumen del Hito 1
| Sprint | Story Points | Duración | Fin |
|---|---|---|---|
| Sprint 1 | 42 | 2 semanas | 2026-01-24 |
| Sprint 2 | 46 | 2 semanas | 2026-02-07 |
| Sprint 3 | 42 | 2 semanas | 2026-02-21 |
| TOTAL | 130 SP | 6 semanas | 2026-02-21 |