201 lines
7.4 KiB
Plaintext
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
|