From b05e858ac6c0978abb9c28fd3c33b792f4d98b82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Abel=20L=C3=B3pez?= Date: Thu, 27 Aug 2026 16:18:51 -0400 Subject: [PATCH] =?UTF-8?q?A=C3=B1adir=20coprmt010,=20coprmt015,=20coprmt0?= =?UTF-8?q?16,=20coprmt025=20y=20coprcs005=20(modulo=20COMPRAS)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - coprmt010 (Paises): corregir condicion invertida en "Escoger" que bloqueaba editar registros activos y solo permitia editar los ya eliminados (status_t != "E" -> = "E"). - coprmt016 (Terminos de Pago): usar el formulario .4fd (el .per no tenia el grid "Tabla" que el codigo espera); agregar columna "dias" faltante al INSERT (la tabla real tiene 9 columnas, el INSERT solo daba 8 valores sin lista de columnas explicita). - coprmt025 (Requisicion Compras): agregar funciones faltantes (busca_departamento2 en depto.4gl, enviaemail en FUNCIONESEMAIL); sincronizar el RECORD "data" y la aridad de RETURNING de ApiMaintainC con el fix de api_test.4gl; reemplazar fgl_report_* (no disponible) por om.XmlWriter en las 3 rutas de impresion. - coprmt015 y coprcs005: sin cambios de codigo, solo registro en el proyecto. - mbsERP.4pw: registrar los 5 programas; investigar/configurar Java para coprmt025 (FGLJVMPATH/JAVA_HOME/CLASSPATH apuntando a un JRE Temurin 8u504 local). Pendiente: el puente Java de esta instalacion de Genero sigue fallando ("Can not create java VM") incluso con el ejemplo oficial de FGL: parece un problema de la instalacion misma, no de version de Java. Se sugirio reparar via MsiExec /f {3B1E10F3-FBCC-4737-8BDF-284359029D70} (Four Js Genero BDL with Web Services 6.00.02), pendiente de ejecutar. Co-Authored-By: Claude Sonnet 5 --- PROYECTO/codir/coprmt010.4gl | 2 +- PROYECTO/codir/coprmt016.4gl | 14 ++++++++++++-- PROYECTO/codir/coprmt025.4gl | 37 ++++++++++++++++++++++++++---------- PROYECTO/mbsERP.4pw | 25 ++++++++++++++++++++++-- 4 files changed, 63 insertions(+), 15 deletions(-) diff --git a/PROYECTO/codir/coprmt010.4gl b/PROYECTO/codir/coprmt010.4gl index 8a843c5..3c183e5 100644 --- a/PROYECTO/codir/coprmt010.4gl +++ b/PROYECTO/codir/coprmt010.4gl @@ -178,7 +178,7 @@ FUNCTION copcmf010() COMMAND "Escoger" " Actualiza Registro Cancela Operacion" - IF paises.status_t != "E" THEN + IF paises.status_t = "E" THEN LET numero_msg = 36 CALL msg(numero_msg) RETURN diff --git a/PROYECTO/codir/coprmt016.4gl b/PROYECTO/codir/coprmt016.4gl index 7062e21..46db59d 100644 --- a/PROYECTO/codir/coprmt016.4gl +++ b/PROYECTO/codir/coprmt016.4gl @@ -191,7 +191,16 @@ FUNCTION insertData() BEGIN WORK - INSERT INTO cotb00024 + INSERT INTO cotb00024 ( + term_sp, + descrip_term, + descrip_ting, + status_t, + us_crea, + fech_crea, + us_mod, + fech_mod, + dias) VALUES (pagos.term_sp, pagos.descrip_term, pagos.descrip_ting, @@ -199,7 +208,8 @@ FUNCTION insertData() usuarios, -- us_crea pagos.fech_crea, -- fech_crea NULL, -- us_mod - NULL) -- fech_mod + NULL, -- fech_mod + NULL) -- dias (no se captura en esta pantalla) CALL integridad() diff --git a/PROYECTO/codir/coprmt025.4gl b/PROYECTO/codir/coprmt025.4gl index d0a9226..bd63a77 100644 --- a/PROYECTO/codir/coprmt025.4gl +++ b/PROYECTO/codir/coprmt025.4gl @@ -35,7 +35,10 @@ DEFINE xusername,xsmtphost,xsmtpport,xpassword STRING, toEmail, orden_trabajo, answer_workorder, descrip_depto STRING, depto INT -DEFINE data RECORD +-- Debe coincidir exactamente (mismos campos, mismo orden) con el RECORD +-- "data" del parametro de ApiMaintainC() en otrodir/api_test.4gl: el +-- enlazador exige la misma aridad en todos los llamadores. +DEFINE data RECORD area_sp VARCHAR(10), ciu_sp VARCHAR(30), cod_pais VARCHAR(3), @@ -43,6 +46,7 @@ DEFINE data RECORD cod_sp_sec SMALLINT, cont_sp VARCHAR(30), contactID INTEGER, + cuenta_no VARCHAR(10), dir_sp VARCHAR(60), email VARCHAR(60), fax_sp VARCHAR(25), @@ -50,14 +54,18 @@ DEFINE data RECORD fech_mod DATETIME YEAR TO FRACTION, id_maintainx INTEGER, nom_sp VARCHAR(41), + rnc VARCHAR(11), status_t VARCHAR(1), tel_sp VARCHAR(25), term_sp SMALLINT, + tipo_doc VARCHAR(10), us_crea VARCHAR(50), us_mod VARCHAR(50) END RECORD -DEFINE container RECORD +DEFINE p_reportfile STRING + +DEFINE container RECORD tipo_inv STRING, cod_n INT, cod_grupo INT, @@ -110,7 +118,8 @@ FUNCTION coprmt025() END FUNCTION FUNCTION copcad025() - DEFINE tiene_Dato CHAR(2), answer STRING + DEFINE tiene_Dato CHAR(2), answer STRING + DEFINE answer2 INTEGER INITIALIZE depto TO NULL # Captura los datos que va a contener el registro @@ -312,7 +321,7 @@ FUNCTION copcad025() INITIALIZE data.* TO NULL - CALL ApiMaintainC('CHECK', orden_trabajo, data.*, usuarios) RETURNING answer + CALL ApiMaintainC('CHECK', orden_trabajo, data.*, usuarios) RETURNING answer, answer2 IF answer = 0 OR answer IS NULL THEN @@ -732,8 +741,8 @@ ON ACTION guardar ATTRIBUTE(TEXT="Salvar", IMAGE="save") ELSE - CALL ApiMaintainC('PATCH_WORKORDER',answer_workorder, Data.*, usuarios) - RETURNING answer + CALL ApiMaintainC('PATCH_WORKORDER',answer_workorder, Data.*, usuarios) + RETURNING answer, answer2 IF answer != 1 THEN DISPLAY "AQUI PATCH_WORKORDER" @@ -777,8 +786,12 @@ ON ACTION guardar ATTRIBUTE(TEXT="Salvar", IMAGE="save") COMMIT WORK CALL seleccionarsalida() RETURNING salida - CALL configureoutput(salida) RETURNING HANDLER - + -- La API de configuracion de reportes (fgl_report_*) no esta + -- disponible en este FGL; se escribe el XML directo a un archivo + -- en FGLSPOOL en lugar de la vista previa/exportacion nativa. + LET p_reportfile = FGL_GETENV("FGLSPOOL"), "/coprmt025_req1.xml" + LET handler = om.XmlWriter.createFileWriter(p_reportfile) + START REPORT print_req TO XML HANDLER HANDLER PREPARE query FROM @@ -894,7 +907,9 @@ ON ACTION guardar ATTRIBUTE(TEXT="Salvar", IMAGE="save") COMMIT WORK CALL seleccionarsalida() RETURNING salida - CALL configureoutput(salida) RETURNING HANDLER + -- Ver nota sobre fgl_report_* mas arriba en este archivo. + LET p_reportfile = FGL_GETENV("FGLSPOOL"), "/coprmt025_req2.xml" + LET handler = om.XmlWriter.createFileWriter(p_reportfile) START REPORT print_req TO XML HANDLER HANDLER PREPARE query FROM @@ -1177,7 +1192,9 @@ FUNCTION copcmf025() IF salida IS NULL THEN LET salida = 'PDF' END IF - CALL configureoutput(salida) RETURNING HANDLER + -- Ver nota sobre fgl_report_* mas arriba en este archivo. + LET p_reportfile = FGL_GETENV("FGLSPOOL"), "/coprmt025_req3.xml" + LET handler = om.XmlWriter.createFileWriter(p_reportfile) START REPORT print_req TO XML HANDLER HANDLER PREPARE query FROM diff --git a/PROYECTO/mbsERP.4pw b/PROYECTO/mbsERP.4pw index 1af8b6c..412b343 100644 --- a/PROYECTO/mbsERP.4pw +++ b/PROYECTO/mbsERP.4pw @@ -166,7 +166,7 @@ - + @@ -177,6 +177,7 @@ + @@ -185,7 +186,11 @@ - + + + + + @@ -199,6 +204,22 @@ + + + + + + + + + + + + + + + +