erp-mecanicas-diesel/docs/02-definicion-modulos/MMD-006-cotizaciones/historias-usuario/US-MMD006-006-convertir-orden.md

114 lines
2.6 KiB
Markdown

# US-MMD006-006: Convertir Cotizacion a Orden
## Metadata
| Campo | Valor |
|-------|-------|
| **ID** | US-MMD006-006 |
| **Epica** | EPIC-MMD-006 - Cotizaciones y Presupuestos |
| **Modulo** | cotizaciones |
| **Prioridad** | P0 |
| **Story Points** | 5 |
| **Sprint** | Sprint 7 |
| **Estado** | Backlog |
---
## Historia de Usuario
**Como** recepcionista,
**quiero** convertir una cotizacion aprobada en orden de servicio,
**para** iniciar el trabajo sin recapturar informacion.
## Descripcion Detallada
Cuando el cliente aprueba la cotizacion, debe poder convertirse en orden de servicio con un clic, trasladando toda la informacion: vehiculo, cliente, lineas de trabajo, y precios acordados.
---
## Criterios de Aceptacion
**Escenario 1: Convertir cotizacion completa**
```gherkin
DADO que tengo cotizacion aprobada
CUANDO hago clic en "Convertir a orden"
ENTONCES crea orden de servicio con:
- Mismo vehiculo
- Mismo cliente
- Lineas de cotizacion como trabajos
- Precios cotizados
```
**Escenario 2: Conversion parcial**
```gherkin
DADO que el cliente aprueba solo algunos items
CUANDO selecciono items a incluir:
| Item | Incluir |
| Calibracion inyectores | Si |
| Cambio filtros | Si |
| Revision turbo | No |
ENTONCES la orden solo tiene items seleccionados
```
**Escenario 3: Reservar refacciones**
```gherkin
DADO que la cotizacion tiene refacciones
CUANDO convierto a orden
ENTONCES reserva automaticamente del inventario:
| Refaccion | Cantidad | Estado |
| Filtro aceite | 2 | Reservado |
Y descuenta de disponible
```
**Escenario 4: Vinculo bidireccional**
```gherkin
DADO que converti cotizacion
CUANDO veo la orden
ENTONCES muestra enlace a cotizacion origen
Y desde cotizacion veo enlace a orden generada
```
**Escenario 5: Validar disponibilidad**
```gherkin
DADO que convierto cotizacion de hace 1 mes
CUANDO verifico refacciones
ENTONCES advierte si no hay stock:
"Filtro aceite: stock insuficiente (1 de 2)"
Y permite continuar o cancelar
```
---
## Tareas Tecnicas
**Database:**
- [ ] DB-111: Relacion quotes -> service_orders
- [ ] DB-112: Status conversion
**Backend:**
- [ ] BE-222: Servicio de conversion
- [ ] BE-223: Validar disponibilidad
- [ ] BE-224: Reservar inventario
- [ ] BE-225: Conversion parcial
**Frontend:**
- [ ] FE-218: Crear ConvertToOrderModal
- [ ] FE-219: Crear ItemSelector
- [ ] FE-220: Crear StockValidation alert
---
## Definition of Done (DoD)
- [ ] Convertir cotizacion completa
- [ ] Conversion parcial
- [ ] Reservar refacciones
- [ ] Vinculo bidireccional
- [ ] Validar disponibilidad
- [ ] Tests pasando
---
**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-06