# US-MMD002-005: Registrar Trabajos Realizados ## Metadata | Campo | Valor | |-------|-------| | **ID** | US-MMD002-005 | | **Epica** | EPIC-MMD-002 - Ordenes de Servicio | | **Modulo** | ordenes-servicio | | **Prioridad** | P0 | | **Story Points** | 8 | | **Sprint** | Sprint 4 | | **Estado** | Backlog | --- ## Historia de Usuario **Como** mecanico, **quiero** registrar los trabajos realizados con tiempo y refacciones utilizadas, **para** documentar el servicio y facilitar la facturacion. ## Descripcion Detallada El mecanico debe poder agregar lineas de trabajo a la orden: que servicio realizo, cuanto tiempo le tomo, y que refacciones utilizo. Esto permite calcular el costo total y tener trazabilidad del servicio. --- ## Criterios de Aceptacion **Escenario 1: Agregar servicio del catalogo** ```gherkin DADO que tengo una orden asignada CUANDO agrego un servicio del catalogo: | Servicio | Cantidad | Unidad | Precio | | Cambio de aceite | 1 | evento | $350 | ENTONCES el servicio se agrega a la orden Y el subtotal se actualiza ``` **Escenario 2: Registrar tiempo de trabajo** ```gherkin DADO que realizo una reparacion CUANDO registro el tiempo: | Trabajo | Tiempo | Precio/hora | | Reparacion bomba | 3.5 hrs | $450 | ENTONCES se calcula: 3.5 x $450 = $1,575 Y se agrega al total de mano de obra ``` **Escenario 3: Agregar refaccion utilizada** ```gherkin DADO que uso una refaccion CUANDO la agrego a la orden: | Refaccion | Cantidad | Precio | | Filtro diesel | 2 | $225 c/u | ENTONCES se descuenta del inventario Y se agrega al costo de refacciones: $450 ``` **Escenario 4: Ver resumen de orden** ```gherkin DADO que he registrado varios trabajos CUANDO veo el resumen ENTONCES veo: | Concepto | Monto | | Mano de obra | $1,925 | | Refacciones | $1,850 | | Subtotal | $3,775 | | IVA 16% | $604 | | Total | $4,379 | ``` **Escenario 5: Agregar notas al trabajo** ```gherkin DADO que encuentro algo importante CUANDO agrego nota: "Encontre fuga en radiador, requiere atencion" ENTONCES la nota se guarda en la orden Y es visible para el jefe de taller y recepcion ``` --- ## Estructura de Item de Orden ```typescript interface OrderItem { id: string; order_id: string; type: 'service' | 'labor' | 'part'; // Si es servicio del catalogo service_id?: string; // Si es refaccion part_id?: string; description: string; quantity: number; unit: string; unit_price: number; discount?: number; total: number; // Para mano de obra hours?: number; hourly_rate?: number; mechanic_id: string; created_at: Date; notes?: string; } ``` --- ## Tareas Tecnicas **Database:** - [ ] DB-023: Crear tabla `order_items` - [ ] DB-024: Crear tabla `order_notes` - [ ] DB-025: Trigger para actualizar totales de orden **Backend:** - [ ] BE-050: Crear OrderItemEntity - [ ] BE-051: Crear OrderItemService con CRUD - [ ] BE-052: Endpoint POST /api/orders/:id/items - [ ] BE-053: Calcular totales automaticamente - [ ] BE-054: Integracion con inventario (descontar stock) **Frontend:** - [ ] FE-048: Crear OrderWorkPanel component - [ ] FE-049: Crear ServiceSelector component - [ ] FE-050: Crear PartSelector component - [ ] FE-051: Crear OrderSummaryCard - [ ] FE-052: Formulario de tiempo de trabajo --- ## Dependencias **Depende de:** - [ ] US-MMD002-003: Orden asignada - [ ] US-MMD001-003: Catalogo de servicios - [ ] US-MMD004-*: Inventario de refacciones **Bloquea:** - [ ] US-MMD002-008: Cerrar orden --- ## Definition of Done (DoD) - [ ] Agregar servicios del catalogo - [ ] Registrar tiempo de trabajo - [ ] Agregar refacciones (descuenta inventario) - [ ] Calcular totales automaticos - [ ] Agregar notas - [ ] Tests pasando --- **Creada por:** Requirements-Analyst **Fecha:** 2025-12-06