Files
MBS/MOVIL401/MBSinventario/resources/descarga_data.4gl
T

201 lines
7.4 KiB
Plaintext

IMPORT util
TYPE t_sync_cmd RECORD
oper STRING,
data STRING
END RECORD
FUNCTION descargar(url,xusuario,xclave)
DEFINE url,cmd,res,msg,xtipo_inventario STRING,
ret,idx INT,
i SMALLINT,
xusuario,xclave VARCHAR(50),
pdesglose RECORD
tipo_inventario VARCHAR(100),
fecha DATE,
cod_n SMALLINT ,
cod_grupo SMALLINT ,
cod_tipo SMALLINT ,
cod_sec SMALLINT ,
descrip_esp CHAR(100) ,
unidad_med CHAR(4) ,
codid INTEGER ,
factor_conv DECIMAL(12,5),
lado_1 decimal(12,5) ,
lado_2 decimal(12,5) ,
lado_3 decimal(12,5) ,
cantidad decimal(12,5) ,
cantidad2 decimal(12,5) ,
cod_bodega int ,
cod_seccion int ,
cod_tramo INT ,
cod_fila, INT,
cod_pos INT,
observacion VARCHAR(200),
idproducto VARCHAR(25),
idrow,idtrx INT,
tono,calidad VARCHAR(100)
END RECORD
DEFINE p RECORD
credenciales RECORD
usuario, clave VARCHAR(50)
END RECORD,
pconteo_trx DYNAMIC ARRAY OF RECORD
idtrx int,
fecha DATE,
bodega smallint ,
cod_seccion smallint ,
cod_tramo SMALLINT ,
cod_fila INT,
cod_pos INT,
cod_n smallint ,
cod_grupo smallint ,
cod_tipo smallint ,
cod_sec smallint ,
cantidad float,
us_crea varchar(50) ,
fech_crea VARCHAR(16),
tipo_inventario VARCHAR(100)
END RECORD,
desglose DYNAMIC ARRAY OF RECORD
bodega,cod_seccion,cod_tramo,cod_fila,cod_pos,cod_n,cod_grupo,cod_tipo,cod_sec,codid,idtrx INT,
book,tipos,tipo_mterial VARCHAR(50),
observacion VARCHAR(200),
lado_1,lado_2,lado_3,cantidad,cantidad2 DECIMAL(12,5),
idproducto VARCHAR(25),
fecha DATE,
tono,calidad string
END RECORD,
mensajes RECORD
cod_msg INT,
descripcion STRING
END RECORD
END RECORD,
selec1,selec2 STRING
DEFINE r_cmd t_sync_cmd
OPEN WINDOW w12 WITH FORM "descarga"
INPUT BY NAME xtipo_inventario ATTRIBUTES(ACCEPT=FALSE)
BEFORE INPUT
IF LENGTH(url) > 1 THEN
DISPLAY "SERVIDOR ACTIVO" TO servidor
ELSE
DISPLAY "SERVIDOR INACTIVO" TO servidor
END IF
ON ACTION connecta ATTRIBUTE(IMAGE="connect.png")
CALL conexion() RETURNING url
IF LENGTH(url) > 1 THEN
DISPLAY "SERVIDOR ACTIVO" TO servidor
ELSE
DISPLAY "SERVIDOR INACTIVO" TO servidor
END IF
ON CHANGE xtipo_inventario
IF xtipo_inventario IS NULL THEN
CALL fgl_winmessage("INFO","INVENTARIO EN BLANCO","INFO")
NEXT FIELD xtipo_inventario
END IF
ON ACTION descarga ATTRIBUTE(TEXT="Descarga",IMAGE="down")
IF xtipo_inventario IS NULL THEN
CALL fgl_winmessage("INFO","TIPO INVENTARIO EN BLANCO","INFO")
NEXT FIELD xtipo_inventario
END IF
{"SELECT idtrx,fecha,bodega,cod_seccion ,cod_tramo,cod_n,cod_grupo,cod_tipo,cod_sec,cantidad,balance,us_crea,
fech_crea,us_mod,fech_mod,lado_1,lado_2,lado_3 from iptb00012 "}
IF xtipo_inventario ="PRODUCTOS TERMINADOS" THEN
LET selec1 ="SELECT a.idtrx,a.fecha,a.cod_seccion ,a.cod_tramo,a.cod_fila,a.cod_pos,a.cod_n,cod_grupo,a.cod_tipo,a.cod_sec,a.cantidad,TRIM(a.us_crea),a.fech_crea,a.bodega from iptb00012 a ",
" WHERE a.bodega IS NOT NULL AND a.fecha is not null "
LET selec2 = "SELECT * FROM desglose"
PREPARE ppdesglose FROM selec2
DECLARE bdesglose CURSOR FOR ppdesglose
LET idx = 1
FOREACH bdesglose INTO pdesglose.*
LET p.desglose[idx].bodega = pdesglose.cod_bodega
LET p.desglose[idx].cod_n = pdesglose.cod_n
LET p.desglose[idx].cod_grupo = pdesglose.cod_grupo
LET p.desglose[idx].cod_tipo = pdesglose.cod_tipo
LET p.desglose[idx].cod_sec = pdesglose.cod_sec
LET p.desglose[idx].codid = pdesglose.codid
LET p.desglose[idx].cantidad = pdesglose.cantidad
LET p.desglose[idx].cantidad2 = pdesglose.cantidad2
LET p.desglose[idx].cod_Seccion = pdesglose.cod_seccion
LET p.desglose[idx].cod_tramo = pdesglose.cod_tramo
LET p.desglose[idx].cod_fila = pdesglose.cod_tramo
LET p.desglose[idx].cod_pos = pdesglose.cod_tramo
LET p.desglose[idx].idtrx = pdesglose.idtrx
LET p.desglose[idx].observacion = pdesglose.observacion
LET p.desglose[idx].lado_1 = pdesglose.lado_1
LET p.desglose[idx].lado_2 = pdesglose.lado_2
LET p.desglose[idx].lado_3 = pdesglose.lado_3
LET p.desglose[idx].idproducto = pdesglose.idproducto
LET p.desglose[idx].fecha = pdesglose.fecha
LET p.desglose[idx].tono = pdesglose.tono
LET p.desglose[idx].calidad = pdesglose.calidad
LET idx = idx + 1
END FOREACH
END IF
IF xtipo_inventario ="REPUESTOS" THEN
LET selec1 ="SELECT a.idtrx,a.fecha,a.cod_seccion ,a.cod_tramo,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.cantidad,TRIM(a.us_crea),
a.fech_crea,a.bodega from irtb00012 a WHERE a.fecha is not null "
END IF
IF xtipo_inventario ="MATERIA PRIMA" THEN
LET selec1 ="SELECT a.idtrx,a.fecha,a.cod_seccion ,a.cod_tramo,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,a.cantidad,a.us_crea,
a.fech_crea,a.bodega from intb00012 a WHERE a.fecha is not null "
END IF
PREPARE comando FROM selec1
DECLARE busca_ip CURSOR FOR comando
LET i= 1
FOREACH busca_ip INTO p.pconteo_trx[I].idtrx,p.pconteo_trx[I].fecha,P.pconteo_trx[I].cod_seccion,
P.pconteo_trx[I].cod_tramo,P.pconteo_trx[I].cod_fila,P.pconteo_trx[I].cod_pos,
P.pconteo_trx[I].cod_n,P.pconteo_trx[I].cod_grupo,
P.pconteo_trx[I].cod_tipo,P.pconteo_trx[I].cod_sec,P.pconteo_trx[I].cantidad,
P.pconteo_trx[I].us_crea,p.pconteo_trx[i].fech_crea,p.pconteo_trx[i].bodega
LET p.pconteo_trx[i].tipo_inventario=xtipo_inventario
LET i = i + 1
END FOREACH
LET p.credenciales.usuario=xusuario
LET p.credenciales.clave = xclave
LET r_cmd.data = util.JSON.stringify(p)
LET r_cmd.oper='ip_data_conteo'
LET cmd = util.JSON.stringify(r_cmd)
CALL sync_send_command(url, cmd) RETURNING ret, res
IF ret == 0 THEN
CALL util.JSON.parse(res,p)
CALL fgl_winmessage("INFO",p.mensajes.descripcion,"info")
IF p.mensajes.descripcion = "ACTUALIZACION EXITOSA" THEN
CALL borra_info()
END IF
ELSE
LET msg=SFMT(%"Connection '%1' failed",r_cmd.oper),"\n",url,"\n",res
CALL show_sync_err(msg)
EXIT INPUT
END IF
EXIT INPUT
AFTER INPUT
IF int_flag THEN
EXIT INPUT
END IF
END INPUT
CLOSE WINDOW w12
END FUNCTION