erp-vidrio-templado/docs/08-epicas/EPIC-VT-002-cotizaciones.md

199 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# EPICA: EPIC-VT-002 - Cotizaciones
## Metadata
| Campo | Valor |
|-------|-------|
| **ID** | EPIC-VT-002 |
| **Nombre** | Cotizaciones |
| **Modulo** | cotizaciones |
| **Fase** | Fase 1 - MVP |
| **Prioridad** | P0 (Critico) |
| **Estado** | Backlog |
| **Story Points** | 34 |
| **Sprint(s)** | Sprint 2-3 |
---
## Descripcion
Sistema de cotizaciones especializado para productos de vidrio. Permite calcular precios por dimensiones (alto x ancho x espesor), tipo de vidrio, acabados y procesamientos adicionales. Genera PDFs profesionales y permite conversión directa a órdenes de producción.
---
## Objetivo de Negocio
- Reducir tiempo de cotización de 30 min a 5 min
- Eliminar errores de cálculo manual de áreas
- Estandarizar precios por tipo de vidrio y espesor
- Mejorar presentación profesional con PDFs
- Agilizar conversión de cotización a producción
---
## Historias de Usuario
| ID | Historia | Prioridad | SP | Estado |
|----|----------|-----------|-----|--------|
| US-VT002-001 | Como vendedor, quiero crear cotización ingresando dimensiones de piezas para calcular automáticamente el área en m² | P0 | 5 | Backlog |
| US-VT002-002 | Como vendedor, quiero seleccionar tipo de vidrio y espesor de un catálogo para aplicar precio correcto | P0 | 3 | Backlog |
| US-VT002-003 | Como vendedor, quiero agregar acabados (sandblast, grabado, bisel) para calcular costo adicional | P0 | 5 | Backlog |
| US-VT002-004 | Como vendedor, quiero ver resumen de cotización con desglose de costos para revisar antes de enviar | P0 | 3 | Backlog |
| US-VT002-005 | Como vendedor, quiero generar PDF de cotización con logo y datos fiscales para enviar al cliente | P0 | 5 | Backlog |
| US-VT002-006 | Como vendedor, quiero enviar cotización por email al cliente para agilizar proceso | P1 | 3 | Backlog |
| US-VT002-007 | Como jefe de ventas, quiero convertir cotización aprobada a orden de producción para iniciar fabricación | P0 | 5 | Backlog |
| US-VT002-008 | Como admin, quiero configurar precios por tipo de vidrio y espesor para mantener lista actualizada | P0 | 3 | Backlog |
| US-VT002-009 | Como admin, quiero definir márgenes de utilidad por cliente para aplicar descuentos automáticos | P2 | 2 | Backlog |
**Total Story Points:** 34 SP
---
## Flujo de Cotización
```
┌─────────────┐
│ BORRADOR │ ← Se inicia cotización
└──────┬──────┘
┌─────────────┐
│ CALCULADA │ ← Áreas y precios calculados
└──────┬──────┘
┌─────────────┐
│ ENVIADA │ ← Enviada a cliente
└──────┬──────┘
├──────────────┐
▼ ▼
┌─────────────┐ ┌─────────────┐
│ APROBADA │ │ RECHAZADA │
└──────┬──────┘ └─────────────┘
┌─────────────┐
│ CONVERTIDA │ ← Se genera orden de producción
└─────────────┘
```
---
## Criterios de Aceptacion de la Epica
**Funcionales:**
- [ ] Crear cotización con cliente y datos de contacto
- [ ] Agregar líneas con dimensiones (alto × ancho × espesor)
- [ ] Calcular automáticamente área en m² y precio
- [ ] Seleccionar tipo de vidrio de catálogo
- [ ] Agregar acabados con precio adicional
- [ ] Generar PDF profesional
- [ ] Enviar por email
- [ ] Convertir a orden de producción
**No Funcionales:**
- [ ] Cálculo de precio < 100ms
- [ ] Generación PDF < 3 segundos
- [ ] Soporte para cotizaciones de 50+ líneas
**Tecnicos:**
- [ ] Integración con catálogo de vidrios
- [ ] Integración con módulo de producción
- [ ] Templates PDF configurables
---
## Dependencias
**Esta epica depende de:**
| Epica/Modulo | Estado | Bloqueante |
|--------------|--------|------------|
| EPIC-VT-001 Fundamentos | Backlog | Si |
**Esta epica bloquea:**
| Epica/Modulo | Razon |
|--------------|-------|
| EPIC-VT-003 Produccion | Requiere cotizaciones aprobadas |
---
## Desglose Tecnico
**Database:**
- [ ] Schema: `quotes`
- [ ] Tablas: 5 (quotes, quote_lines, glass_types, finishes, prices)
- [ ] Funciones: 2 (calculate_area, calculate_total)
- [ ] Indices: Por cliente, fecha, estado
**Backend:**
- [ ] Modulo: `quotations`
- [ ] Entities: 4 (Quote, QuoteLine, GlassType, Finish)
- [ ] Endpoints: 12
- [ ] Tests: 25
**Frontend:**
- [ ] Paginas: 4 (QuotesList, QuoteCreate, QuoteDetail, QuotePDF)
- [ ] Componentes: 10 (QuoteForm, LineEditor, PriceCalculator, etc.)
- [ ] Stores: 1 (quotesStore)
---
## Endpoints API
| Metodo | Endpoint | Descripcion |
|--------|----------|-------------|
| POST | /api/quotes | Crear cotización |
| GET | /api/quotes | Listar cotizaciones (paginado) |
| GET | /api/quotes/:id | Detalle de cotización |
| PATCH | /api/quotes/:id | Actualizar cotización |
| POST | /api/quotes/:id/lines | Agregar línea |
| DELETE | /api/quotes/:id/lines/:lineId | Eliminar línea |
| POST | /api/quotes/:id/calculate | Recalcular totales |
| POST | /api/quotes/:id/send | Enviar por email |
| POST | /api/quotes/:id/convert | Convertir a orden |
| GET | /api/quotes/:id/pdf | Generar PDF |
---
## Riesgos
| Riesgo | Probabilidad | Impacto | Mitigacion |
|--------|--------------|---------|------------|
| Cálculos complejos de acabados | Media | Alto | Catálogo bien definido |
| Precios desactualizados | Media | Medio | Validación al enviar |
| PDFs no profesionales | Baja | Medio | Templates revisados |
---
## Definition of Ready (DoR)
- [x] Historias de usuario definidas
- [x] Criterios de aceptacion claros
- [x] Dependencias identificadas
- [x] Estimacion completada
- [ ] Catálogo de vidrios definido
- [ ] Template PDF aprobado
## Definition of Done (DoD)
- [ ] Flujo completo de cotización funcionando
- [ ] Generación de PDFs correcta
- [ ] Conversión a orden de producción
- [ ] Tests de integración pasando
- [ ] Documentación de API
---
## Historial
| Fecha | Cambio | Autor |
|-------|--------|-------|
| 2025-12-08 | Creacion de epica | Claude-Agent |
---
**Creada por:** Claude-Agent
**Fecha:** 2025-12-08
**Ultima actualizacion:** 2025-12-08