Files
MBS/WEBSERVICES/productos_display.4gl

117 lines
3.8 KiB
Plaintext

IMPORT util
IMPORT os
FUNCTION productos_display(xcodigo)
DEFINE i SMALLINT,
cantidad_orden,pcantidadConduce,transito,existencia,reservado DEC(12,5),
pfecha DATE,
xcodigo STRING
DEFINE producto RECORD
cod_cia SMALLINT ,
cod_n INT ,
cod_grupo INT ,
cod_tipo INT ,
cod_sec INT ,
descrip_esp varchar(180) ,
descrip_ing varchar(80) ,
unidad_med varchar(4) ,
nomenclatura char(50) ,
bodega SMALLINT ,
existencia DEC(12,5),
disponible 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,
imagen BYTE,
porc_desc decimal(12, 2) ,
fecha_desc DATE ,
factor DEC(12,5),
descuento_permitido VARCHAR(2),
referencia VARCHAR(25),
cod_msg SMALLINT,
mensaje_out STRING
END RECORD,
selec STRING,
data RECORD
usuario VARCHAR(50),
clave VARCHAR(50),
codigo VARCHAR(50)
END RECORD
CALL STARTLOG("producto.txt")
CALL util.JSON.parse(xcodigo,data)
# WHENEVER ERROR CONTINUE
DISPLAY "USUARIO: ",data.usuario," clave ",data.clave
CONNECT TO "smarmotech" USER data.usuario USING data.clave
IF STATUS < 0 THEN
LET producto.cod_msg=STATUS
LET producto.mensaje_out='ERROR EN USUARIO CONECTANDOSE A LA BASE DE DATOS'
DISCONNECT CURRENT
RETURN util.JSON.stringify(producto)
END IF
LOCATE producto.imagen IN MEMORY
LET selec =
"SELECT a.cod_cia ,
a.cod_n ,
a.cod_grupo ,
a.cod_tipo ,
a.cod_sec ,
a.descrip_esp ,
a.descrip_ing ,
a.unidad_med ,
a.nomenclatura ,
a.bodega ,
'0',
'0',
a.exist_max ,
a.exist_min ,
a.dia_llegada ,
a.control_existencia ,
a.control_itbis ,
a.codid ,
a.foto_producto ,
a.imagen,
a.porc_desc ,
ISNULL(a.fecha_desc,getdate()),
b.factor_conv,
a.descuento_permitido
FROM iptb00002 a,iptb00001 b
WHERE a.cod_n=b.cod_n AND a.cod_grupo=b.cod_grupo AND
a.cod_tipo=b.cod_tipo AND
a.cod_sec = b.cod_Sec AND
CAST(a.cod_n AS VARCHAR(30))+CAST(a.cod_grupo AS VARCHAR(30))+
CAST(a.cod_tipo AS VARCHAR(30))+CAST(a.cod_sec AS VARCHAR(30)) =? AND
a.status_t IS NULL "
PREPARE busca_prod FROM selec
EXECUTE busca_prod INTO producto.* USING data.codigo
IF STATUS = NOTFOUND THEN
LET producto.mensaje_out='REGISTRO NO EXISTE'
LET producto.cod_msg=400
DISCONNECT CURRENT
RETURN util.JSON.stringify(producto)
END IF
LET pfecha = TODAY
LET i=0
CALL disponibles(producto.cod_n,producto.cod_grupo,producto.cod_tipo,producto.cod_sec,pfecha)
RETURNING cantidad_orden,pcantidadConduce,transito,existencia,reservado
LET producto.existencia = existencia
LET producto.disponible = producto.existencia - (cantidad_orden-pcantidadConduce)-reservado
IF producto.existencia IS NULL OR producto.existencia < 0.959 THEN
LET producto.existencia =0
END IF
DISCONNECT CURRENT
RETURN util.JSON.stringify(producto)
END FUNCTION