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
758 lines
30 KiB
YAML
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
|