# US-MMD002-008: Cerrar Orden y Generar Pre-factura ## Metadata | Campo | Valor | |-------|-------| | **ID** | US-MMD002-008 | | **Epica** | EPIC-MMD-002 - Ordenes de Servicio | | **Modulo** | ordenes-servicio | | **Prioridad** | P0 | | **Story Points** | 5 | | **Sprint** | Sprint 5 | | **Estado** | Backlog | --- ## Historia de Usuario **Como** recepcionista, **quiero** cerrar una orden completada y generar una pre-factura, **para** cobrar al cliente y preparar la facturacion. ## Descripcion Detallada Cuando el mecanico termina los trabajos, la recepcionista verifica la orden, registra el kilometraje de salida, genera la pre-factura con todos los conceptos, y procesa el pago. La orden pasa a estado LISTO. --- ## Criterios de Aceptacion **Escenario 1: Validar orden lista para cerrar** ```gherkin DADO que quiero cerrar una orden en EN_REPARACION CUANDO accedo al cierre ENTONCES el sistema valida: - Hay al menos un trabajo registrado - No hay solicitudes de refacciones pendientes - Mecanico marco como terminado Y permite continuar si cumple validaciones ``` **Escenario 2: Registrar kilometraje de salida** ```gherkin DADO que cierro la orden CUANDO registro kilometraje de salida: 125,050 km ENTONCES el sistema calcula km recorridos en taller: 50 km Y actualiza el historial del vehiculo ``` **Escenario 3: Generar pre-factura** ```gherkin DADO que cierro la orden CUANDO genero la pre-factura ENTONCES veo resumen: | Concepto | Monto | | Mano de obra (4.5 hrs) | $2,025 | | Servicios | $850 | | Refacciones | $3,200 | | Subtotal | $6,075 | | IVA 16% | $972 | | TOTAL | $7,047 | ``` **Escenario 4: Aplicar descuento** ```gherkin DADO que el cliente es frecuente CUANDO aplico descuento del 10% ENTONCES el sistema recalcula: | Subtotal | $6,075 | | Descuento 10% | -$607.50 | | Nuevo subtotal | $5,467.50 | | IVA 16% | $874.80 | | TOTAL | $6,342.30 | ``` **Escenario 5: Registrar metodo de pago** ```gherkin DADO que el cliente paga CUANDO registro el pago: | Metodo | Efectivo | | Monto recibido | $7,000 | | Cambio | -$657.70 | ENTONCES la orden pasa a LISTO Y se genera comprobante de pago ``` **Escenario 6: Imprimir pre-factura** ```gherkin DADO que genero la pre-factura CUANDO imprimo ENTONCES se genera PDF con todos los conceptos Y se incluye firma de autorizacion del cliente ``` --- ## Datos del Cierre | Campo | Tipo | Requerido | |-------|------|-----------| | km_exit | number | Si | | discount_percent | number | No | | discount_amount | number | No | | payment_method | enum | Si | | payment_reference | string | No | | notes | text | No | | closed_by | FK | Auto | | closed_at | datetime | Auto | --- ## Tareas Tecnicas **Backend:** - [ ] BE-059: Endpoint POST /api/orders/:id/close - [ ] BE-060: Validaciones de cierre - [ ] BE-061: Calcular totales con descuentos - [ ] BE-062: Registrar pago - [ ] BE-063: Generar PDF pre-factura **Frontend:** - [ ] FE-059: Crear OrderCloseWizard component - [ ] FE-060: Crear PaymentForm component - [ ] FE-061: Crear InvoicePreview component - [ ] FE-062: Integracion con impresion --- ## Dependencias **Depende de:** - [ ] US-MMD002-005: Trabajos registrados **Bloquea:** - [ ] MME-007: Facturacion CFDI (timbrado) --- ## Definition of Done (DoD) - [ ] Validaciones de cierre - [ ] Calculo de totales con descuentos - [ ] Registro de pago - [ ] PDF de pre-factura - [ ] Cambio de estado a LISTO - [ ] Tests pasando --- **Creada por:** Requirements-Analyst **Fecha:** 2025-12-06