lsoto prueba de programas

This commit is contained in:
Luis
2026-10-20 21:52:20 -04:00
parent 4c9a841473
commit 16ef05828e
14 changed files with 8126 additions and 1822 deletions
Binary file not shown.
+4 -3
View File
@@ -99,7 +99,8 @@ FUNCTION VariacionPrecios()
LET estados.cond_pago = '' LET estados.cond_pago = ''
LET estados.estilo = 0 LET estados.estilo = 0
DELETE FROM tmpcxccompara # tmpcxccompara no existe en el .250 y nadie la lee (el reporte sale de memoria)
# DELETE FROM tmpcxccompara
FOREACH variaciones INTO balancesCE.* FOREACH variaciones INTO balancesCE.*
@@ -176,8 +177,8 @@ FUNCTION VariacionPrecios()
END IF END IF
INSERT INTO tmpcxccompara (tipo_cliente,sec_cliente,balance1,balance2) # INSERT INTO tmpcxccompara (tipo_cliente,sec_cliente,balance1,balance2)
VALUES (balancesCE.tipo_cliente,balancesCE.sec_cliente, balancesCE.valor,balancesCE.valor2) # VALUES (balancesCE.tipo_cliente,balancesCE.sec_cliente, balancesCE.valor,balancesCE.valor2)
OUTPUT TO REPORT balancesCE_prod_rpt(balancesCE.*, datos.fecha_final,estados.*) OUTPUT TO REPORT balancesCE_prod_rpt(balancesCE.*, datos.fecha_final,estados.*)
END IF END IF
+2 -1
View File
@@ -386,7 +386,8 @@ FUNCTION imprime_req(xnumreq)
c.id_kit,x3.observacion,d.celular1,d.contacto c.id_kit,x3.observacion,d.celular1,d.contacto
ORDER BY b.num_req, c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec ORDER BY b.num_req, c.cod_n,c.cod_grupo,c.cod_tipo,c.cod_sec
LET r_output="SVG" # antes fijo SVG (en web no se ve): se deja elegir PDF/Excel/pantalla
CALL seleccionarSalida() RETURNING r_output
LET r_filename = "ccprmt010.4rp" LET r_filename = "ccprmt010.4rp"
LET preview = 1 LET preview = 1
+2 -1
View File
@@ -64,7 +64,8 @@ FUNCTION ccprrp027()
LET tipo_papel = 1 LET tipo_papel = 1
CALL msgrp000(tipo_papel) CALL msgrp000(tipo_papel)
DELETE FROM tmpccprrp027 # tmpccprrp027 ya no se usa (el INSERT esta comentado) y no existe en el .250
# DELETE FROM tmpccprrp027
LET pflag = "N" LET pflag = "N"
# LET tiposaldo='TODOS' # LET tiposaldo='TODOS'
+2 -1
View File
@@ -180,7 +180,8 @@ OPEN c_vende USING fecha_inicial,fecha_final
FINISH REPORT reporte34 FINISH REPORT reporte34
LET puede = NULL LET puede = NULL
DISPLAY BY NAME valor_total # el formulario ccfmrp034 no tiene campo valor_total (error -1102); el total sale en el reporte
# DISPLAY BY NAME valor_total
{ {
LET opt = fgl_winquestion("Atencion","Desea Imprimir Reporte?", LET opt = fgl_winquestion("Atencion","Desea Imprimir Reporte?",
"yes","yes|no","question",0) "yes","yes|no","question",0)
+1704 -1702
View File
File diff suppressed because it is too large Load Diff
+5 -1
View File
@@ -58,6 +58,7 @@ FUNCTION impresion_fact(x,z)
unidad_med CHAR(3), unidad_med CHAR(3),
cantidad LIKE vetb00003.cantidad, cantidad LIKE vetb00003.cantidad,
precio LIKE vetb00003.precio, precio LIKE vetb00003.precio,
cantidad_2 DEC(12,2), -- igual que arr_disp de veprcs001 (si no, error -1260)
monto_fact DECIMAl(10,2) monto_fact DECIMAl(10,2)
END RECORD, END RECORD,
HANDLER om.SaxDocumentHandler, HANDLER om.SaxDocumentHandler,
@@ -67,7 +68,10 @@ FUNCTION impresion_fact(x,z)
START REPORT factura TO XML HANDLER HANDLER START REPORT factura TO XML HANDLER HANDLER
FOR idx = 1 TO z.getLength() FOR idx = 1 TO z.getLength()
OUTPUT TO REPORT factura(x.*,z[idx].*) -- el reporte no lleva cantidad_2: se pasan los campos uno a uno
OUTPUT TO REPORT factura(x.*,z[idx].cod_n,z[idx].cod_grupo,z[idx].cod_tipo,z[idx].cod_sec,
z[idx].descrip_esp,z[idx].unidad_med,z[idx].cantidad,z[idx].precio,
z[idx].monto_fact)
END FOR END FOR
FINISH REPORT factura FINISH REPORT factura
END FUNCTION END FUNCTION
File diff suppressed because it is too large Load Diff
+6 -2
View File
@@ -12,7 +12,9 @@ GRID
Condicion de Pago [f0] Condicion de Pago [f0]
Descripcion [f001 ] Descripcion [f001 ]
Dias para Pagar [f02] Dias para Pagar [f02]
Defecto [df ] Defecto [df ]
Codigo DGII [fcod]
Titulo DGII [ftit ]
[a] [a]
@@ -34,7 +36,9 @@ a = vetb00012.status_t, noentry;
f003 = vetb00012.us_crea, noentry; f003 = vetb00012.us_crea, noentry;
f004 = vetb00012.fech_crea, noentry; f004 = vetb00012.fech_crea, noentry;
f005 = vetb00012.us_mod, noentry; f005 = vetb00012.us_mod, noentry;
f006 = vetb00012.fech_mod, noentry; f006 = vetb00012.fech_mod, noentry;
fcod = vetb00012.codigo_dgii,autonext;
ftit = vetb00012.titulo_dgii,upshift;
end end
INSTRUCTIONS INSTRUCTIONS
+2
View File
@@ -11,6 +11,7 @@ GRID
{ {
Codigo Ciudad [f9 ] Codigo Ciudad [f9 ]
Descripcion [f001 ] Descripcion [f001 ]
Municipio DGII [fmun ]
[a] [a]
@@ -31,6 +32,7 @@ f002 = vetb00016.us_crea, noentry;
f003 = vetb00016.fech_crea, noentry; f003 = vetb00016.fech_crea, noentry;
f004 = vetb00016.us_mod, noentry; f004 = vetb00016.us_mod, noentry;
f005 = vetb00016.fech_mod, noentry; f005 = vetb00016.fech_mod, noentry;
fmun = vetb00016.idmunicipio;
end end
INSTRUCTIONS INSTRUCTIONS
+8 -1
View File
@@ -52,7 +52,14 @@ FUNCTION vepcad013()
LET int_flag = false LET int_flag = false
INPUT BY NAME ciudades.* INPUT BY NAME ciudades.*
BEFORE INPUT NEXT FIELD descripcion BEFORE INPUT
# id_ciudad es NOT NULL en el form: se propone aqui (antes se calculaba
# solo en AFTER INPUT y el OK se rechazaba con "field requires a value")
SELECT MAX(a.id_ciudad) INTO ciudades.id_ciudad
FROM vetb00016 a WHERE a.id_ciudad < 1000
LET ciudades.id_ciudad = NVL(ciudades.id_ciudad, 0) + 1
DISPLAY BY NAME ciudades.id_ciudad
NEXT FIELD descripcion
## Verifica que el codigo no exista en el catalogo de ciudades. Si existe, ## Verifica que el codigo no exista en el catalogo de ciudades. Si existe,
## entonces despliega los datos del registro existente. ## entonces despliega los datos del registro existente.
+90 -90
View File
@@ -1,91 +1,91 @@
MAIN MAIN
DEFINE usuarios,clave,nombre,nombre_v,uscrea,usmod VARCHAR(50), DEFINE usuarios,clave,nombre,nombre_v,uscrea,usmod VARCHAR(50),
impresor,ptipo SMALLINT, impresor,ptipo SMALLINT,
pcotizacion,secCliente,psecvend INT, pcotizacion,secCliente,psecvend INT,
porc_negocio DEC(8,2), porc_negocio DEC(8,2),
pneto,subtotal,descuento,itbis DEC(12,2), pneto,subtotal,descuento,itbis DEC(12,2),
pfecha DATE, pfecha DATE,
fechacrea,fechamod DATETIME YEAR TO MINUTE fechacrea,fechamod DATETIME YEAR TO MINUTE
DEFER INTERRUPT DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(4) RETURNING impresor CALL ARG_VAL(4) RETURNING impresor
CONNECT to "marmotech" AS "IFMX" CONNECT to "marmotech" AS "IFMX" USER usuarios USING clave
CONNECT TO "smarmotech" AS "MSSQL" USER usuarios USING clave CONNECT TO "smarmotech" AS "MSSQL" USER usuarios USING clave
OPEN WINDOW vefmmt038 WITH FORM "vefmmt038" OPEN WINDOW vefmmt038 WITH FORM "vefmmt038"
INPUT BY NAME pcotizacion,porc_negocio WITHOUT DEFAULTS INPUT BY NAME pcotizacion,porc_negocio WITHOUT DEFAULTS
AFTER FIELD pcotizacion AFTER FIELD pcotizacion
IF pcotizacion IS NOT NULL THEN IF pcotizacion IS NOT NULL THEN
SET CONNECTION "MSSQL" SET CONNECTION "MSSQL"
SELECT a.tipo_cliente,a.sec_cliente,a.nombre_cliente, SELECT a.tipo_cliente,a.sec_cliente,a.nombre_cliente,
a.total_bruto,a.monto_desc,a.monto_itbi,a.total_neto, a.total_bruto,a.monto_desc,a.monto_itbi,a.total_neto,
a.sec_vend,CONVERT(CHAR(10), a.fecha,103),b.nom1_emp||' '||b.apell1_emp a.sec_vend,CONVERT(CHAR(10), a.fecha,103),b.nom1_emp||' '||b.apell1_emp
INTO ptipo,seccliente,nombre,subtotal,descuento,itbis,pneto, INTO ptipo,seccliente,nombre,subtotal,descuento,itbis,pneto,
psecvend,pfecha,nombre_v psecvend,pfecha,nombre_v
FROM vetb00050 a,adtb00003 b FROM vetb00050 a,adtb00003 b
WHERE a.cotizacion_no =pcotizacion AND WHERE a.cotizacion_no =pcotizacion AND
a.sec_vend = b.num_emp a.sec_vend = b.num_emp
IF STATUS = NOTFOUND THEN IF STATUS = NOTFOUND THEN
CALL fgl_winmessage("ERROR","COTIZACION NO EXISTE","INFO") CALL fgl_winmessage("ERROR","COTIZACION NO EXISTE","INFO")
NEXT FIELD pcotizacion NEXT FIELD pcotizacion
END IF END IF
DISPLAY BY NAME ptipo,seccliente,nombre,subtotal,descuento,itbis,pneto, DISPLAY BY NAME ptipo,seccliente,nombre,subtotal,descuento,itbis,pneto,
psecvend,pfecha,nombre_v psecvend,pfecha,nombre_v
LET porc_negocio = 0 LET porc_negocio = 0
LET uscrea = NULL LET uscrea = NULL
LET usmod = NULL LET usmod = NULL
LET fechacrea = NULL LET fechacrea = NULL
LET fechamod = NULL LET fechamod = NULL
SELECT a.porc_negocio,a.us_crea,a.fecha_crea,a.us_mod,a.fecha_mod SELECT a.porc_negocio,a.us_crea,a.fecha_crea,a.us_mod,a.fecha_mod
INTO porc_negocio,uscrea,fechacrea,usmod,fechamod INTO porc_negocio,uscrea,fechacrea,usmod,fechamod
FROM vetb00086 a FROM vetb00086 a
WHERE a.cotizacion_no = pcotizacion WHERE a.cotizacion_no = pcotizacion
DISPLAY BY NAME porc_negocio,uscrea,fechacrea,usmod,fechamod DISPLAY BY NAME porc_negocio,uscrea,fechacrea,usmod,fechamod
END IF END IF
AFTER INPUT AFTER INPUT
IF INT_FLAG THEN IF INT_FLAG THEN
CALL fgl_winmessage("ERROR","OPERACION ABORTADA","INFO") CALL fgl_winmessage("ERROR","OPERACION ABORTADA","INFO")
EXIT INPUT EXIT INPUT
ELSE ELSE
SELECT a.cotizacion_no FROM vetb00086 a WHERE a.cotizacion_no = pcotizacion SELECT a.cotizacion_no FROM vetb00086 a WHERE a.cotizacion_no = pcotizacion
IF STATUS = NOTFOUND THEN IF STATUS = NOTFOUND THEN
SET CONNECTION "MSSQL" SET CONNECTION "MSSQL"
INSERT INTO vetb00086 (cotizacion_no,porc_negocio,us_crea,fecha_crea) INSERT INTO vetb00086 (cotizacion_no,porc_negocio,us_crea,fecha_crea)
VALUES (pcotizacion,porc_negocio,usuarios,getdate()) VALUES (pcotizacion,porc_negocio,usuarios,getdate())
SET CONNECTION "IFMX" SET CONNECTION "IFMX"
INSERT INTO vetb00086 (cotizacion_no,porc_negocio,us_crea,fecha_crea) INSERT INTO vetb00086 (cotizacion_no,porc_negocio,us_crea,fecha_crea)
VALUES (pcotizacion,porc_negocio,usuarios,getdate()) VALUES (pcotizacion,porc_negocio,usuarios,getdate())
ELSE ELSE
SET CONNECTION "MSSQL" SET CONNECTION "MSSQL"
UPDATE vetb00086 SET vetb00086.porc_negocio =porc_negocio, UPDATE vetb00086 SET vetb00086.porc_negocio =porc_negocio,
us_mod = usuarios, us_mod = usuarios,
fecha_mod = GETDATE() fecha_mod = GETDATE()
WHERE cotizacion_no = pcotizacion WHERE cotizacion_no = pcotizacion
SET CONNECTION "IFMX" SET CONNECTION "IFMX"
UPDATE vetb00086 SET vetb00086.porc_negocio =porc_negocio, UPDATE vetb00086 SET vetb00086.porc_negocio =porc_negocio,
us_mod = usuarios, us_mod = usuarios,
fecha_mod = getdate() fecha_mod = getdate()
WHERE cotizacion_no = pcotizacion WHERE cotizacion_no = pcotizacion
END IF END IF
CALL msg(13) CALL msg(13)
NEXT FIELD pcotizacion NEXT FIELD pcotizacion
END IF END IF
END INPUT END INPUT
LET INT_FLAG = FALSE LET INT_FLAG = FALSE
CLOSE WINDOW vefmmt038 CLOSE WINDOW vefmmt038
END MAIN END MAIN
+21 -19
View File
@@ -128,7 +128,8 @@ DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCu
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API -- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
LET r_filename = salida LET r_filename = salida
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
LET r_output='SVG' # antes fijo 'SVG' (en web no se ve): se deja elegir PDF/Excel/pantalla como en veprrp015
CALL seleccionarSalida() RETURNING r_output
LET preview=1 LET preview=1
CALL fgl_report_selectDevice(r_output) -- changing default CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default CALL fgl_report_selectPreview(preview) -- changing default
@@ -137,7 +138,8 @@ DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCu
### Loop para igualar tipo de venta a la variable ventas.ventas ### Loop para igualar tipo de venta a la variable ventas.ventas
IF handler IS NOT NULL THEN -- report engine was configured ok IF handler IS NOT NULL THEN -- report engine was configured ok
START REPORT plan TO "f:\\master\\dummy" # antes iba a un archivo fijo del server viejo (f:\master\dummy, error -1322): va al motor de reportes
START REPORT plan TO XML HANDLER handler
FOREACH act2 INTO ventas.ventas,ventas.cod_n,ventas.cod_grupo,ventas.cod_tipo, FOREACH act2 INTO ventas.ventas,ventas.cod_n,ventas.cod_grupo,ventas.cod_tipo,
ventas.cod_sec,ventas.unidad_acum,ventas.valor_acum, ventas.cod_sec,ventas.unidad_acum,ventas.valor_acum,
ventas.descripcion_v,ventas.descrip_esp,ventas.descripcion_p, ventas.descripcion_v,ventas.descrip_esp,ventas.descripcion_p,
@@ -150,23 +152,23 @@ IF handler IS NOT NULL THEN -- report engine was configured ok
#DEVOLUCIONES #DEVOLUCIONES
LET ventas.valor_dev = 0 LET ventas.valor_dev = 0
LET ventas.cantidad_dev = 0 LET ventas.cantidad_dev = 0
SELECT SUM(a.cantidad_2),SUM(a.cantidad_2*b.precio) # num_cheque (texto) y fact_no (texto) se comparaban con columnas INT: SQL Server
INTO ventas.cantidad_dev,ventas.valor_dev # fallaba (-245) con valores no numericos. TRY_CONVERT devuelve NULL en vez de fallar.
FROM iptb00006 a,vetb00003 b,cctb0001 c SQL
WHERE a.cod_n = ventas.cod_n AND SELECT SUM(a.cantidad_2), SUM(a.cantidad_2 * b.precio)
a.cod_Grupo = ventas.cod_Grupo AND INTO $ventas.cantidad_dev, $ventas.valor_dev
a.cod_tipo = ventas.cod_tipo AND FROM iptb00006 a, vetb00003 b, cctb00001 c
a.cod_Sec = ventas.cod_Sec AND WHERE a.cod_n = $ventas.cod_n AND a.cod_grupo = $ventas.cod_grupo
a.cod_n = b.cod_n AND AND a.cod_tipo = $ventas.cod_tipo AND a.cod_sec = $ventas.cod_sec
a.cod_Grupo = b.cod_Grupo AND AND a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo
a.cod_tipo = b.cod_tipo AND AND a.cod_tipo = b.cod_tipo AND a.cod_sec = b.cod_sec
a.cod_Sec = b.cod_Sec AND AND c.fecha_orig BETWEEN $fecha_inicial AND $fecha_final
c.fecha_orig between fecha_inicial and fecha_final AND AND TRY_CONVERT(INT, a.fact_no) = b.factura
a.fact_no = b.factura AND AND c.banco = a.cod_mov
c.banco = a.cod_mov AND AND a.num_doc = TRY_CONVERT(INT, c.num_cheque)
a.num_doc = c.num_cheque AND AND c.tipo_doc = 'NC'
c.tipo_doc = 'NC' AND AND a.status_t IS NULL
a.status_t IS NULL END SQL
IF ventas.cantidad_dev IS NULL THEN IF ventas.cantidad_dev IS NULL THEN
LET ventas.cantidad_Dev = 0 LET ventas.cantidad_Dev = 0
END IF END IF
+2 -1
View File
@@ -221,7 +221,8 @@ DEFINE handler om.SaxDocumentHandler, -- return value from fgl_report_commitCu
-- configure report engine; the functions prefixed fgl that are called here are part of the GRW API -- configure report engine; the functions prefixed fgl that are called here are part of the GRW API
LET r_filename = salida LET r_filename = salida
IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file IF fgl_report_loadCurrentSettings(r_filename) THEN -- load the .4rp file
LET r_output='SVG' # antes fijo 'SVG' (en web no se ve): se deja elegir PDF/Excel/pantalla
CALL seleccionarSalida() RETURNING r_output
LET preview=1 LET preview=1
CALL fgl_report_selectDevice(r_output) -- changing default CALL fgl_report_selectDevice(r_output) -- changing default
CALL fgl_report_selectPreview(preview) -- changing default CALL fgl_report_selectPreview(preview) -- changing default