3.4 KiB
US-MGN-005-005-001: Crear Ajuste de Inventario
RF Asociado: RF-MGN-005-007 Módulo: MGN-005 - Inventario Básico Epic: Ajustes de Inventario Prioridad: P0 Story Points: 4 Sprint: Sprint 11 Estado: Ready for Development Fecha: 2025-11-24
User Story
Como usuario de inventario, Quiero crear ajustes de inventario para corregir diferencias entre stock físico y sistema, Para mantener la precisión del inventario tras conteos físicos.
Descripción Detallada
Los ajustes de inventario se usan cuando el conteo físico no coincide con el sistema. Tienen líneas con:
- Producto y ubicación
- Cantidad teórica (sistema)
- Cantidad contada (física)
- Diferencia (contada - teórica)
Al validar, se generan movimientos de stock automáticamente para ajustar a la cantidad real.
Criterios de Aceptación
Escenario 1: Crear ajuste con diferencias positivas y negativas (Camino Feliz)
Dado que creo ajuste con líneas: Producto A (teórica=10, contada=12, diff=+2), Producto B (teórica=5, contada=3, diff=-2), Cuando guardo el ajuste, Entonces el sistema crea ajuste en estado draft con las líneas.
Escenario 2: Calcular diferencia automáticamente
Dado que ingreso cantidad teórica=10 y contada=8, Cuando guardo la línea, Entonces el sistema calcula diferencia=-2 automáticamente.
Escenario 3: Validar producto y ubicación existen
Dado que ingreso product_id=999 (no existe), Cuando intento guardar, Entonces el sistema retorna error 404 "Producto no encontrado".
Reglas de Negocio
- RN-1: Ajustes se crean en estado draft.
- RN-2: Diferencia = cantidad_contada - cantidad_teórica.
- RN-3: Ajustes pueden tener líneas positivas y negativas.
- RN-4: Al validar se generan movimientos de stock automáticamente.
Tareas Técnicas
Backend
- Endpoint: POST /api/v1/inventory/adjustments
- Service: InventoryAdjustmentService.create(dto)
- DTO: CreateAdjustmentDto, AdjustmentLineDto
- Unit tests (>80%)
- Integration tests
- Swagger docs
Frontend
- Componente: CreateAdjustmentForm.tsx
- Tabla editable de líneas
- Cálculo automático de diferencias
- Component tests
- E2E test
Database
- Tabla: inventory.inventory_adjustments
- Tabla: inventory.inventory_adjustment_lines
- RLS policy: company_isolation
Estimación Detallada
| Tarea | Horas |
|---|---|
| Backend | 2 |
| Frontend | 2.5 |
| Testing | 1.5 |
| Code Review | 0.5 |
| TOTAL | 6.5 horas = 4 SP |
Definition of Done
- Código implementado según ET
- Tests pasando (>80%)
- Code review aprobado
- QA validado
- PO aprobado