erp-mecanicas-diesel/docs/02-definicion-modulos/MMD-006-cotizaciones/historias-usuario/US-MMD006-003-aplicar-descuentos.md

120 lines
2.5 KiB
Markdown

# 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