# US-MGN-007-001-001: Crear Cotización de Venta **RF Asociado:** [RF-MGN-007-001](../../02-modelado/requerimientos-funcionales/mgn-007/RF-MGN-007-001-cotizaciones-de-venta.md) **Módulo:** MGN-007 - Ventas Básico **Epic:** Cotizaciones **Prioridad:** P0 **Story Points:** 3 **Sprint:** Sprint 16 **Estado:** Ready for Development **Fecha:** 2025-11-24 --- ## User Story **Como** vendedor, **Quiero** crear cotizaciones para clientes, **Para** presentar precios y condiciones antes de confirmar ventas. ## Descripción Detallada Cotización (quotation) es el documento preliminar de venta con: cliente, productos, cantidades, precios, descuentos, impuestos, total, validez. Estados: draft, sent, sale (confirmada), cancelled. ## Criterios de Aceptación ### Escenario 1: Crear cotización en draft (Camino Feliz) **Dado que** creo cotización: customer_id=1, lines=[{product:1, qty:5, price:200}], validity_date="2024-02-15", **Cuando** guardo, **Entonces** sistema crea cotización draft con número QT/2024/0001, total calculado. ### Escenario 2: Calcular totales automáticamente **Dado que** línea tiene qty=5, price=200, discount=10%, tax=19%, **Cuando** guardo, **Entonces** sistema calcula subtotal=900, tax=171, total=1071. ### Escenario 3: Validar cliente es customer **Dado que** partner_id=5 tiene is_customer=false, **Cuando** intento crear, **Entonces** error 400 "Partner no es cliente". ## Reglas de Negocio - **RN-1:** Cotizaciones en draft, editables. - **RN-2:** Total = suma(líneas) - descuentos + impuestos. - **RN-3:** Número secuencial: QT/{year}/{seq}. - **RN-4:** Partner debe ser customer. ## Tareas Técnicas ### Backend - [ ] POST /api/v1/sales/quotations - [ ] QuotationService.create(dto) - [ ] Calcular totales automáticamente - [ ] Unit/Integration tests ### Frontend - [ ] CreateQuotationForm.tsx - [ ] Tabla líneas con cálculo automático - [ ] E2E test ### Database - [ ] sales.quotations, sales.quotation_lines - [ ] RLS company_isolation ## Estimación Detallada | Tarea | Horas | Backend | 1.5 | Frontend | 2 | Testing | 1 | **TOTAL** | **4.5h = 3 SP** | ## Definition of Done - [ ] Código implementado según ET - [ ] Tests >80% - [ ] Code review aprobado - [ ] QA/PO validado ## Referencias - [RF-MGN-007-001](../../02-modelado/requerimientos-funcionales/mgn-007/RF-MGN-007-001-cotizaciones-de-venta.md) - [Traceability](../../02-modelado/trazabilidad/TRACEABILITY-MGN-007.yaml)