Files
rm-ventas/ROADMAP.md
T
Nurfog e1367fc23a feat: questpdf reports for contrato, cotizacion, arqueo
- ReportService with 3 QuestPDF report generators
- Contrato PDF with header, student info, and course table
- Cotización PDF with customer info, total, and detail table
- Arqueo PDF with cashier summary and payment method breakdowns
- ReportController with endpoints for PDF download
- Registered in DI
2026-07-08 09:22:25 -04:00

5.3 KiB

Roadmap — Migración ModuloVentas

Proyecto: rm-ventas Original: /home/juan/dev/ventas (.NET Framework 4.7.2 / WebForms / MySQL) Destino: .NET 10 + PostgreSQL + Next.js Inicio: Julio 2026


Estado Actual

Componente Estado
Backend .NET 10 — Skeleton (sln + 4 proyectos + NuGet) CREADO
Entidades / DTOs / Interfaces (Ventas.Core) CREADO
Infrastructure (EF Core + Dapper + Repos) PARCIAL (DbContext + LeadRepository listos)
Services (lógica de negocio) PARCIAL (LeadService, UsuarioService, JwtService)
API Controllers PARCIAL (AuthController, LeadController)
Auth JWT CREADO (JwtService + middleware)
Reportes QuestPDF (17 reportes) PENDIENTE
ServicesExternos.API PENDIENTE
Frontend Next.js PENDIENTE
Contenedores (Docker) PENDIENTE
Tests E2E PENDIENTE

Checklist por Fase

FASE 1: BACKEND .NET 10 — API REST (~6-8 semanas)

  • 1.1 Crear solución + proyectos base
  • 1.2 Ventas.Core — Entidades y DTOs (~1 sem)
    • Lead.cs + resto entidades (25 clases desde Datos/)
    • DTOs request/response (LeadDto, LoginRequest, etc.)
    • Enums (EstadoLead, TipoPago, TipoDocumento, TipoDescuento)
    • Interfaces repositorios (ILeadRepository, ILeadQueryRepository, IAlumnoRepository, IUsuarioRepository, IContratoRepository, ICotizacionRepository)
  • 1.3 Ventas.Infrastructure — Acceso a Datos (~2-3 sem)
    • VentasDbContext.cs (EF Core + Npgsql)
    • LeadRepository.cs (SPs INSERT/UPDATE con Dapper)
    • LeadQueryRepository.cs (SPs SELECT con Dapper)
    • Configurations/ (EF mapping)
    • Resto repos (Alumno, Contrato, Cotizacion, etc.)
    • SpComplexQueries.cs (Dapper multi-resultset)
  • 1.4 Ventas.Services — Lógica de Negocio (~2 sem)
    • LeadService.cs, UsuarioService.cs, JwtService.cs
    • ContratoService.cs, CotizacionService.cs, AlumnoService.cs, InformeService.cs
  • 1.5 Ventas.API — Controladores REST (~1 sem)
    • AuthController.cs (login + perfil)
    • LeadController.cs (CRUD + actividades + pagos)
    • ContratoController.cs (CRUD + PDF + empresa + firma)
    • CotizacionController.cs (CRUD + detalle + pago + empresa)
    • AlumnoController.cs (CRUD + apoderado + consultas)
    • InformeController.cs (reportes ventas, leads, documentos)
    • Program.cs completo (DI, JWT, CORS)
    • appsettings.json con connection strings
  • 1.6 Auth JWT (~3 días)
    • JwtService.cs (generación de tokens)
    • Login endpoint funcional
    • Claims → cookies HttpOnly
  • 1.7 Reportes QuestPDF (~2-3 sem)
    • ReportService.cs (Contrato, Cotización, Arqueo en QuestPDF)
    • 14 reportes restantes (Anexo, ContratoBlack, Presupuesto, CAEMP, CC_EMP, etc.)
  • Dockerfile Backend

FASE 2: SERVICES EXTERNOS API (~2-3 semanas)

  • 2.0 Setup
    • ServicesExternos.sln + proyectos
    • Program.cs + Dockerfile
  • 2.1 LibreDTE (~1 sem)
  • 2.2 Transbank Webpay (~1 sem)
  • 2.3 Email con MailKit (~2 días)

FASE 3: FRONTEND NEXT.JS (~6-8 semanas)

  • 3.1 Setup (create-next-app, packages, config)
  • 3.2 Layout Principal (~1 sem)
    • layout.tsx (sidebar + header = SAM.Master)
    • Sidebar.tsx, Header.tsx
    • CSS original (style.css, ichn.css, etc.)
  • 3.3 Login + Auth (~3 días)
  • 3.4 Dashboard (~3 días)
  • 3.5 Módulo Leads (~1 sem) — 3 páginas
  • 3.6 Módulo Cotizaciones/Pagos (~1 sem)
  • 3.7 Módulo Empresas (~1 sem) — 3 páginas
  • 3.8 Resto páginas (~2-3 sem)
    • Arqueo, Cursos, Alumnos
    • Reportes (3), Autorizador, Contacto
  • Dockerfile Frontend

FASE 4: CONTENEDORES (~1 semana)

  • docker-compose.yml (backend-api + services-externos + frontend)
  • .env.example
  • .gitignore

FASE 5: PRUEBAS (~2-3 semanas)

  • Unit tests backend (xUnit + Moq)
  • Integration tests (TestContainers + PostgreSQL)
  • Playwright E2E (20 escenarios)
  • Visual regression tests

Bitácora Diaria

Fecha Fase Qué se hizo Siguiente paso
2026-07-07 F1 Entities (25), Enums, DTOs, Interfaces, DbContext, LeadRepository + LeadQueryRepository, DI, JWT, appsettings Resto repos + Controllers
2026-07-07 F1 LeadService, UsuarioService, JwtService, AuthController, LeadController Resto Services + Controllers
2026-07-07 F1 ContratoService, CotizacionService, AlumnoService, InformeService + Controllers Reportes QuestPDF
2026-07-07 F1.7 ReportService (Contrato, Cotización, Arqueo PDF con QuestPDF) + ReportController Resto reportes + ServicesExternos o Frontend

Próximos Pasos Inmediatos

  1. Completar Ventas.Core/Entities/
  2. Configurar VentasDbContext
  3. Crear LeadRepository + LeadQueryRepository
  4. Agregar referencia Infrastructure a Ventas.API
  5. Configurar JWT + CORS + DI en Program.cs
  6. Actualizar appsettings.json con connection string
  7. Seguir repositorios por prioridad: Contrato → Cotizacion → Alumno → Usuario → Auth
  8. Crear Controllers (empezar con AuthController + LeadController)
  9. Probar compilación con dotnet build