====== Interface - Cargas de Archivos ====== Esta opción permite la generación masiva de documentos financieros por medio de la funcionalidad interna **Supertabla** ((Proceso interno de procesamientos de configuraciones para la generación de registros financieros)). El proceso de carga de archivos utiliza la supertabla de forma implícita((Carga por medió de archivos planos)) es decir el usuario previamente configura archivos planos de acuerdo a configuraciones de conceptos y los carga en esta opción. === Nota === Este proceso se ejecuta de forma atómica es decir si ocurre un error en el procesamiento de la carga (por lo general por problemas en las configuraciones o saldos en los procesos) el proceso de generación masiva de documentos (Carga) se cancela. A Continuación se describe la funcionalidad por medio de pestañas. ===== Pestaña Lista ===== En esta pestaña se pueden visualizar los procesos de cargas previamente realizados en el sistema. Se pueden filtrar, ordenar y buscar procesos previos. {{ :ada:sicoferp:financiero:tesoreria:interface:carga_listado.png?600 |}} ===== Pestaña Encabezado: Configuración de la Carga ===== En esta pestaña se configura el proceso de carga masiva y se carga el archivo plano. {{ :ada:sicoferp:financiero:tesoreria:interface:detalle_carga_archivos.png |}} ===== Boton Tests y Estado Borrador ===== Tanto el boton test como el estado borrador, no lo usa el cliente, nada más está allí para fines de pruebas con acompañamiento, el cliente solamente usa estado Aprobado. Cuando estos se encuentren activos son porque se activaron por base de datos, pero en todos los clientes se deben encontrar inactivos. {{ :ada:sicoferp:financiero:tesoreria:interface:2020-12-14_16h41_28.png?400 |}} Los siguientes UPDATE son para inhabilitar tanto el boton test como el estado si se llegan a encontrar habilitados. UPDATE sicof.m_constantes SET APLICA = 'N' WHERE UPPER(TRIM(DESCRIPCION)) ='MOSTRAR_BOTON_SFCOMERCIAL_DOCUMENTO'; UPDATE sicof.m_constantes SET APLICA = 'N' where UPPER(TRIM(DESCRIPCION)) = 'MOSTRAR_BOTON_SFCOMERCIAL_TEST' ; ===== Pestaña Analizador ===== En esta pestaña se encuentra la funcionalidad de analizador previo de cargar. Para más información consulte: [[ada:sicoferp:financiero:tesoreria:interface:analizador|Analizador]] {{ :ada:sicoferp:financiero:tesoreria:interface:carga_analizador.png?600 |}} ===== Notas del Proceso ===== * Si la carga presenta errores en la subida del archivo, se debe empezar. * Si la carga presenta número de contrato se toma la fecha de la columna fecha_pago como fecha del contrato. ===== Ajuste de Validación de Saldo PAC ===== === 1. Información General === Objeto: w_carga_datos_comercial_avance.srw Función: of_validador_carga() Módulo: Tesorería / Interfaz Comercial Versión de PB: 12.5 Fecha: Octubre 2023 === 2. Descripción del Problema === En el proceso de carga de avances comerciales, el sistema realiza una validación presupuestal contra el PAC (Plan Anual de Caja) cuando el parámetro PRESUP01.PARAMETROS_SISTEMA.maneja_pac está activo ('S'). Se detectó que la variable ld_pac_disponible siempre retornaba 0, lo que provocaba bloqueos erróneos en la carga, incluso cuando existía disponibilidad presupuestal en el rubro correspondiente. Causa Raíz La consulta SQL embebida original intentaba obtener el rubro desde la tabla SFCOMERCIAL.DET_CONCEPTOS_RUBROS filtrando por la columna RUBRO_INGRESOS. Sin embargo, los procesos de avance y egresos manejan rubros de gasto definidos en la maestra de conceptos comerciales (MAE_CONCEPTOS_COMERCIAL). Al no encontrar coincidencia en la tabla de ingresos, el SELECT no devolvía registros o el NVL resultaba en 0. === 3. Solución Técnica === Se modificó el SQL embebido dentro de la función of_validador_carga() para: Agregación: Utilizar SUM(DP.SALDO_DISPONIBLE) para consolidar el saldo en caso de existir múltiples registros para un mismo rubro en el mes/año. Fuente de Datos correcta: Cambiar la subconsulta para que busque el rubro asociado al concepto comercial en MAE_CONCEPTOS_COMERCIAL.CODIGO_RUBRO, que es la fuente verídica para procesos de egresos/avances. Cláusula de búsqueda: Se reemplazó el EXISTS por un IN sobre la maestra de conceptos para mayor claridad y precisión en la relación concepto-rubro. === Código Modificado (Snippet): === == Solicitud: Validación general del PAC para procesos de afectación e integración == if ls_maneja_pac = 'S' then iuo_validador.of_add_console('Validando saldos de PAC...', 1) for li_row = 1 to li_count ls_codigo_concepto = idw_detalle.getitemstring(li_row, 'codigo_concepto') ld_valor = idw_detalle.getitemdecimal(li_row, 'valor') ldt_fecha = date(idw_detalle.getitemDatetime(li_row, 'fecha_pago')) If isnull(ldt_fecha) then ldt_fecha = ldt_fecha_hoy li_ano = year(ldt_fecha) li_mes = month(ldt_fecha) setNull(ld_pac_disponible) guo_app.of_sql_embedded_context( ts_transaccion) SELECT NVL(SUM(DP.SALDO_DISPONIBLE), 0) INTO :ld_pac_disponible FROM PRESUP01.PLAN_ANUAL_DE_CAJA DP WHERE DP.ANO = :li_ano AND DP.MES = :li_mes AND DP.PAC_RUBRO IN (SELECT MCC.CODIGO_RUBRO FROM MAE_CONCEPTOS_COMERCIAL MCC WHERE MCC.CODIGO_CONCEPTO = :ls_codigo_concepto) USING ts_transaccion; if Not IsNull(ld_pac_disponible) AND ld_valor > ld_pac_disponible then ls_msg = 'El valor (' + String(ld_valor, '$#,##0.00') + ') del concepto ' + ls_codigo_concepto + & ' excede el saldo PAC disponible (' + String(ld_pac_disponible, '$#,##0.00') + ') para el mes ' + String(li_mes) + '.' iuo_validador.of_add_console(ls_msg, 3) lb_valid = false end if next if lb_valid then iuo_validador.of_add_console('---> OK Validando saldos de PAC', 1) end if === Desarrollado por: [Miguel Muñoz] Fecha: [28/04/2026] Versión de PB: 12.5 === [[ada:sicoferp:financiero:tesoreria:interface|Volver]]