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