# US-MMD004-007: Ver Kardex de Refaccion

## Metadata

| Campo | Valor |
|-------|-------|
| **ID** | US-MMD004-007 |
| **Epica** | EPIC-MMD-004 - Inventario y Refacciones |
| **Modulo** | inventario |
| **Prioridad** | P1 |
| **Story Points** | 5 |
| **Sprint** | Sprint 5 |
| **Estado** | Backlog |

---

## Historia de Usuario

**Como** administrador,
**quiero** ver el kardex completo de movimientos de una refaccion,
**para** rastrear entradas, salidas y saldos historicos.

## Descripcion Detallada

El kardex es el registro detallado de todos los movimientos de inventario de una refaccion, incluyendo entradas, salidas, ajustes, y el saldo resultante despues de cada movimiento.

---

## Criterios de Aceptacion

**Escenario 1: Ver kardex de refaccion**
```gherkin
DADO que consulto kardex de "Filtro aceite ISX"
CUANDO veo los movimientos
ENTONCES muestra cronologicamente:
  | Fecha | Tipo | Referencia | Entrada | Salida | Saldo |
  | 01-Nov | Compra | OC-001 | 20 | - | 20 |
  | 05-Nov | Consumo | OS-123 | - | 2 | 18 |
  | 10-Nov | Consumo | OS-125 | - | 1 | 17 |
  | 15-Nov | Ajuste | AJ-001 | - | 2 | 15 |
```

**Escenario 2: Filtrar por rango de fechas**
```gherkin
DADO que veo el kardex
CUANDO filtro por "Noviembre 2025"
ENTONCES solo muestra movimientos de ese periodo
Y muestra saldo inicial y final del periodo
```

**Escenario 3: Detalle de movimiento**
```gherkin
DADO que veo un movimiento
CUANDO hago clic en referencia "OS-123"
ENTONCES navega a la orden de servicio relacionada
Y puedo ver contexto completo del consumo
```

**Escenario 4: Kardex valorizado**
```gherkin
DADO que necesito reporte financiero
CUANDO activo "Ver costos"
ENTONCES agrega columnas:
  | Costo unit | Debe | Haber | Saldo valor |
  | $150 | $3,000 | - | $3,000 |
  | $150 | - | $300 | $2,700 |
```

**Escenario 5: Exportar kardex**
```gherkin
DADO que necesito el reporte
CUANDO exporto a Excel
ENTONCES genera archivo con:
  - Todos los movimientos
  - Saldos calculados
  - Formato listo para contabilidad
```

---

## Tipos de Movimiento

| Tipo | Descripcion | Afecta |
|------|-------------|--------|
| Compra | Entrada por orden de compra | +Stock |
| Consumo | Salida a orden de servicio | -Stock |
| Ajuste+ | Ajuste positivo | +Stock |
| Ajuste- | Ajuste negativo/merma | -Stock |
| Devolucion | Regreso de pieza | +Stock |
| Traspaso | Entre ubicaciones | Neutro |

---

## Tareas Tecnicas

**Database:**
- [ ] DB-088: Vista materializada `vw_kardex`
- [ ] DB-089: Indices para performance

**Backend:**
- [ ] BE-177: Endpoint GET /api/parts/:id/kardex
- [ ] BE-178: Calculo de saldos
- [ ] BE-179: Kardex valorizado
- [ ] BE-180: Export a Excel

**Frontend:**
- [ ] FE-175: Crear KardexPage
- [ ] FE-176: Crear KardexTable
- [ ] FE-177: Crear MovementDetail modal

---

## Definition of Done (DoD)

- [ ] Ver kardex cronologico
- [ ] Filtrar por fechas
- [ ] Ver detalle de movimiento
- [ ] Kardex valorizado
- [ ] Exportar a Excel
- [ ] Tests pasando

---

**Creada por:** Requirements-Analyst
**Fecha:** 2025-12-06
