erp-mecanicas-diesel/docs/02-definicion-modulos/MMD-006-cotizaciones/historias-usuario/US-MMD006-002-agregar-lineas.md

119 lines
2.6 KiB
Markdown

# US-MMD006-002: Agregar Lineas a Cotizacion
## Metadata
| Campo | Valor |
|-------|-------|
| **ID** | US-MMD006-002 |
| **Epica** | EPIC-MMD-006 - Cotizaciones y Presupuestos |
| **Modulo** | cotizaciones |
| **Prioridad** | P0 |
| **Story Points** | 5 |
| **Sprint** | Sprint 6 |
| **Estado** | Backlog |
---
## Historia de Usuario
**Como** recepcionista,
**quiero** agregar servicios y refacciones a la cotizacion,
**para** detallar el presupuesto completo para el cliente.
## Descripcion Detallada
Las cotizaciones contienen lineas de servicios (mano de obra) y refacciones (partes). Cada linea debe tener descripcion, cantidad, precio unitario y subtotal.
---
## Criterios de Aceptacion
**Escenario 1: Agregar servicio del catalogo**
```gherkin
DADO que edito cotizacion
CUANDO busco servicio "Calibracion inyectores"
ENTONCES agrega linea:
| Descripcion | Cantidad | Precio | Subtotal |
| Calibracion inyectores | 1 | $1,200 | $1,200 |
```
**Escenario 2: Agregar refaccion**
```gherkin
DADO que agrego refacciones
CUANDO selecciono del inventario:
| Refaccion | Cantidad | Precio |
| Filtro aceite ISX | 2 | $450 |
ENTONCES agrega linea con subtotal $900
```
**Escenario 3: Linea personalizada**
```gherkin
DADO que necesito algo no catalogado
CUANDO agrego linea manual:
| Descripcion | Trabajo especial |
| Cantidad | 1 |
| Precio | $500 |
ENTONCES se agrega a la cotizacion
```
**Escenario 4: Modificar cantidad**
```gherkin
DADO que tengo linea con 1 unidad
CUANDO cambio cantidad a 4
ENTONCES recalcula subtotal
Y actualiza total de cotizacion
```
**Escenario 5: Eliminar linea**
```gherkin
DADO que tengo linea agregada
CUANDO elimino la linea
ENTONCES se quita de la cotizacion
Y se recalcula el total
```
**Escenario 6: Aplicar descuento por linea**
```gherkin
DADO que agrego linea
CUANDO aplico descuento 10%
ENTONCES muestra:
| Precio | Descuento | Subtotal |
| $1,200 | -$120 | $1,080 |
```
---
## Tareas Tecnicas
**Database:**
- [ ] DB-105: Crear tabla `quote_items`
- [ ] DB-106: Campos: type, description, qty, price, discount
**Backend:**
- [ ] BE-212: CRUD lineas de cotizacion
- [ ] BE-213: Calculo de totales
- [ ] BE-214: Busqueda en catalogos
**Frontend:**
- [ ] FE-207: Crear QuoteItemsEditor
- [ ] FE-208: Crear ServiceSearch
- [ ] FE-209: Crear PartSearch
- [ ] FE-210: Crear LineItemRow
---
## Definition of Done (DoD)
- [ ] Agregar servicio del catalogo
- [ ] Agregar refaccion
- [ ] Linea personalizada
- [ ] Modificar cantidad
- [ ] Eliminar linea
- [ ] Descuento por linea
- [ ] Tests pasando
---
**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-06