3.7 KiB
3.7 KiB
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
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
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
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
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
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
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