# EPICA: EPIC-MMD-004 - Inventario de Refacciones ## Metadata | Campo | Valor | |-------|-------| | **ID** | EPIC-MMD-004 | | **Nombre** | Inventario de Refacciones | | **Modulo** | inventario-refacciones | | **Fase** | Fase 1 - MVP | | **Prioridad** | P0 (Critico) | | **Estado** | Backlog | | **Story Points** | 42 | | **Sprint(s)** | Sprint 2-3 | --- ## Descripcion Modulo de gestion de inventario especializado para refacciones diesel. Extiende el modulo MGN-011 Inventory del core con funcionalidades especificas: catalogos de partes por marca/modelo, equivalencias, ubicaciones en almacen, stock minimo, y solicitudes desde ordenes de servicio. **Extiende:** MGN-011 Inventory (70% reutilizacion) --- ## Objetivo de Negocio - Reducir perdidas de inventario de 15% a menos de 2% - Evitar paros por falta de refacciones criticas - Control de costos de partes por servicio - Trazabilidad: que refaccion se uso en que vehiculo - Facilitar reposicion automatica --- ## Historias de Usuario | ID | Historia | Prioridad | SP | Estado | |----|----------|-----------|-----|--------| | US-MMD004-001 | Como almacenista, quiero registrar refacciones con codigo, descripcion y ubicacion para control | P0 | 5 | Backlog | | US-MMD004-002 | Como almacenista, quiero registrar entrada de refacciones (compra, devolucion) para actualizar stock | P0 | 5 | Backlog | | US-MMD004-003 | Como mecanico, quiero solicitar refaccion desde orden de servicio para usar en reparacion | P0 | 5 | Backlog | | US-MMD004-004 | Como almacenista, quiero despachar refacciones solicitadas y actualizar stock automaticamente | P0 | 5 | Backlog | | US-MMD004-005 | Como almacenista, quiero ver alertas de stock minimo para reabastecer a tiempo | P0 | 5 | Backlog | | US-MMD004-006 | Como almacenista, quiero buscar refacciones por codigo, descripcion o equivalencia | P0 | 3 | Backlog | | US-MMD004-007 | Como jefe de taller, quiero ver costo de refacciones por orden de servicio | P1 | 3 | Backlog | | US-MMD004-008 | Como admin, quiero configurar ubicaciones de almacen (rack, estante, nivel) | P1 | 3 | Backlog | | US-MMD004-009 | Como admin, quiero importar catalogo de refacciones desde Excel | P1 | 5 | Backlog | | US-MMD004-010 | Como almacenista, quiero hacer inventario fisico y ajustar diferencias | P2 | 3 | Backlog | **Total Story Points:** 42 SP --- ## Flujo de Movimientos de Inventario ``` ┌────────────────────────────────────────────────────────────┐ │ ENTRADAS (+) │ ├────────────────────────────────────────────────────────────┤ │ COMPRA │ Recepcion de compra a proveedor │ │ DEVOLUCION │ Cliente devuelve refaccion no usada │ │ AJUSTE+ │ Inventario fisico encontro mas │ │ TRANSFERENCIA│ Recibe de otro almacen (si aplica) │ └────────────────────────────────────────────────────────────┘ ┌────────────────────────────────────────────────────────────┐ │ SALIDAS (-) │ ├────────────────────────────────────────────────────────────┤ │ CONSUMO │ Usada en orden de servicio │ │ AJUSTE- │ Inventario fisico encontro menos │ │ MERMA │ Danada, perdida, obsoleta │ │ DEVOLUCION │ Devolucion a proveedor │ └────────────────────────────────────────────────────────────┘ ``` --- ## Criterios de Aceptacion de la Epica **Funcionales:** - [ ] Catalogo de refacciones con codigo, descripcion, ubicacion - [ ] Categorias: INY, FIL, LUB, ELE, FRE, SUS, MOT, TRA - [ ] Registro de movimientos con tipo y referencia - [ ] Stock actual calculado automaticamente - [ ] Alertas de stock minimo configurables - [ ] Busqueda por codigo, descripcion, equivalencias - [ ] Solicitud de refaccion desde orden de servicio - [ ] Kardex por refaccion (historial movimientos) - [ ] Costo de refacciones por orden **No Funcionales:** - [ ] Busqueda < 200ms - [ ] Actualizacion de stock en tiempo real - [ ] Soporte 5000+ SKUs **Tecnicos:** - [ ] Integracion con modulo Ordenes (consumos) - [ ] Integracion con Compras (si existe) - [ ] Export de inventario a Excel - [ ] Auditoria de todos los movimientos --- ## Dependencias **Esta epica depende de:** | Epica/Modulo | Estado | Bloqueante | |--------------|--------|------------| | EPIC-MMD-001 Fundamentos | Backlog | Si | | MGN-011 Inventory (Core) | Pendiente | Si | **Esta epica bloquea:** | Epica/Modulo | Razon | |--------------|-------| | EPIC-MMD-002 Ordenes | Requiere refacciones | | EPIC-MMD-006 Cotizaciones | Requiere precios | | EPIC-MMA-010 Proveedores | Requiere catalogo | --- ## Desglose Tecnico **Database:** - [ ] Schema: `parts_management` - [ ] Tablas: 8 (parts, categories, locations, movements, stock, requests, equivalences, etc.) - [ ] Funciones: 3 (calcular_stock, registrar_movimiento, alertar_minimo) - [ ] Indices: Por codigo, categoria, ubicacion **Backend:** - [ ] Modulo: `parts-inventory` - [ ] Extiende: InventoryModule (Core) - [ ] Entities: 7 (Part, Category, Location, Movement, Stock, Request, Equivalence) - [ ] Endpoints: 18+ - [ ] Tests: 30+ **Frontend:** - [ ] Paginas: 4 (PartsList, PartDetail, MovementsLog, StockAlerts) - [ ] Componentes: 12+ (PartCard, MovementForm, StockBadge, LocationSelect, etc.) - [ ] Stores: 2 (partsStore, movementsStore) --- ## Estructura de Refaccion ```typescript interface Part { id: string; code: string; // Codigo interno (ej: INY-0001) barcode?: string; // Codigo de barras description: string; // Descripcion completa short_name: string; // Nombre corto category_id: string; // INY, FIL, LUB, etc. brand?: string; // Marca (Bosch, Delphi, etc.) oem_number?: string; // Numero original fabricante unit: string; // PZA, LT, KG, MTS cost: number; // Costo de compra price: number; // Precio de venta min_stock: number; // Stock minimo max_stock?: number; // Stock maximo location_id: string; // Ubicacion en almacen equivalences: string[]; // Codigos equivalentes status: 'active' | 'discontinued'; } ``` --- ## Endpoints API | Metodo | Endpoint | Descripcion | |--------|----------|-------------| | GET | /api/parts | Listar refacciones (paginado, filtros) | | POST | /api/parts | Crear refaccion | | GET | /api/parts/:id | Detalle refaccion | | PATCH | /api/parts/:id | Actualizar refaccion | | GET | /api/parts/:id/kardex | Kardex de movimientos | | POST | /api/movements | Registrar movimiento | | GET | /api/stock/alerts | Alertas de stock bajo | | POST | /api/parts/request | Solicitar desde orden | | POST | /api/parts/import | Importar desde Excel | | GET | /api/inventory/report | Reporte de inventario | --- ## Categorias de Refacciones | Codigo | Categoria | Ejemplos | |--------|-----------|----------| | INY | Inyectores y Bombas | Inyectores, bombas, toberas | | FIL | Filtros | Aire, aceite, diesel, hidraulico | | LUB | Lubricantes | Aceites motor, transmision, hidraulico | | ELE | Electrico | Sensores, alternadores, marchas | | FRE | Frenos | Balatas, discos, tambores, cilindros | | SUS | Suspension | Amortiguadores, rotulas, bujes | | MOT | Motor | Empaques, anillos, camisas, valvulas | | TRA | Transmision | Clutch, sincronizadores, baleros | | ACC | Accesorios | Faros, espejos, mangueras | | HER | Herramientas | Consumibles de taller | --- ## Riesgos | Riesgo | Probabilidad | Impacto | Mitigacion | |--------|--------------|---------|------------| | Stock inicial incorrecto | Alta | Medio | Inventario fisico inicial | | Movimientos no registrados | Media | Alto | Registro obligatorio desde orden | | Equivalencias incorrectas | Media | Medio | Validacion manual | --- ## Definition of Ready (DoR) - [x] Historias de usuario definidas - [x] Categorias definidas - [x] Flujo de movimientos claro - [ ] Catalogo inicial de refacciones ## Definition of Done (DoD) - [ ] CRUD de refacciones funcionando - [ ] Movimientos con actualizacion de stock - [ ] Alertas de stock minimo - [ ] Solicitud desde ordenes - [ ] Import Excel - [ ] Kardex por refaccion - [ ] Tests pasando --- ## Historial | Fecha | Cambio | Autor | |-------|--------|-------| | 2025-12-06 | Creacion de epica | Requirements-Analyst | --- **Creada por:** Requirements-Analyst **Fecha:** 2025-12-06 **Ultima actualizacion:** 2025-12-06