117 lines
3.8 KiB
Plaintext
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
|