# 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
