# US-MMD004-008: Gestionar Codigos Alternos

## Metadata

| Campo | Valor |
|-------|-------|
| **ID** | US-MMD004-008 |
| **Epica** | EPIC-MMD-004 - Inventario y Refacciones |
| **Modulo** | inventario |
| **Prioridad** | P2 |
| **Story Points** | 3 |
| **Sprint** | Sprint 6 |
| **Estado** | Backlog |

---

## Historia de Usuario

**Como** almacenista,
**quiero** registrar codigos alternos de refacciones,
**para** encontrar piezas usando cualquier numero de parte del fabricante.

## Descripcion Detallada

Una misma refaccion puede tener multiples numeros de parte segun el fabricante (OEM, aftermarket, equivalentes). El sistema debe permitir buscar por cualquiera de estos codigos.

---

## Criterios de Aceptacion

**Escenario 1: Agregar codigo alterno**
```gherkin
DADO que edito refaccion "Filtro aceite ISX"
CUANDO agrego codigos alternos:
  | Codigo | Fabricante |
  | LF14000NN | Fleetguard |
  | P551807 | Donaldson |
  | 3406754 | Cummins OEM |
ENTONCES se guardan como equivalencias
```

**Escenario 2: Buscar por codigo alterno**
```gherkin
DADO que busco "P551807"
CUANDO el codigo es alterno
ENTONCES encuentra la refaccion principal
Y muestra todos los codigos equivalentes
```

**Escenario 3: Importar equivalencias**
```gherkin
DADO que tengo lista de equivalencias en Excel
CUANDO importo el archivo
ENTONCES se crean las relaciones:
  | Principal | Alterno | Fabricante |
  | INT-001 | LF14000NN | Fleetguard |
  | INT-001 | P551807 | Donaldson |
```

**Escenario 4: Marcar preferido**
```gherkin
DADO que tenemos multiples equivalentes
CUANDO marco "LF14000NN" como preferido
ENTONCES este codigo aparece en cotizaciones
Y se sugiere al hacer pedidos
```

**Escenario 5: Codigo duplicado**
```gherkin
DADO que ingreso codigo alterno
CUANDO ya existe en otra refaccion
ENTONCES el sistema advierte:
  "Codigo P551807 ya asociado a Filtro X"
Y pregunta si crear relacion
```

---

## Tareas Tecnicas

**Database:**
- [ ] DB-090: Crear tabla `part_alternates`
- [ ] DB-091: Indice unico en alternate_code

**Backend:**
- [ ] BE-181: CRUD codigos alternos
- [ ] BE-182: Busqueda por codigo alterno
- [ ] BE-183: Import de equivalencias

**Frontend:**
- [ ] FE-178: Crear AlternateCodesEditor
- [ ] FE-179: Crear ImportEquivalences modal

---

## Definition of Done (DoD)

- [ ] CRUD de codigos alternos
- [ ] Busqueda por codigo alterno
- [ ] Importar equivalencias
- [ ] Marcar preferido
- [ ] Validar duplicados
- [ ] Tests pasando

---

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