# US-MMD006-003: Aplicar Descuentos ## Metadata | Campo | Valor | |-------|-------| | **ID** | US-MMD006-003 | | **Epica** | EPIC-MMD-006 - Cotizaciones y Presupuestos | | **Modulo** | cotizaciones | | **Prioridad** | P1 | | **Story Points** | 3 | | **Sprint** | Sprint 6 | | **Estado** | Backlog | --- ## Historia de Usuario **Como** administrador, **quiero** aplicar descuentos a las cotizaciones, **para** ofrecer precios especiales a clientes o por volumen. ## Descripcion Detallada Los descuentos pueden aplicarse por linea, por categoria (mano de obra o refacciones), o al total. Deben respetarse limites segun permisos del usuario. --- ## Criterios de Aceptacion **Escenario 1: Descuento global** ```gherkin DADO que tengo cotizacion con total $10,000 CUANDO aplico descuento global 10% ENTONCES muestra: | Subtotal | $10,000 | | Descuento | -$1,000 | | Total | $9,000 | ``` **Escenario 2: Descuento por categoria** ```gherkin DADO que quiero descuento solo en mano de obra CUANDO aplico 15% a servicios ENTONCES solo afecta lineas de tipo servicio Y refacciones mantienen precio ``` **Escenario 3: Limite de descuento** ```gherkin DADO que mi perfil permite max 10% CUANDO intento aplicar 15% ENTONCES el sistema advierte: "Descuento excede limite (10%). Requiere autorizacion" Y envia solicitud al supervisor ``` **Escenario 4: Descuento de flota** ```gherkin DADO que el vehiculo pertenece a flota CUANDO creo cotizacion ENTONCES aplica automaticamente descuentos de flota: | Mano obra | 10% | | Refacciones | 5% | ``` **Escenario 5: Motivo de descuento** ```gherkin DADO que aplico descuento > 5% CUANDO confirmo ENTONCES debo registrar motivo: | Motivo | Cliente frecuente | Y se guarda para auditoria ``` --- ## Reglas de Descuento | Rol | Max descuento | |-----|---------------| | Recepcionista | 5% | | Supervisor | 15% | | Administrador | 30% | | Gerente | Sin limite | --- ## Tareas Tecnicas **Database:** - [ ] DB-107: Campos descuento en quotes - [ ] DB-108: Tabla `discount_requests` **Backend:** - [ ] BE-215: Aplicar descuentos - [ ] BE-216: Validar limites por rol - [ ] BE-217: Solicitud de autorizacion **Frontend:** - [ ] FE-211: Crear DiscountModal - [ ] FE-212: Crear DiscountByCategory - [ ] FE-213: Crear AuthorizationRequest --- ## Definition of Done (DoD) - [ ] Descuento global - [ ] Descuento por categoria - [ ] Limite segun rol - [ ] Descuento de flota automatico - [ ] Motivo obligatorio - [ ] Tests pasando --- **Creada por:** Requirements-Analyst **Fecha:** 2025-12-06