erp-mecanicas-diesel/docs/02-definicion-modulos/MMD-002-ordenes-servicio/historias-usuario/US-MMD002-005-registrar-trabajos.md

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