# 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