Initial commit: Horux Strategy Platform
- Laravel 11 backend with API REST - React 18 + TypeScript + Vite frontend - Multi-parser architecture for accounting systems (CONTPAQi, Aspel, SAP) - 27+ financial metrics calculation - PDF report generation with Browsershot - Complete documentation (10 documents) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
384
docs/plans/2025-01-31-horux-strategy-design.md
Normal file
384
docs/plans/2025-01-31-horux-strategy-design.md
Normal file
@@ -0,0 +1,384 @@
|
||||
# Horux Strategy Platform - Diseño de Sistema
|
||||
|
||||
**Fecha:** 2025-01-31
|
||||
**Proyecto:** Plataforma de Reportes Financieros
|
||||
**Cliente:** Horux 360
|
||||
|
||||
---
|
||||
|
||||
## 1. Resumen Ejecutivo
|
||||
|
||||
Plataforma web para generar reportes financieros automatizados a partir de balanzas de comprobación. Permite a empresas subir sus datos contables de múltiples sistemas (CONTPAQi, Aspel, SAP, etc.) y obtener dashboards interactivos con métricas financieras y exportación a PDF profesional.
|
||||
|
||||
---
|
||||
|
||||
## 2. Stack Tecnológico
|
||||
|
||||
| Componente | Tecnología |
|
||||
|------------|------------|
|
||||
| Backend | Laravel 11 (API REST) |
|
||||
| Autenticación | Laravel Sanctum |
|
||||
| Frontend | React 18 + TypeScript |
|
||||
| Base de datos | MySQL / PostgreSQL |
|
||||
| Gráficas | Recharts |
|
||||
| Generación PDF | Puppeteer / Browsershot |
|
||||
| Parsing PDFs | spatie/pdf-to-text + regex |
|
||||
|
||||
---
|
||||
|
||||
## 3. Roles de Usuario
|
||||
|
||||
| Rol | Permisos |
|
||||
|-----|----------|
|
||||
| **Administrador** | Acceso total, configuración global, gestión de umbrales |
|
||||
| **Analista** | Gestionar clientes asignados, procesar balanzas, generar reportes |
|
||||
| **Cliente** | Ver dashboard propio, descargar PDFs, gestionar empleados |
|
||||
| **Empleado** | Permisos configurables por el cliente |
|
||||
|
||||
---
|
||||
|
||||
## 4. Sistemas Contables Soportados
|
||||
|
||||
- CONTPAQi (inicial, con ejemplos)
|
||||
- Aspel
|
||||
- Alegra
|
||||
- SAP
|
||||
- Odoo
|
||||
- Parser genérico (CSV/Excel configurable)
|
||||
|
||||
### 4.1 Arquitectura de Parsers
|
||||
|
||||
```
|
||||
Upload archivo → Detector de formato → Parser específico → Formato normalizado
|
||||
```
|
||||
|
||||
Cada parser normaliza los datos a una estructura estándar interna, permitiendo agregar nuevos sistemas sin modificar el resto del código.
|
||||
|
||||
---
|
||||
|
||||
## 5. Modelo de Datos
|
||||
|
||||
### 5.1 Usuarios y Acceso
|
||||
|
||||
```sql
|
||||
-- users
|
||||
id, nombre, email, password, role, cliente_id (nullable)
|
||||
|
||||
-- clientes
|
||||
id, nombre_empresa, logo, giro_id, moneda, configuracion (JSON)
|
||||
|
||||
-- permisos_empleado
|
||||
user_id, cliente_id, permisos (JSON)
|
||||
```
|
||||
|
||||
### 5.2 Catálogos
|
||||
|
||||
```sql
|
||||
-- giros
|
||||
id, nombre, activo
|
||||
|
||||
-- umbrales
|
||||
id, metrica, muy_positivo, positivo, neutral, negativo, muy_negativo, giro_id
|
||||
|
||||
-- reportes_contables
|
||||
id, nombre ("Balance General", "Estado de Resultados")
|
||||
|
||||
-- categorias_contables
|
||||
id, reporte_contable_id, nombre, orden
|
||||
```
|
||||
|
||||
### 5.3 Categorías Contables
|
||||
|
||||
**Balance General:**
|
||||
| ID | Categoría |
|
||||
|----|-----------|
|
||||
| 1 | Activos Circulantes |
|
||||
| 2 | Activos No Circulantes |
|
||||
| 3 | Pasivo Circulante |
|
||||
| 4 | Pasivo No Circulante |
|
||||
| 5 | Capital Social |
|
||||
| 6 | Pérdidas Ejercicios Anteriores |
|
||||
| 7 | Utilidades Ejercicios Anteriores |
|
||||
|
||||
**Estado de Resultados:**
|
||||
| ID | Categoría |
|
||||
|----|-----------|
|
||||
| 8 | Ingresos |
|
||||
| 9 | Costo de Venta |
|
||||
| 10 | Gastos Operativos |
|
||||
| 11 | Otros Gastos |
|
||||
| 12 | Gastos Financieros |
|
||||
|
||||
### 5.4 Balanzas y Cuentas
|
||||
|
||||
```sql
|
||||
-- balanzas
|
||||
id, cliente_id, periodo_inicio, periodo_fin, sistema_origen, archivo_original, status
|
||||
|
||||
-- cuentas
|
||||
id, balanza_id, codigo, nombre, nivel,
|
||||
reporte_contable_id, categoria_contable_id, cuenta_padre_id,
|
||||
saldo_inicial_deudor, saldo_inicial_acreedor,
|
||||
cargos, abonos,
|
||||
saldo_final_deudor, saldo_final_acreedor,
|
||||
excluida (boolean)
|
||||
|
||||
-- reglas_mapeo
|
||||
id, sistema_origen, cuenta_padre_codigo,
|
||||
rango_hijo_inicio, rango_hijo_fin,
|
||||
reporte_contable_id, categoria_contable_id, prioridad
|
||||
|
||||
-- mapeo_cuentas (excepciones por cliente)
|
||||
cliente_id, codigo_patron, categoria_destino, notas
|
||||
```
|
||||
|
||||
### 5.5 Reportes
|
||||
|
||||
```sql
|
||||
-- reportes
|
||||
id, cliente_id, nombre, periodo_tipo, fecha_generacion, data_calculada (JSON), pdf_path
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. Reglas de Mapeo Contable (CONTPAQi)
|
||||
|
||||
| Cuenta Padre | Rango Hijos | Reporte | Categoría |
|
||||
|--------------|-------------|---------|-----------|
|
||||
| 001-100-000 | 101-000-000 a 154-999-999 | Balance | Activos Circulantes |
|
||||
| 001-200-000 | 155-000-000 a 199-999-999 | Balance | Activos No Circulantes |
|
||||
| 002-100-000 | 200-000-000 a 209-999-999 | Balance | Pasivo Circulante |
|
||||
| 002-200-000 | 210-000-000 a 220-999-999 | Balance | Pasivo No Circulante |
|
||||
| 300-000-000 | - | Balance | Capital Social |
|
||||
| 310-000-000 | - | Balance | Pérdidas Ejercicios Anteriores |
|
||||
| 311-000-000 | - | Balance | Utilidades Ejercicios Anteriores |
|
||||
| 40X-000-000 | 401 a 409 | Edo. Resultados | Ingresos |
|
||||
| 5XX-000-000 | 500 a 599 | Edo. Resultados | Gastos Operativos |
|
||||
| 6XX-000-000 | 600 a 699 | Edo. Resultados | Otros Gastos |
|
||||
| 70X-000-000 | 700 a 799 | Edo. Resultados | Gastos Financieros |
|
||||
|
||||
---
|
||||
|
||||
## 7. Flujo de Usuario
|
||||
|
||||
1. **Crear/seleccionar cliente** - Nombre, logo, giro, moneda
|
||||
2. **Subir balanzas** - 2+ archivos PDF/Excel/CSV
|
||||
3. **Detección automática** - Sistema identifica origen (CONTPAQi, etc.)
|
||||
4. **Clasificación automática** - Mapeo a categorías contables
|
||||
5. **Revisión de anomalías** - Corregir cuentas mal clasificadas
|
||||
6. **Limpieza de cuentas** - Desmarcar cuentas a excluir
|
||||
7. **Procesamiento** - Cálculo de métricas
|
||||
8. **Dashboard** - Visualización interactiva
|
||||
9. **Exportar PDF** - Descarga de reporte
|
||||
|
||||
---
|
||||
|
||||
## 8. Métricas Financieras
|
||||
|
||||
### 8.1 Estados Financieros Calculados
|
||||
|
||||
- Balance General
|
||||
- Estado de Resultados
|
||||
- Flujo de Efectivo (método indirecto)
|
||||
|
||||
### 8.2 Métricas por Categoría
|
||||
|
||||
**Márgenes:**
|
||||
- Margen Bruto = Utilidad Bruta / Ingresos
|
||||
- Margen EBITDA = EBITDA / Ingresos
|
||||
- Margen Operativo = EBIT / Ingresos
|
||||
- Margen Neto = Utilidad Neta / Ingresos
|
||||
- Margen NOPAT = NOPAT / Ingresos
|
||||
- Margen OCF = Flujo Operación / Ingresos
|
||||
- Margen FCF = Flujo Libre / Ingresos
|
||||
|
||||
**Retorno:**
|
||||
- ROIC = NOPAT / Capital Invertido
|
||||
- ROE = Utilidad Neta / Capital
|
||||
- ROA = Utilidad Neta / Activo Total
|
||||
- ROCE = EBIT / Capital Empleado
|
||||
|
||||
**Eficiencia:**
|
||||
- Asset Turnover = Ingresos / Activo Total
|
||||
- Inventory Turnover = Costo Venta / Inventario
|
||||
- Días Clientes = (Clientes / Ingresos) × 365
|
||||
- Días Proveedores = (Proveedores / Costo) × 365
|
||||
- Días Inventario = (Inventario / Costo) × 365
|
||||
- Ciclo Conversión = Días Clientes + Días Inv. - Días Prov.
|
||||
|
||||
**Liquidez:**
|
||||
- Current Ratio = Activo Circ. / Pasivo Circ.
|
||||
- Quick Ratio = (Activo Circ. - Inventario) / Pasivo Circ.
|
||||
- Cash Ratio = Efectivo / Pasivo Circ.
|
||||
|
||||
**Solvencia:**
|
||||
- Net Debt / EBITDA = (Deuda Total - Efectivo) / EBITDA
|
||||
- Interest Coverage = EBITDA / Gastos Financieros
|
||||
- Debt Ratio = Deuda Total / Activo Total
|
||||
|
||||
**Gestión:**
|
||||
- Revenue Growth = (Ingreso Actual - Anterior) / Anterior
|
||||
- Key Score = Crecimiento Ingreso 12m + Margen EBITDA 12m
|
||||
- CapEx / Revenue = CAPEX / Ingresos
|
||||
- Effective Tax Rate = Impuestos / EBT
|
||||
|
||||
### 8.3 Comparativos
|
||||
|
||||
Para cada métrica:
|
||||
- Valor actual
|
||||
- Promedio 3 periodos
|
||||
- Periodo anterior
|
||||
- Mismo periodo año anterior
|
||||
- Variación absoluta y porcentual
|
||||
- Tendencia (Muy positiva → Muy negativa)
|
||||
|
||||
---
|
||||
|
||||
## 9. Dashboard
|
||||
|
||||
### 9.1 Secciones
|
||||
|
||||
1. Mensajes Destacados (KPIs + insights)
|
||||
2. Resumen Mensual
|
||||
3. Resumen 12m
|
||||
4. Márgenes
|
||||
5. Márgenes Deep Dive
|
||||
6. Resultados
|
||||
7. Balance
|
||||
8. Capital de Trabajo
|
||||
9. Flujo de Efectivo
|
||||
10. Métricas
|
||||
11. Indicadores
|
||||
12. Negocios (por unidad)
|
||||
13. Estados Financieros
|
||||
|
||||
### 9.2 Componentes React
|
||||
|
||||
```
|
||||
components/
|
||||
├── charts/
|
||||
│ ├── BarChart.tsx
|
||||
│ ├── LineChart.tsx
|
||||
│ ├── StackedBarChart.tsx
|
||||
│ ├── WaterfallChart.tsx
|
||||
│ └── ComboChart.tsx
|
||||
├── cards/
|
||||
│ ├── KPICard.tsx
|
||||
│ ├── InsightCard.tsx
|
||||
│ └── MetricTable.tsx
|
||||
├── tables/
|
||||
│ ├── FinancialStatement.tsx
|
||||
│ └── MetricsGrid.tsx
|
||||
└── layout/
|
||||
├── DashboardNav.tsx
|
||||
├── PeriodSelector.tsx
|
||||
└── ExportButton.tsx
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 10. Panel Administrativo
|
||||
|
||||
### 10.1 Módulos
|
||||
|
||||
1. Dashboard admin (estadísticas)
|
||||
2. Gestión de usuarios
|
||||
3. Gestión de clientes
|
||||
4. Catálogo de giros
|
||||
5. Configuración de umbrales
|
||||
6. Reglas de mapeo contable
|
||||
7. Parsers de sistemas
|
||||
8. Configuración general
|
||||
|
||||
### 10.2 Gestión de Empleados (Cliente)
|
||||
|
||||
El cliente puede:
|
||||
- Agregar empleados
|
||||
- Configurar permisos granulares por empleado
|
||||
- Permisos disponibles: ver dashboard, ver estados financieros, exportar PDF, etc.
|
||||
|
||||
---
|
||||
|
||||
## 11. Generación de PDF
|
||||
|
||||
### 11.1 Enfoque
|
||||
|
||||
Usar Puppeteer/Browsershot para renderizar el dashboard de React a PDF, manteniendo el mismo diseño pixel-perfect.
|
||||
|
||||
### 11.2 Estructura (32 páginas)
|
||||
|
||||
1. Portada
|
||||
2. Mensajes Destacados
|
||||
3. Separador "Resumen"
|
||||
4. Resumen Mensual
|
||||
5. Resumen 12m
|
||||
6. Márgenes
|
||||
7. Márgenes Deep Dive
|
||||
8. Separador "Resultados"
|
||||
9. Resultados
|
||||
10. Separador "Balance"
|
||||
11. Balance
|
||||
12. Capital de Trabajo
|
||||
13. Separador "Flujo"
|
||||
14. Flujo de Efectivo
|
||||
15. Separador "Métricas"
|
||||
16-17. Métricas
|
||||
18. Separador "Indicadores"
|
||||
19. Indicadores
|
||||
20. Separador "Negocios"
|
||||
21-22. Negocios por unidad
|
||||
23. Separador "Estados Financieros"
|
||||
24-25. Tabla de Métricas
|
||||
26-27. Estado de Resultados
|
||||
28-29. Subcategorías Costo/Gasto
|
||||
30. Balance General
|
||||
31. Flujo de Efectivo
|
||||
32. Contraportada
|
||||
|
||||
---
|
||||
|
||||
## 12. Estructura del Proyecto
|
||||
|
||||
```
|
||||
monthly-platform/
|
||||
├── backend/ # Laravel
|
||||
│ ├── app/
|
||||
│ │ ├── Http/Controllers/
|
||||
│ │ ├── Models/
|
||||
│ │ ├── Services/
|
||||
│ │ │ ├── Parsers/
|
||||
│ │ │ │ ├── ParserInterface.php
|
||||
│ │ │ │ ├── ContpaqiParser.php
|
||||
│ │ │ │ ├── AspelParser.php
|
||||
│ │ │ │ └── GenericoParser.php
|
||||
│ │ │ ├── DetectorFormato.php
|
||||
│ │ │ ├── ClasificadorCuentas.php
|
||||
│ │ │ ├── CalculadorMetricas.php
|
||||
│ │ │ └── GeneradorPdf.php
|
||||
│ │ └── ...
|
||||
│ ├── database/migrations/
|
||||
│ └── routes/api.php
|
||||
│
|
||||
└── frontend/ # React
|
||||
├── src/
|
||||
│ ├── components/
|
||||
│ ├── pages/
|
||||
│ │ ├── Dashboard/
|
||||
│ │ ├── Admin/
|
||||
│ │ ├── Cliente/
|
||||
│ │ └── PdfView/
|
||||
│ ├── hooks/
|
||||
│ ├── services/
|
||||
│ └── utils/
|
||||
└── ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 13. Consideraciones Futuras
|
||||
|
||||
- Integración directa con APIs de sistemas contables
|
||||
- Generación de insights con IA
|
||||
- Comparativas con benchmarks de industria (datos reales)
|
||||
- App móvil para consulta de reportes
|
||||
- Alertas automáticas por email cuando métricas salen de rango
|
||||
355
docs/plans/2025-01-31-implementation-plan.md
Normal file
355
docs/plans/2025-01-31-implementation-plan.md
Normal file
@@ -0,0 +1,355 @@
|
||||
# Horux Strategy Platform - Plan de Implementación
|
||||
|
||||
**Fecha:** 2025-01-31
|
||||
**Documento de diseño:** 2025-01-31-horux-strategy-design.md
|
||||
|
||||
---
|
||||
|
||||
## Fases de Implementación
|
||||
|
||||
### FASE 1: Fundamentos (Backend)
|
||||
|
||||
#### 1.1 Configuración del proyecto Laravel
|
||||
- [ ] Crear proyecto Laravel 11
|
||||
- [ ] Configurar base de datos (MySQL/PostgreSQL)
|
||||
- [ ] Instalar y configurar Laravel Sanctum
|
||||
- [ ] Configurar CORS para React
|
||||
|
||||
#### 1.2 Migraciones de base de datos
|
||||
- [ ] Tabla `users` (con campo role)
|
||||
- [ ] Tabla `clientes`
|
||||
- [ ] Tabla `giros`
|
||||
- [ ] Tabla `permisos_empleado`
|
||||
- [ ] Tabla `reportes_contables`
|
||||
- [ ] Tabla `categorias_contables`
|
||||
- [ ] Tabla `umbrales`
|
||||
- [ ] Tabla `balanzas`
|
||||
- [ ] Tabla `cuentas`
|
||||
- [ ] Tabla `reglas_mapeo`
|
||||
- [ ] Tabla `mapeo_cuentas`
|
||||
- [ ] Tabla `reportes`
|
||||
- [ ] Seeders para catálogos iniciales (giros, categorías, reglas CONTPAQi)
|
||||
|
||||
#### 1.3 Modelos y relaciones
|
||||
- [ ] User (con roles)
|
||||
- [ ] Cliente
|
||||
- [ ] Giro
|
||||
- [ ] PermisoEmpleado
|
||||
- [ ] Umbral
|
||||
- [ ] Balanza
|
||||
- [ ] Cuenta
|
||||
- [ ] ReglaMappeo
|
||||
- [ ] Reporte
|
||||
|
||||
#### 1.4 Sistema de autenticación
|
||||
- [ ] Login / Logout
|
||||
- [ ] Registro (solo admin puede crear usuarios)
|
||||
- [ ] Middleware por rol
|
||||
- [ ] Policies para autorización
|
||||
|
||||
---
|
||||
|
||||
### FASE 2: Parser de Balanzas
|
||||
|
||||
#### 2.1 Arquitectura de parsers
|
||||
- [ ] Crear `ParserInterface.php`
|
||||
- [ ] Crear `DetectorFormato.php`
|
||||
- [ ] Implementar `ContpaqiParser.php`
|
||||
- [ ] Crear `ParserGenerico.php` (CSV/Excel)
|
||||
|
||||
#### 2.2 Procesamiento de archivos
|
||||
- [ ] Endpoint para upload de archivos
|
||||
- [ ] Extracción de texto de PDF
|
||||
- [ ] Parsing de estructura CONTPAQi
|
||||
- [ ] Normalización a formato interno
|
||||
- [ ] Almacenamiento en tabla `cuentas`
|
||||
|
||||
#### 2.3 Clasificación automática
|
||||
- [ ] Crear `ClasificadorCuentas.php`
|
||||
- [ ] Aplicar reglas de mapeo
|
||||
- [ ] Detectar anomalías
|
||||
- [ ] Marcar cuentas que requieren revisión
|
||||
|
||||
---
|
||||
|
||||
### FASE 3: Motor de Cálculo
|
||||
|
||||
#### 3.1 Calculador de estados financieros
|
||||
- [ ] Crear `CalculadorMetricas.php`
|
||||
- [ ] Calcular Balance General
|
||||
- [ ] Calcular Estado de Resultados
|
||||
- [ ] Calcular Flujo de Efectivo (método indirecto)
|
||||
|
||||
#### 3.2 Cálculo de métricas
|
||||
- [ ] Métricas de márgenes (7 métricas)
|
||||
- [ ] Métricas de retorno (4 métricas)
|
||||
- [ ] Métricas de eficiencia (6 métricas)
|
||||
- [ ] Métricas de liquidez (3 métricas)
|
||||
- [ ] Métricas de solvencia (3 métricas)
|
||||
- [ ] Métricas de gestión (4 métricas)
|
||||
|
||||
#### 3.3 Comparativos
|
||||
- [ ] Calcular promedio 3 periodos
|
||||
- [ ] Comparar con periodo anterior
|
||||
- [ ] Comparar con año anterior
|
||||
- [ ] Calcular variaciones
|
||||
- [ ] Determinar tendencia según umbrales
|
||||
|
||||
---
|
||||
|
||||
### FASE 4: API REST
|
||||
|
||||
#### 4.1 Endpoints de autenticación
|
||||
- [ ] POST /api/login
|
||||
- [ ] POST /api/logout
|
||||
- [ ] GET /api/user
|
||||
|
||||
#### 4.2 Endpoints de clientes
|
||||
- [ ] GET /api/clientes
|
||||
- [ ] POST /api/clientes
|
||||
- [ ] GET /api/clientes/{id}
|
||||
- [ ] PUT /api/clientes/{id}
|
||||
- [ ] DELETE /api/clientes/{id}
|
||||
|
||||
#### 4.3 Endpoints de balanzas
|
||||
- [ ] POST /api/clientes/{id}/balanzas (upload)
|
||||
- [ ] GET /api/clientes/{id}/balanzas
|
||||
- [ ] GET /api/balanzas/{id}/cuentas
|
||||
- [ ] PUT /api/balanzas/{id}/cuentas (actualizar exclusiones)
|
||||
- [ ] PUT /api/cuentas/{id}/clasificacion (corregir anomalía)
|
||||
|
||||
#### 4.4 Endpoints de reportes
|
||||
- [ ] POST /api/clientes/{id}/reportes (generar)
|
||||
- [ ] GET /api/clientes/{id}/reportes
|
||||
- [ ] GET /api/reportes/{id}
|
||||
- [ ] GET /api/reportes/{id}/pdf
|
||||
|
||||
#### 4.5 Endpoints administrativos
|
||||
- [ ] CRUD /api/admin/usuarios
|
||||
- [ ] CRUD /api/admin/giros
|
||||
- [ ] CRUD /api/admin/umbrales
|
||||
- [ ] CRUD /api/admin/reglas-mapeo
|
||||
|
||||
---
|
||||
|
||||
### FASE 5: Frontend - Fundamentos
|
||||
|
||||
#### 5.1 Configuración del proyecto React
|
||||
- [ ] Crear proyecto con Vite + TypeScript
|
||||
- [ ] Configurar React Router
|
||||
- [ ] Configurar Axios para API
|
||||
- [ ] Configurar Recharts
|
||||
- [ ] Configurar Tailwind CSS
|
||||
|
||||
#### 5.2 Autenticación
|
||||
- [ ] Página de Login
|
||||
- [ ] Context de autenticación
|
||||
- [ ] Rutas protegidas por rol
|
||||
- [ ] Interceptor para tokens
|
||||
|
||||
#### 5.3 Layout base
|
||||
- [ ] Sidebar de navegación
|
||||
- [ ] Header con usuario
|
||||
- [ ] Layout para admin
|
||||
- [ ] Layout para cliente
|
||||
|
||||
---
|
||||
|
||||
### FASE 6: Frontend - Flujo Principal
|
||||
|
||||
#### 6.1 Gestión de clientes
|
||||
- [ ] Lista de clientes
|
||||
- [ ] Formulario crear/editar cliente
|
||||
- [ ] Subida de logo
|
||||
|
||||
#### 6.2 Subida de balanzas
|
||||
- [ ] Componente de upload (drag & drop)
|
||||
- [ ] Preview de archivos
|
||||
- [ ] Indicador de progreso
|
||||
- [ ] Detección de sistema origen
|
||||
|
||||
#### 6.3 Revisión y limpieza
|
||||
- [ ] Vista de anomalías con corrección
|
||||
- [ ] Lista de cuentas con checkboxes
|
||||
- [ ] Filtros y búsqueda
|
||||
- [ ] Guardar exclusiones
|
||||
|
||||
---
|
||||
|
||||
### FASE 7: Frontend - Dashboard
|
||||
|
||||
#### 7.1 Componentes de gráficas
|
||||
- [ ] BarChart
|
||||
- [ ] LineChart
|
||||
- [ ] StackedBarChart
|
||||
- [ ] WaterfallChart
|
||||
- [ ] ComboChart
|
||||
|
||||
#### 7.2 Componentes de cards
|
||||
- [ ] KPICard (con semáforo)
|
||||
- [ ] InsightCard
|
||||
- [ ] MetricTable
|
||||
|
||||
#### 7.3 Secciones del dashboard
|
||||
- [ ] Mensajes Destacados
|
||||
- [ ] Resumen Mensual
|
||||
- [ ] Resumen 12m
|
||||
- [ ] Márgenes
|
||||
- [ ] Márgenes Deep Dive
|
||||
- [ ] Resultados
|
||||
- [ ] Balance
|
||||
- [ ] Capital de Trabajo
|
||||
- [ ] Flujo de Efectivo
|
||||
- [ ] Métricas
|
||||
- [ ] Indicadores
|
||||
- [ ] Negocios
|
||||
- [ ] Estados Financieros
|
||||
|
||||
---
|
||||
|
||||
### FASE 8: Generación de PDF
|
||||
|
||||
#### 8.1 Backend
|
||||
- [ ] Instalar Browsershot
|
||||
- [ ] Crear `GeneradorPdf.php`
|
||||
- [ ] Endpoint GET /api/reportes/{id}/pdf
|
||||
|
||||
#### 8.2 Frontend
|
||||
- [ ] Vista `PdfView` con todas las páginas
|
||||
- [ ] Estilos específicos para impresión
|
||||
- [ ] Separadores de sección
|
||||
- [ ] Portada y contraportada
|
||||
|
||||
---
|
||||
|
||||
### FASE 9: Panel Administrativo
|
||||
|
||||
#### 9.1 Dashboard admin
|
||||
- [ ] Estadísticas generales
|
||||
- [ ] Alertas pendientes
|
||||
|
||||
#### 9.2 Gestión de usuarios
|
||||
- [ ] CRUD de usuarios
|
||||
- [ ] Asignación de roles
|
||||
|
||||
#### 9.3 Configuración
|
||||
- [ ] Editor de umbrales
|
||||
- [ ] Editor de reglas de mapeo
|
||||
- [ ] Editor de giros
|
||||
|
||||
---
|
||||
|
||||
### FASE 10: Funcionalidades de Cliente
|
||||
|
||||
#### 10.1 Gestión de empleados
|
||||
- [ ] Lista de empleados
|
||||
- [ ] Crear empleado
|
||||
- [ ] Configurar permisos
|
||||
|
||||
#### 10.2 Configuración
|
||||
- [ ] Exclusiones guardadas
|
||||
- [ ] Preferencias de reporte
|
||||
|
||||
---
|
||||
|
||||
### FASE 11: Testing y Refinamiento
|
||||
|
||||
#### 11.1 Testing
|
||||
- [ ] Tests unitarios del motor de cálculo
|
||||
- [ ] Tests de parsers
|
||||
- [ ] Tests de API
|
||||
- [ ] Tests E2E del flujo principal
|
||||
|
||||
#### 11.2 Refinamiento
|
||||
- [ ] Optimización de rendimiento
|
||||
- [ ] Manejo de errores
|
||||
- [ ] Validaciones
|
||||
- [ ] UX/UI polish
|
||||
|
||||
---
|
||||
|
||||
## Prioridad de Implementación
|
||||
|
||||
1. **MVP (Fases 1-4, 5-7):** Sistema funcional con CONTPAQi, dashboard básico
|
||||
2. **PDF (Fase 8):** Exportación de reportes
|
||||
3. **Admin (Fase 9):** Panel de configuración
|
||||
4. **Multi-usuario (Fase 10):** Funcionalidades de cliente
|
||||
5. **Calidad (Fase 11):** Testing y refinamiento
|
||||
|
||||
---
|
||||
|
||||
## Archivos Clave a Crear
|
||||
|
||||
### Backend (Laravel)
|
||||
|
||||
```
|
||||
app/
|
||||
├── Http/Controllers/
|
||||
│ ├── AuthController.php
|
||||
│ ├── ClienteController.php
|
||||
│ ├── BalanzaController.php
|
||||
│ ├── CuentaController.php
|
||||
│ ├── ReporteController.php
|
||||
│ └── Admin/
|
||||
│ ├── UsuarioController.php
|
||||
│ ├── UmbralController.php
|
||||
│ └── ReglaMappeoController.php
|
||||
├── Models/
|
||||
│ ├── User.php
|
||||
│ ├── Cliente.php
|
||||
│ ├── Balanza.php
|
||||
│ ├── Cuenta.php
|
||||
│ ├── Reporte.php
|
||||
│ └── ...
|
||||
├── Services/
|
||||
│ ├── Parsers/
|
||||
│ │ ├── ParserInterface.php
|
||||
│ │ ├── ContpaqiParser.php
|
||||
│ │ └── DetectorFormato.php
|
||||
│ ├── ClasificadorCuentas.php
|
||||
│ ├── CalculadorMetricas.php
|
||||
│ └── GeneradorPdf.php
|
||||
└── ...
|
||||
```
|
||||
|
||||
### Frontend (React)
|
||||
|
||||
```
|
||||
src/
|
||||
├── components/
|
||||
│ ├── charts/
|
||||
│ │ ├── BarChart.tsx
|
||||
│ │ ├── LineChart.tsx
|
||||
│ │ ├── StackedBarChart.tsx
|
||||
│ │ ├── WaterfallChart.tsx
|
||||
│ │ └── ComboChart.tsx
|
||||
│ ├── cards/
|
||||
│ │ ├── KPICard.tsx
|
||||
│ │ └── InsightCard.tsx
|
||||
│ ├── forms/
|
||||
│ │ ├── ClienteForm.tsx
|
||||
│ │ └── UploadBalanza.tsx
|
||||
│ └── layout/
|
||||
│ ├── Sidebar.tsx
|
||||
│ └── Header.tsx
|
||||
├── pages/
|
||||
│ ├── Login.tsx
|
||||
│ ├── Dashboard/
|
||||
│ │ ├── index.tsx
|
||||
│ │ ├── Resumen.tsx
|
||||
│ │ ├── Margenes.tsx
|
||||
│ │ └── ...
|
||||
│ ├── Admin/
|
||||
│ │ ├── Usuarios.tsx
|
||||
│ │ └── Umbrales.tsx
|
||||
│ └── PdfView/
|
||||
│ └── index.tsx
|
||||
├── hooks/
|
||||
│ ├── useAuth.ts
|
||||
│ ├── useCliente.ts
|
||||
│ └── useReporte.ts
|
||||
├── services/
|
||||
│ └── api.ts
|
||||
└── types/
|
||||
└── index.ts
|
||||
```
|
||||
Reference in New Issue
Block a user