68 lines
2.0 KiB
Plaintext
68 lines
2.0 KiB
Plaintext
IMPORT util
|
|
|
|
TYPE t_sync_cmd RECORD
|
|
oper STRING,
|
|
data STRING
|
|
END RECORD
|
|
|
|
|
|
FUNCTION productos_download(url,xtipo_inventario)
|
|
DEFINE url,cmd,res,msg STRING,
|
|
ret INT,
|
|
xtipo_inventario VARCHAR(100),
|
|
i SMALLINT,
|
|
pproductos DYNAMIC ARRAY OF RECORD
|
|
cod_cia SMALLINT ,
|
|
cod_n SMALLINT ,
|
|
cod_grupo SMALLINT ,
|
|
cod_tipo SMALLINT ,
|
|
cod_sec SMALLINT ,
|
|
descrip_esp varchar(180) ,
|
|
descrip_ing varchar(80) ,
|
|
unidad_med varchar(4) ,
|
|
nomenclatura char(50) ,
|
|
bodega SMALLINT ,
|
|
existencia DEC(12,5),
|
|
exist_max decimal(10, 2) ,
|
|
exist_min decimal(10, 2) ,
|
|
dia_llegada SMALLINT ,
|
|
control_existencia varchar(2) ,
|
|
control_itbis varchar(2) ,
|
|
codid INT ,
|
|
foto_producto STRING ,
|
|
porc_desc decimal(12, 2) ,
|
|
fecha_desc DATE,
|
|
factor DEC(12,2),
|
|
referencia VARCHAR(25)
|
|
|
|
END RECORD
|
|
|
|
|
|
DEFINE r_cmd t_sync_cmd
|
|
|
|
LET r_cmd.data = util.JSON.stringify(pproductos)
|
|
LET r_cmd.oper='materia_prima'
|
|
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,pproductos)
|
|
ELSE
|
|
LET msg=SFMT(%"Connection '%1' failed",r_cmd.oper),"\n",url,"\n",res
|
|
CALL show_sync_err(msg)
|
|
END IF
|
|
BEGIN WORK
|
|
DELETE FROM productos
|
|
FOR i = 1 TO pproductos.getLength()
|
|
INSERT INTO productos (tipo_inventario,cod_n,cod_grupo,cod_tipo,cod_sec,codid,descrip_esp,unidad_med,factor_conv)
|
|
VALUES (xtipo_inventario,pproductos[i].cod_n,pproductos[i].cod_grupo,pproductos[i].cod_tipo,
|
|
pproductos[i].cod_sec,pproductos[i].codid,pproductos[i].descrip_esp,pproductos[i].unidad_med,
|
|
pproductos[i].factor)
|
|
|
|
END FOR
|
|
COMMIT WORK
|
|
LET msg=SFMT(%"Download Clases '%1' ",r_cmd.oper),"\n",pproductos.getLength()
|
|
|
|
|
|
END FUNCTION
|