Añadir cpprrp011 y cpprrp017; corregir bugs de migracion Informix->SQL Server

- cpprrp011: agregar INTO explicito a SELECT de validacion de referencia
  duplicada, y lineas de diagnostico temporales (pendiente: el campo ref
  sigue llegando NULL al INSERT en cgtb00004, falta investigar mas).
- cpprrp017: agregar bloque MAIN faltante, quitar CALL PANTALLA() redundante,
  cambiar rutas hardcodeadas C:\archivo y %USPRINT% (sin permisos/no
  definida) por FGLSPOOL, y reemplazar a.rowid (pseudo-columna de Informix
  inexistente en SQL Server) por ROW_NUMBER() OVER(...).
- cpfmrp017.per: corregir typo "database marmotech" -> "database smarmotech"
  que rompia la resolucion del esquema.
- mbsERP.4pw: registrar cpprrp011 y cpprrp017 con sus dependencias y
  configuracion de prueba.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Abel López
2026-08-25 11:48:57 -04:00
co-authored by Claude Sonnet 5
parent fa1b51c33e
commit 46d9dd4f5d
4 changed files with 50 additions and 14 deletions
+24 -7
View File
@@ -10,8 +10,9 @@
GLOBALS
"cpprgb000.4gl"
DEFINE selec1 CHAR(500)
DEFINE p_reportfile STRING
DEFINE mvto RECORD
DEFINE mvto RECORD
fecha_in DATE,
fecha_fi DATE,
cod_sp SMALLINT
@@ -32,7 +33,18 @@ GLOBALS
debito DECIMAL(12,2),
credito DECIMAL(12,2),
id INTEGER
END RECORD
END RECORD
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CONNECT to "smarmotech" user usuarios USING clave
SELECT a.* INTO p_companias.* FROM companias a
CALL cpprrp017()
END MAIN
FUNCTION cpprrp017()
CLEAR SCREEN
@@ -41,7 +53,6 @@ GLOBALS
#WHENEVER ERROR CONTINUE
OPEN FORM cpfmrp017 FROM "cpfmrp017"
DISPLAY FORM cpfmrp017
CALL PANTALLA()
DISPLAY "cpprrp017" AT 4,3 ATTRIBUTE(blue)
DISPLAY "Validacion de Facturas" AT 6,29
LET int_flag = FALSE
@@ -60,7 +71,10 @@ GLOBALS
LET selec =
"SELECT a.factura,a.cod_sp,a.cod_sp_sec,b.nom_sp,a.fecha,c.valor, ",
" a.cuenta_no,a.departamento,a.cod_aux,a.cod_sec,a.num_doc, ",
" a.debito,a.credito,a.rowid ",
" a.debito,a.credito, ",
-- a.rowid es una pseudo-columna de Informix, no existe en SQL Server;
-- se sustituye por un numero de fila equivalente para el orden del reporte.
" ROW_NUMBER() OVER (ORDER BY a.factura) ",
"FROM cptb00003 a,cotb00001 b,cptb00001 c ",
"WHERE (a.cod_sp = b.cod_sp AND a.cod_sp_sec = b.cod_sp_sec) and ",
" (a.cod_sp = c.cod_sp AND a.cod_sp_sec = c.cod_sp_sec) and ",
@@ -74,7 +88,10 @@ GLOBALS
DECLARE movto CURSOR FOR comando
OPEN movto
START REPORT val_ctas TO "C:\\archivo"
-- La ruta original "C:\archivo" no es escribible sin privilegios de
-- administrador; se usa un archivo en FGLSPOOL en su lugar.
LET p_reportfile = FGL_GETENV("FGLSPOOL"), "/cpprrp017_valctas.txt"
START REPORT val_ctas TO p_reportfile
DISPLAY "<< " AT 19,14
DISPLAY "<< Impresion En Proceso .... Espere Por Favor. >>" AT 19,14
@@ -86,9 +103,9 @@ GLOBALS
EXIT WHILE
END IF
OUTPUT TO REPORT val_ctas(prt_mvto11.*)
END WHILE
END WHILE
FINISH REPORT val_ctas
RUN "type C:\\archivo > %USPRINT%" END FUNCTION
END FUNCTION
REPORT val_ctas(x)
DEFINE x RECORD