====== Cierre de período ====== Consolida el mes actual afectando el inventario y las cuentas asociadas a los movimientos de los activos mediante plantillas. Valida la configuración necesaria para la afectación contable y crea un asiento contable de cierre de almacén. ===== Precierre ===== Permite visualizar de forma preventiva la afectación contable e informar errores de configuración, reporta movimientos de artículos de tipología devolutivos que se hallan realizado sin plantilla e inconsistencias en el kardex. ==== Hallazgos ==== * Movimientos sin plantilla: Los movimientos realizados sin haber configurado una plantilla no generan asiento contable. Devuelve un reporte con el grupo, código externo del artículo y el movimiento realizado. * Inconsistencias kardex: Un error frecuente de datos debido al saldo en bodega. Retorna un reporte de los artículos que presentan diferencias en las cantidades finales respecto a las entradas y salidas del inventario. ==== Vista preliminar ==== Muestra cómo se generará el asiento contable en contabilidad. ===== Cierre ===== Cierre de inventario y periodo actual. ===== Configuración requerida ===== * Los artículos de tipo consumo y consumo controlado, no contabilizan. * Los movimientos registrados en el módulo de contabilidad en maestro conceptos y maestro tipos unicamente generarán asientos. * Se debe configurar los movimientos en parámetros sistema - parámetros estados con los conceptos y tipos creados. * Se debe configurar la plantilla acorde a ese movimiento con sus respectivas cuentas. * Verificar que las plantillas estén activas. ===== Validación de Integridad de Asientos Contables (Maestro vs. Detalle) ===== Versión de PowerBuilder: 12.5 Módulos Afectados: Compras, Contabilidad (Integración) === 1. Introducción === El proceso de precierre y cierre de inventarios es crítico para la correcta integración contable de los movimientos de almacén. Durante este proceso, se generan asientos contables que registran las afectaciones financieras en el sistema. Estos asientos se componen de un registro Maestro (encabezado del asiento) y uno o varios registros de Detalle (movimientos de cuentas contables). === 2. Problema Identificado === Anteriormente, se detectó un comportamiento en el que, bajo ciertas circunstancias, el proceso de precierre o cierre podía generar registros en la tabla maestro_asiento_contable (o maestro_asiento_contable_temp durante el precierre), pero no lograba insertar la información correspondiente en la tabla det_asiento_contable (o det_asiento_contable_temp). Esto resultaba en asientos contables "huérfanos" o incompletos, comprometiendo la integridad de la información contable. === 3. Solución Implementada (Validación en Ventanas) === Para garantizar la consistencia de los datos, se ha implementado una verificación final de integridad en las ventanas de cierre de inventarios: w_cierre_inventarios_periodo.srw (Cierre individual por empresa) w_cierre_inventarios_periodo_total.srw (Cierre masivo por seccional/empresa) Esta validación se ejecuta después de que el sistema intenta guardar los asientos contables (tanto el maestro como el detalle) pero antes de confirmar la transacción (COMMIT) en la base de datos. ¿Cómo funciona la validación? La validación realiza una consulta directa a las tablas de asientos contables (temporales o definitivas, según la etapa del cierre) para identificar si existen registros en la tabla maestro_asiento_contable (o _temp) que no tengan ninguna entrada correspondiente en la tabla det_asiento_contable (o _temp) para el mismo codigo_asiento, codigo_mempresa y periodo. La lógica utilizada es la siguiente: Se cuenta el número de registros en MAESTRO_ASIENTO_CONTABLE (o _TEMP) para la empresa y el periodo actual. Para cada uno de estos registros maestros, se verifica que exista al menos un registro en DET_ASIENTO_CONTABLE (o _TEMP) asociado a su CODIGO_ASIENTO. Si se encuentra algún registro maestro que no tiene un detalle asociado, se considera una inconsistencia. === 4. Comportamiento ante Inconsistencias === Si la validación detecta uno o más asientos maestros sin sus respectivos detalles: Mensaje de Error: El sistema mostrará un mensaje de advertencia claro al usuario, indicando que se han detectado inconsistencias. El mensaje especificará el número de asientos maestros afectados y la necesidad de reintentar el proceso. Ejemplo de Mensaje (Cierre Individual): plaintext Error de Consistencia Se han detectado [X] asientos maestros sin registros de detalle en la base de datos. El proceso se cancelará para evitar inconsistencias. Por favor, intente realizar el proceso nuevamente. Ejemplo de Mensaje (Cierre Masivo): plaintext Error de Consistencia Seccional: [Código Empresa] Se detectaron [X] asientos maestros sin registros de detalle en la base de datos. El proceso se detendrá para evitar inconsistencias. Por favor, realice el proceso nuevamente. Detención del Proceso: El proceso de cierre se detendrá inmediatamente. Rollback de la Transacción: Se ejecutará un ROLLBACK automático para revertir todos los cambios realizados en la base de datos durante esa ejecución del cierre. Esto asegura que no queden datos parciales o inconsistentes. === 5. Beneficios de la Implementación === Integridad de Datos: Previene la creación de asientos contables incompletos, asegurando que cada encabezado tenga su correspondiente detalle. Fiabilidad Contable: Mejora la confianza en la información generada por el módulo de inventarios para la contabilidad. Detección Temprana de Errores: Permite identificar y corregir problemas en las plantillas contables o en la lógica de afectación antes de que los datos se consoliden de forma incorrecta. Claridad para el Usuario: Proporciona mensajes específicos que guían al usuario sobre la naturaleza del problema y la acción a seguir. === Desarrollado por: [Miguel Muñoz] Fecha: [12/05/2026] Versión de PB: 12.5 ===