workspace-v1/projects/erp-construccion/docs/02-definicion-modulos/MAE-013-inventarios/implementacion/TRACEABILITY.yml
rckrdmrd 66161b1566 feat: Workspace-v1 complete migration with NEXUS v3.4
Sistema NEXUS v3.4 migrado con:

Estructura principal:
- core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles)
- core/catalog: Catalogo de funcionalidades reutilizables
- shared/knowledge-base: Base de conocimiento compartida
- devtools/scripts: Herramientas de desarrollo
- control-plane/registries: Control de servicios y CI/CD
- orchestration/: Configuracion de orquestacion de agentes

Proyectos incluidos (11):
- gamilit (submodule -> GitHub)
- trading-platform (OrbiquanTIA)
- erp-suite con 5 verticales:
  - erp-core, construccion, vidrio-templado
  - mecanicas-diesel, retail, clinicas
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
- pos-micro, erp-basico

Configuracion:
- .gitignore completo para Node.js/Python/Docker
- gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git)
- Sistema de puertos estandarizado (3005-3199)

Generated with NEXUS v3.4 Migration System
EPIC-010: Configuracion Git y Repositorios
2026-01-04 03:37:42 -06:00

758 lines
30 KiB
YAML

# TRACEABILITY - MAE-013: Inventarios
metadata:
modulo: MAE-013
nombre: Inventarios
version: 1.0.0
fecha: 2025-12-06
reutilizacion_core: 75%
descripcion: Sistema integral de gestión de inventarios para construcción con control de almacenes, movimientos, conteos físicos y traspasos entre obras
dependencias:
- MGN-001 # Usuarios y Autenticación
- MGN-002 # RBAC
- MGN-003 # Multi-tenancy
- MGN-005 # Catálogos
- MAE-012 # Compras (para recepciones)
apps_moviles:
- MOB-002 # Almacenista
requerimientos:
- id: RF-INV-001
titulo: Almacenes y Ubicaciones
descripcion: Gestión de almacenes con ubicaciones físicas y control de responsables
prioridad: alta
especificaciones:
- id: ESP-INV-001-01
descripcion: Crear y configurar almacenes por obra o sede central
- id: ESP-INV-001-02
descripcion: Definir estructura de ubicaciones (zonas, pasillos, estantes, niveles)
- id: ESP-INV-001-03
descripcion: Asignar responsables y almacenistas por almacén
- id: ESP-INV-001-04
descripcion: Clasificar almacenes por tipo (general, herramientas, peligrosos, temporal)
- id: ESP-INV-001-05
descripcion: Establecer niveles mínimos y máximos de inventario por material
- id: ESP-INV-001-06
descripcion: Control de capacidad y espacio disponible
- id: ESP-INV-001-07
descripcion: Alertas automáticas de existencias bajas o sobre-stock
historias_usuario:
- id: US-INV-001-01
titulo: Como jefe de obra necesito crear almacenes en el proyecto
criterios_aceptacion:
- Registrar almacén con nombre, ubicación física y tipo
- Asignar almacenista responsable del catálogo de usuarios
- Definir horarios de operación y políticas de acceso
- Activar/desactivar almacenes según necesidad
- id: US-INV-001-02
titulo: Como almacenista necesito organizar ubicaciones dentro del almacén
criterios_aceptacion:
- Crear jerarquía de ubicaciones (zona > pasillo > estante > nivel)
- Asignar código único a cada ubicación
- Marcar capacidad y dimensiones de ubicaciones
- Generar mapa visual del almacén
- id: US-INV-001-03
titulo: Como jefe de compras necesito establecer niveles de inventario
criterios_aceptacion:
- Definir nivel mínimo por material y almacén
- Definir nivel máximo para control de sobre-stock
- Configurar punto de reorden automático
- Recibir alertas cuando se alcancen los niveles críticos
- id: US-INV-001-04
titulo: Como residente necesito consultar disponibilidad en almacenes
criterios_aceptacion:
- Ver listado de almacenes de la obra
- Consultar existencias actuales por almacén
- Identificar ubicación física de materiales
- Verificar responsable de cada almacén
tablas:
- inventory_management.almacenes
- inventory_management.tipos_almacen
- inventory_management.ubicaciones
- inventory_management.niveles_inventario
- inventory_management.almacenes_responsables
endpoints:
- POST /api/v1/almacenes
- GET /api/v1/almacenes
- GET /api/v1/almacenes/:id
- PUT /api/v1/almacenes/:id
- DELETE /api/v1/almacenes/:id
- GET /api/v1/almacenes/obra/:obra_id
- POST /api/v1/almacenes/:id/ubicaciones
- GET /api/v1/almacenes/:id/ubicaciones
- PUT /api/v1/almacenes/:id/ubicaciones/:ubicacion_id
- DELETE /api/v1/almacenes/:id/ubicaciones/:ubicacion_id
- POST /api/v1/almacenes/:id/niveles-inventario
- GET /api/v1/almacenes/:id/alertas-stock
- GET /api/v1/almacenes/:id/capacidad
componentes_ui:
- AlmacenesListView
- AlmacenFormModal
- AlmacenDetailView
- UbicacionesTreeView
- UbicacionFormModal
- NivelesInventarioTable
- AlertasStockPanel
- AlmacenResponsableSelector
- MapaAlmacenView
app_movil: MOB-002
integraciones:
- modulo: MGN-005
descripcion: Catálogo de materiales y unidades de medida
- modulo: MGN-001
descripcion: Asignación de almacenistas y responsables
- modulo: MAI-001
descripcion: Vinculación con obras y proyectos
estado: pendiente
- id: RF-INV-002
titulo: Movimientos de Inventario
descripcion: Registro y control de entradas, salidas y ajustes de inventario
prioridad: alta
especificaciones:
- id: ESP-INV-002-01
descripcion: Registrar entradas de inventario desde órdenes de compra
- id: ESP-INV-002-02
descripcion: Registrar salidas de inventario para consumo en obra
- id: ESP-INV-002-03
descripcion: Procesar devoluciones de material (proveedor y obra)
- id: ESP-INV-002-04
descripcion: Realizar ajustes de inventario (mermas, faltantes, sobrantes)
- id: ESP-INV-002-05
descripcion: Trazabilidad completa de movimientos por lote y número de serie
- id: ESP-INV-002-06
descripcion: Validación automática de existencias antes de salidas
- id: ESP-INV-002-07
descripcion: Cálculo de costos por método PEPS o promedio ponderado
- id: ESP-INV-002-08
descripcion: Generación de documentos de entrada/salida con firma digital
historias_usuario:
- id: US-INV-002-01
titulo: Como almacenista necesito registrar entradas de material desde app móvil
criterios_aceptacion:
- Seleccionar orden de compra o entrada manual
- Escanear código de barras/QR del material
- Registrar cantidad, lote y fecha de caducidad
- Asignar ubicación física en almacén
- Capturar fotos del material recibido
- Generar comprobante de entrada con firma
- id: US-INV-002-02
titulo: Como residente necesito solicitar salidas de material
criterios_aceptacion:
- Seleccionar materiales del inventario disponible
- Especificar cantidad y partida presupuestal destino
- Indicar ubicación de entrega en obra
- Enviar solicitud a almacenista para aprobación
- Recibir notificación de aprobación/rechazo
- id: US-INV-002-03
titulo: Como almacenista necesito procesar salidas de material en campo
criterios_aceptacion:
- Ver solicitudes pendientes en app móvil
- Verificar existencias disponibles en tiempo real
- Aprobar o rechazar solicitud con comentarios
- Registrar entrega con firma digital del receptor
- Actualizar inventario automáticamente
- Generar vale de salida en PDF
- id: US-INV-002-04
titulo: Como jefe de almacén necesito realizar ajustes de inventario
criterios_aceptacion:
- Registrar tipo de ajuste (merma, faltante, sobrante, corrección)
- Especificar material, cantidad y ubicación
- Documentar motivo y evidencia del ajuste
- Requerir aprobación para ajustes mayores
- Actualizar kardex con el movimiento
- id: US-INV-002-05
titulo: Como contador necesito consultar valuación de inventario
criterios_aceptacion:
- Ver valor total de inventario por almacén
- Consultar costo promedio por material
- Generar reporte de kardex detallado
- Exportar movimientos para contabilidad
- Comparar valor contable vs físico
tablas:
- inventory_management.movimientos_inventario
- inventory_management.entradas_inventario
- inventory_management.salidas_inventario
- inventory_management.ajustes_inventario
- inventory_management.solicitudes_salida
- inventory_management.kardex
- inventory_management.lotes
- inventory_management.existencias_por_ubicacion
endpoints:
- POST /api/v1/inventario/entradas
- GET /api/v1/inventario/entradas
- GET /api/v1/inventario/entradas/:id
- POST /api/v1/inventario/salidas
- GET /api/v1/inventario/salidas
- GET /api/v1/inventario/salidas/:id
- POST /api/v1/inventario/solicitudes-salida
- GET /api/v1/inventario/solicitudes-salida
- POST /api/v1/inventario/solicitudes-salida/:id/aprobar
- POST /api/v1/inventario/solicitudes-salida/:id/rechazar
- POST /api/v1/inventario/ajustes
- GET /api/v1/inventario/ajustes
- GET /api/v1/inventario/movimientos
- GET /api/v1/inventario/kardex/:material_id
- GET /api/v1/inventario/existencias
- GET /api/v1/inventario/existencias/:material_id/ubicaciones
- GET /api/v1/inventario/valuacion
- GET /api/v1/inventario/lotes/:material_id
componentes_ui:
- MovimientosInventarioListView
- EntradaInventarioFormModal
- SalidaInventarioFormModal
- SolicitudSalidaFormModal
- SolicitudesSalidaPanel
- AjusteInventarioFormModal
- KardexMaterialView
- ValuacionInventarioReport
- MovimientoDetailView
- LotesTable
- ExistenciasPorUbicacionView
- FirmaDigitalCapture
app_movil: MOB-002
funcionalidades_movil:
- Consultar existencias en tiempo real
- Escanear códigos de barras/QR
- Registrar entradas con captura de fotos
- Procesar solicitudes de salida
- Captura de firma digital
- Modo offline con sincronización
- Geolocalización de entregas
- Historial de movimientos
integraciones:
- modulo: MAE-012
descripcion: Entradas desde órdenes de compra
- modulo: RF-INV-001
descripcion: Actualización de existencias por ubicación
- modulo: MGN-005
descripcion: Catálogo de materiales y unidades
estado: pendiente
- id: RF-INV-003
titulo: Conteos Físicos
descripcion: Gestión de inventarios físicos cíclicos y anuales con cuadre de diferencias
prioridad: media
especificaciones:
- id: ESP-INV-003-01
descripcion: Programar conteos físicos cíclicos por almacén o categoría
- id: ESP-INV-003-02
descripcion: Generar hojas de conteo con existencias del sistema
- id: ESP-INV-003-03
descripcion: Captura de conteo físico desde app móvil
- id: ESP-INV-003-04
descripcion: Comparación automática de conteo físico vs sistema
- id: ESP-INV-003-05
descripcion: Identificación y análisis de diferencias
- id: ESP-INV-003-06
descripcion: Aprobación de ajustes resultantes del conteo
- id: ESP-INV-003-07
descripcion: Bloqueo de movimientos durante conteo físico
- id: ESP-INV-003-08
descripcion: Reporte de exactitud de inventario
historias_usuario:
- id: US-INV-003-01
titulo: Como jefe de almacén necesito programar conteos físicos
criterios_aceptacion:
- Crear programa de conteo cíclico (semanal, mensual, trimestral)
- Seleccionar almacenes, ubicaciones o categorías a contar
- Asignar responsables del conteo
- Definir fecha y hora del conteo
- Bloquear movimientos en áreas durante conteo
- id: US-INV-003-02
titulo: Como almacenista necesito realizar conteo físico con app móvil
criterios_aceptacion:
- Descargar hoja de conteo asignada en app móvil
- Ver lista de materiales a contar con existencia teórica
- Escanear códigos de barras durante conteo
- Registrar cantidad física encontrada
- Capturar fotos de materiales con diferencias
- Trabajar en modo offline
- Sincronizar resultados al finalizar
- id: US-INV-003-03
titulo: Como jefe de almacén necesito analizar diferencias de conteo
criterios_aceptacion:
- Ver comparativo de existencia teórica vs física
- Identificar materiales con diferencias significativas
- Consultar detalles y fotos de diferencias
- Solicitar reconteo de materiales específicos
- Aprobar o rechazar ajustes sugeridos
- Generar reporte de exactitud de inventario
- id: US-INV-003-04
titulo: Como auditor necesito consultar historial de conteos
criterios_aceptacion:
- Ver historial de conteos físicos realizados
- Consultar resultados y diferencias encontradas
- Analizar tendencias de exactitud por almacén
- Identificar materiales problemáticos recurrentes
- Exportar reportes de auditoría
tablas:
- inventory_management.conteos_fisicos
- inventory_management.conteos_detalle
- inventory_management.conteos_diferencias
- inventory_management.conteos_aprobaciones
- inventory_management.programas_conteo_ciclico
endpoints:
- POST /api/v1/inventario/conteos
- GET /api/v1/inventario/conteos
- GET /api/v1/inventario/conteos/:id
- PUT /api/v1/inventario/conteos/:id
- POST /api/v1/inventario/conteos/:id/iniciar
- POST /api/v1/inventario/conteos/:id/finalizar
- GET /api/v1/inventario/conteos/:id/hoja-conteo
- POST /api/v1/inventario/conteos/:id/capturar-conteo
- GET /api/v1/inventario/conteos/:id/diferencias
- POST /api/v1/inventario/conteos/:id/aprobar-ajustes
- POST /api/v1/inventario/conteos/:id/rechazar-ajustes
- GET /api/v1/inventario/conteos/:id/reporte-exactitud
- POST /api/v1/inventario/programas-conteo-ciclico
- GET /api/v1/inventario/programas-conteo-ciclico
componentes_ui:
- ConteosListView
- ConteoFormModal
- ConteoDetailView
- HojaConteoView
- CapturaConteoPanel
- DiferenciasTable
- AprobacionAjustesModal
- ReporteExactitudView
- ProgramaConteoCiclicoForm
- HistorialConteosChart
app_movil: MOB-002
funcionalidades_movil:
- Descargar hojas de conteo
- Escanear códigos durante conteo
- Captura de cantidades físicas
- Fotografías de diferencias
- Modo offline completo
- Sincronización de resultados
- Vista de materiales pendientes
integraciones:
- modulo: RF-INV-001
descripcion: Conteos por almacén y ubicación
- modulo: RF-INV-002
descripcion: Generación de ajustes de inventario
- modulo: MGN-005
descripcion: Catálogo de materiales
estado: pendiente
- id: RF-INV-004
titulo: Traspasos entre Almacenes/Obras
descripcion: Transferencias de material entre almacenes de diferentes obras o sedes
prioridad: alta
especificaciones:
- id: ESP-INV-004-01
descripcion: Crear solicitudes de traspaso entre almacenes
- id: ESP-INV-004-02
descripcion: Aprobación multinivel de traspasos (origen, destino, dirección)
- id: ESP-INV-004-03
descripcion: Registro de salida en almacén origen
- id: ESP-INV-004-04
descripcion: Registro de entrada en almacén destino
- id: ESP-INV-004-05
descripcion: Documentación de material en tránsito
- id: ESP-INV-004-06
descripcion: Control de transportista y guía de remisión
- id: ESP-INV-004-07
descripcion: Seguimiento de estatus del traspaso
- id: ESP-INV-004-08
descripcion: Validación de cantidades recibidas vs enviadas
historias_usuario:
- id: US-INV-004-01
titulo: Como residente necesito solicitar traspaso de material de otra obra
criterios_aceptacion:
- Seleccionar almacén origen y destino
- Buscar materiales disponibles en origen
- Especificar cantidad requerida y fecha necesaria
- Justificar la solicitud de traspaso
- Enviar solicitud para aprobación
- Recibir notificación de respuesta
- id: US-INV-004-02
titulo: Como jefe de obra necesito aprobar/rechazar traspasos desde mi almacén
criterios_aceptacion:
- Ver solicitudes de traspaso pendientes
- Consultar impacto en mis existencias
- Verificar disponibilidad de material
- Aprobar o rechazar con comentarios
- Notificar al solicitante y destino
- id: US-INV-004-03
titulo: Como almacenista origen necesito procesar envío de traspaso
criterios_aceptacion:
- Ver traspasos aprobados pendientes de envío
- Preparar material para envío
- Registrar salida con cantidades reales
- Generar documento de traspaso (remisión)
- Capturar datos de transportista
- Marcar traspaso como "en tránsito"
- Actualizar inventario de origen
- id: US-INV-004-04
titulo: Como almacenista destino necesito recibir traspasos en app móvil
criterios_aceptacion:
- Ver traspasos en tránsito esperados
- Verificar documentación de envío
- Registrar cantidades recibidas
- Identificar diferencias vs cantidad enviada
- Capturar fotos del material recibido
- Asignar ubicación en almacén destino
- Generar entrada de traspaso
- Actualizar inventario de destino
- id: US-INV-004-05
titulo: Como director de operaciones necesito monitorear traspasos entre obras
criterios_aceptacion:
- Ver dashboard de traspasos activos
- Consultar material en tránsito por obra
- Identificar traspasos retrasados
- Ver costos de traspasos realizados
- Generar reporte de movimientos entre obras
tablas:
- inventory_management.traspasos
- inventory_management.traspasos_detalle
- inventory_management.traspasos_aprobaciones
- inventory_management.traspasos_documentos
- inventory_management.material_en_transito
endpoints:
- POST /api/v1/inventario/traspasos
- GET /api/v1/inventario/traspasos
- GET /api/v1/inventario/traspasos/:id
- PUT /api/v1/inventario/traspasos/:id
- DELETE /api/v1/inventario/traspasos/:id
- POST /api/v1/inventario/traspasos/:id/aprobar-origen
- POST /api/v1/inventario/traspasos/:id/aprobar-destino
- POST /api/v1/inventario/traspasos/:id/aprobar-direccion
- POST /api/v1/inventario/traspasos/:id/rechazar
- POST /api/v1/inventario/traspasos/:id/procesar-envio
- POST /api/v1/inventario/traspasos/:id/procesar-recepcion
- GET /api/v1/inventario/traspasos/:id/documento
- GET /api/v1/inventario/traspasos/almacen/:almacen_id
- GET /api/v1/inventario/traspasos/en-transito
- GET /api/v1/inventario/traspasos/pendientes-recepcion
componentes_ui:
- TraspasosListView
- TraspasoFormModal
- TraspasoDetailView
- TraspasoAprobacionPanel
- TraspasoEnvioModal
- TraspasoRecepcionModal
- MaterialEnTransitoTable
- TraspasoDocumentoView
- TraspasosMapView
- TraspasosStatusTimeline
app_movil: MOB-002
funcionalidades_movil:
- Ver traspasos pendientes de recepción
- Escanear remisión de traspaso
- Registrar recepción con cantidades
- Captura de fotos del material
- Firma digital de recepción
- Registro de diferencias
- Asignación a ubicaciones
- Notificaciones push de traspasos
integraciones:
- modulo: RF-INV-001
descripcion: Actualización de inventarios origen y destino
- modulo: RF-INV-002
descripcion: Generación de movimientos de salida y entrada
- modulo: MGN-001
descripcion: Aprobadores y responsables
- modulo: MGN-005
descripcion: Catálogo de materiales
estado: pendiente
# Aplicación Móvil
app_movil:
id: MOB-002
nombre: Almacenista
descripcion: Aplicación móvil para control de inventario en campo
plataformas:
- Android
- iOS
tecnologias:
- React Native
- Expo
- SQLite (offline)
- Axios (sync)
funcionalidades:
- login_offline: Autenticación con modo offline
- consulta_inventario: Consulta de existencias en tiempo real
- registro_entradas: Registro de entradas de material
- procesamiento_salidas: Aprobación y entrega de salidas
- escaneo_codigos: Escaneo de códigos de barras y QR
- firma_digital: Captura de firma en entregas
- conteo_fisico: Captura de conteo físico
- recepcion_traspasos: Recepción de traspasos entre almacenes
- captura_fotos: Captura de fotos de materiales
- geolocalizacion: Registro de ubicación en entregas
- sincronizacion: Sincronización automática con servidor
- notificaciones_push: Alertas y notificaciones en tiempo real
requerimientos_vinculados:
- RF-INV-001 # Consulta de almacenes y ubicaciones
- RF-INV-002 # Movimientos de inventario
- RF-INV-003 # Conteos físicos
- RF-INV-004 # Recepción de traspasos
estado: pendiente
# Esquemas de Base de Datos
esquemas:
- nombre: inventory_management
descripcion: Esquema para gestión integral de inventarios
tablas:
- almacenes
- tipos_almacen
- ubicaciones
- niveles_inventario
- almacenes_responsables
- movimientos_inventario
- entradas_inventario
- salidas_inventario
- ajustes_inventario
- solicitudes_salida
- kardex
- lotes
- existencias_por_ubicacion
- conteos_fisicos
- conteos_detalle
- conteos_diferencias
- conteos_aprobaciones
- programas_conteo_ciclico
- traspasos
- traspasos_detalle
- traspasos_aprobaciones
- traspasos_documentos
- material_en_transito
# Políticas RLS
rls_policies:
archivo: ET-INV-rls-policies.sql
descripcion: Políticas de seguridad a nivel de fila para multi-tenancy
tablas_protegidas:
- inventory_management.almacenes
- inventory_management.movimientos_inventario
- inventory_management.traspasos
- inventory_management.conteos_fisicos
# Reportes
reportes:
- id: REP-INV-001
nombre: Inventario Valorizado
descripcion: Valuación de inventario por almacén, obra o categoría
parametros: [fecha_corte, obra_id, almacen_id, categoria_id]
- id: REP-INV-002
nombre: Kardex de Material
descripcion: Movimientos detallados por material
parametros: [material_id, fecha_inicio, fecha_fin, almacen_id]
- id: REP-INV-003
nombre: Existencias por Almacén
descripcion: Listado de existencias actuales por almacén
parametros: [almacen_id, categoria_id, solo_con_existencia]
- id: REP-INV-004
nombre: Materiales con Existencias Bajas
descripcion: Materiales que han alcanzado el nivel mínimo
parametros: [obra_id, almacen_id, categoria_id]
- id: REP-INV-005
nombre: Movimientos por Período
descripcion: Detalle de entradas, salidas y ajustes por período
parametros: [fecha_inicio, fecha_fin, almacen_id, tipo_movimiento]
- id: REP-INV-006
nombre: Exactitud de Inventario
descripcion: Análisis de diferencias en conteos físicos
parametros: [periodo, almacen_id, categoria_id]
- id: REP-INV-007
nombre: Traspasos entre Obras
descripcion: Reporte de traspasos realizados entre almacenes
parametros: [fecha_inicio, fecha_fin, obra_origen, obra_destino]
- id: REP-INV-008
nombre: Material en Tránsito
descripcion: Listado de material en proceso de traspaso
parametros: [fecha_corte, obra_destino]
- id: REP-INV-009
nombre: Rotación de Inventario
descripcion: Análisis de rotación por material y categoría
parametros: [periodo, categoria_id, almacen_id]
- id: REP-INV-010
nombre: Inventario Inmovilizado
descripcion: Materiales sin movimiento en período definido
parametros: [dias_sin_movimiento, almacen_id, valor_minimo]
# Notificaciones
notificaciones:
- evento: existencias_bajas
destinatarios: [almacenista, residente_obra, compras]
canal: [email, app, push_movil]
- evento: solicitud_salida_pendiente
destinatarios: [almacenista]
canal: [app, push_movil]
- evento: salida_aprobada
destinatarios: [solicitante]
canal: [app]
- evento: salida_rechazada
destinatarios: [solicitante]
canal: [app]
- evento: entrada_registrada
destinatarios: [residente_obra, jefe_compras]
canal: [app]
- evento: ajuste_inventario_pendiente
destinatarios: [jefe_almacen, auditor]
canal: [email, app]
- evento: conteo_asignado
destinatarios: [almacenista]
canal: [app, push_movil]
- evento: diferencias_conteo_significativas
destinatarios: [jefe_almacen, auditor]
canal: [email, app]
- evento: traspaso_solicitado
destinatarios: [jefe_obra_origen, almacenista_origen]
canal: [email, app]
- evento: traspaso_aprobado
destinatarios: [solicitante, almacenista_origen, almacenista_destino]
canal: [app, push_movil]
- evento: traspaso_rechazado
destinatarios: [solicitante]
canal: [app]
- evento: traspaso_enviado
destinatarios: [almacenista_destino, jefe_obra_destino]
canal: [app, push_movil]
- evento: traspaso_recibido
destinatarios: [almacenista_origen, jefe_obra_origen]
canal: [app]
# Métricas y KPIs
metricas:
- nombre: exactitud_inventario
descripcion: Porcentaje de exactitud en conteos físicos
unidad: porcentaje
objetivo: "> 95%"
- nombre: rotacion_inventario
descripcion: Veces que rota el inventario por período
unidad: veces/mes
objetivo: "> 2"
- nombre: valor_inventario_inmovilizado
descripcion: Valor de materiales sin movimiento > 90 días
unidad: moneda
objetivo: "< 5% del total"
- nombre: tiempo_procesamiento_salidas
descripcion: Tiempo promedio para procesar solicitudes de salida
unidad: horas
objetivo: "< 4 horas"
- nombre: diferencias_traspasos
descripcion: Porcentaje de diferencias en cantidades de traspasos
unidad: porcentaje
objetivo: "< 2%"
- nombre: nivel_servicio_almacen
descripcion: Porcentaje de solicitudes atendidas a tiempo
unidad: porcentaje
objetivo: "> 95%"
- nombre: costo_almacenamiento
descripcion: Costo de almacenamiento como % del valor inventario
unidad: porcentaje
objetivo: "< 8%"
# Validaciones y Reglas de Negocio
reglas_negocio:
- codigo: RN-INV-001
descripcion: No se permiten salidas de inventario si no hay existencias suficientes
- codigo: RN-INV-002
descripcion: Las salidas de inventario deben estar vinculadas a una partida presupuestal o destino específico
- codigo: RN-INV-003
descripcion: Los ajustes de inventario mayores al 5% requieren aprobación de jefe de almacén
- codigo: RN-INV-004
descripcion: Los traspasos deben ser aprobados por los responsables de ambos almacenes
- codigo: RN-INV-005
descripcion: No se permiten movimientos en almacenes durante conteo físico activo
- codigo: RN-INV-006
descripcion: El costo de materiales debe actualizarse según método PEPS o promedio ponderado
- codigo: RN-INV-007
descripcion: Los conteos físicos con diferencias > 10% requieren reconteo
- codigo: RN-INV-008
descripcion: Los traspasos deben registrar salida antes de poder registrar entrada
- codigo: RN-INV-009
descripcion: Las ubicaciones no pueden exceder su capacidad máxima definida
- codigo: RN-INV-010
descripcion: Los materiales con fecha de caducidad deben alertar 30 días antes
# Seguridad
seguridad:
permisos:
- inventario.almacenes.crear
- inventario.almacenes.leer
- inventario.almacenes.editar
- inventario.almacenes.eliminar
- inventario.ubicaciones.gestionar
- inventario.movimientos.crear
- inventario.movimientos.leer
- inventario.entradas.registrar
- inventario.salidas.solicitar
- inventario.salidas.aprobar
- inventario.salidas.rechazar
- inventario.ajustes.crear
- inventario.ajustes.aprobar
- inventario.conteos.programar
- inventario.conteos.ejecutar
- inventario.conteos.aprobar
- inventario.traspasos.solicitar
- inventario.traspasos.aprobar
- inventario.traspasos.procesar
- inventario.reportes.generar
- inventario.reportes.exportar
roles_sugeridos:
- nombre: almacenista
permisos: [inventario.movimientos.*, inventario.entradas.*, inventario.salidas.aprobar, inventario.conteos.ejecutar]
- nombre: jefe_almacen
permisos: [inventario.*, -inventario.almacenes.eliminar]
- nombre: residente_obra
permisos: [inventario.almacenes.leer, inventario.salidas.solicitar, inventario.movimientos.leer]
- nombre: auditor
permisos: [inventario.*.leer, inventario.conteos.*, inventario.reportes.*]
# Pruebas
pruebas:
unitarias:
- calcular_costo_promedio_ponderado
- validar_existencias_disponibles
- calcular_diferencias_conteo
- validar_capacidad_ubicacion
- calcular_rotacion_inventario
integracion:
- flujo_completo_entrada_inventario
- flujo_completo_salida_inventario
- proceso_conteo_fisico_con_ajustes
- proceso_traspaso_completo
- sincronizacion_app_movil
e2e:
- ciclo_vida_material_entrada_salida
- proceso_conteo_fisico_app_movil
- proceso_traspaso_entre_obras
- gestion_existencias_multiples_ubicaciones
# Cronograma Estimado
cronograma:
- fase: Análisis y Diseño
duracion: 2 semanas
entregables: [modelos_datos, diagramas_flujo, especificaciones_api]
- fase: Desarrollo Backend
duracion: 5 semanas
entregables: [api_almacenes, api_movimientos, api_conteos, api_traspasos, rls_policies]
- fase: Desarrollo Frontend
duracion: 5 semanas
entregables: [ui_almacenes, ui_movimientos, ui_conteos, ui_traspasos, reportes]
- fase: Desarrollo App Móvil
duracion: 4 semanas
entregables: [app_almacenista, modo_offline, sincronizacion, escaneo_codigos]
- fase: Pruebas
duracion: 2 semanas
entregables: [pruebas_unitarias, pruebas_integracion, pruebas_usuario, pruebas_campo]
- fase: Documentación y Capacitación
duracion: 1 semana
entregables: [manual_usuario, manual_tecnico, manual_app_movil, videos_capacitacion]
# Notas de Implementación
notas:
- Priorizar desarrollo de RF-INV-001 y RF-INV-002 (funcionalidad básica de almacenes y movimientos)
- Desarrollar app móvil MOB-002 en paralelo con backend de movimientos
- Implementar sincronización offline-online robusta para app móvil
- Considerar integración con lectores de códigos de barras industriales
- Evaluar implementación de tecnología RFID para almacenes grandes
- Planificar estrategia de migración de saldos iniciales de inventario
- Definir políticas de conteo cíclico antes de implementar RF-INV-003
- Considerar integración futura con sistemas de transporte para tracking de traspasos
- Implementar dashboard de métricas en tiempo real para jefes de almacén
- Validar método de costeo (PEPS vs Promedio) con departamento contable