Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
ada:sicoferp:financiero:tesoreria:interface:cargasdearchivos [2023/06/28 12:25] 181.143.29.58 |
ada:sicoferp:financiero:tesoreria:interface:cargasdearchivos [2026/04/30 15:23] (actual) brahian.castaneda |
||
|---|---|---|---|
| Línea 16: | Línea 16: | ||
| En esta pestaña se configura el proceso de carga masiva y se carga el archivo plano. | En esta pestaña se configura el proceso de carga masiva y se carga el archivo plano. | ||
| - | {{ :ada:sicoferp:financiero:tesoreria:interface:carga_detalle.png?600 |}} | + | {{ :ada:sicoferp:financiero:tesoreria:interface:detalle_carga_archivos.png |}} |
| Línea 42: | Línea 42: | ||
| * Si la carga presenta errores en la subida del archivo, se debe empezar. | * 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. | * 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]] | [[ada:sicoferp:financiero:tesoreria:interface|Volver]] | ||
| + | |||
| + | |||