Files
MBS/WEBSERVICES/requisiciones_compras.4gl

126 lines
4.4 KiB
Plaintext

IMPORT util
IMPORT security
FUNCTION requisiciones_compra(pdata)
DEFINE i SMALLINT,
pdata STRING
DEFINE generales RECORD
usuario VARCHAR(50),
clave VARCHAR(50),
tipo_Documento CHAR(1),
rnc CHAR(15),
oper CHAR(15),
requisicion SMALLINT
END RECORD
DEFINE data RECORD
detalle DYNAMIC ARRAY OF RECORD
inventario STRING,
codigo INT,
producto STRING,
cantidad FLOAT,
cod_n SMALLINT,
cod_grupo SMALLINT,
cod_tipo SMALLINT,
cod_sec SMALLINT,
departamento VARCHAR(70),
num_req INT,
fecha DATE,
estado VARCHAR(20)
END RECORD,
r_out RECORD
mensaje_out STRING,
cod_msg INT
END RECORD {,
documento DYNAMIC ARRAY OF RECORD
num_req SMALLINT,
nombre_file CHAR(20),
documento BYTE,
us_crea CHAR(50),
fech_crea DATE,
status_t CHAR(1)
END RECORD }
END RECORD,
idx INT
# LOCATE data.archivos.imagen IN MEMORY
CALL util.JSON.parse(pdata,generales)
# WHENEVER ERROR CONTINUE
DISPLAY "requi compras d"
CONNECT TO "smarmotech" USER generales.usuario USING generales.clave
IF STATUS < 0 THEN
LET data.r_out.cod_msg = STATUS
LET data.r_out.mensaje_out = 'ERROR EN USUARIO CONECTANDOSE A LA BASE DE DATOS'
DISCONNECT CURRENT
RETURN util.JSON.stringify(data)
END IF
DECLARE busca_req CURSOR FOR
SELECT a.tipo_inv,b.codid,b.descrip_esp,a.cantidad,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,c.departamento,
a.num_req,c.fech_req,a.procesada
FROM iptb00002 b,cotb00006 c,cotb00008 a
WHERE a.num_req =generales.requisicion AND
a.num_req = c.num_req AND
a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND
a.cod_tipo = b.cod_tipo AND c.fech_req > '10/01/2019' and
a.cod_sec = b.cod_sec AND c.status_t IS NULL
UNION
SELECT a.tipo_inv,b.codid,b.descrip_esp,a.cantidad,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,c.departamento,
a.num_req,c.fech_req, a.procesada
FROM irtb00002 b,cotb00006 c, cotb00008 a
WHERE a.num_req =generales.requisicion AND
a.num_req = c.num_req AND
a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND
a.cod_tipo = b.cod_tipo AND c.fech_req > '10/01/2019' and
a.cod_sec = b.cod_sec AND c.status_t IS NULL
UNION
SELECT a.tipo_inv,b.cod_sec,b.descrip_esp,a.cantidad,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,c.departamento,
a.num_req,c.fech_req,a.procesada
FROM istb00002 b,cotb00006 c, cotb00008 a
WHERE a.num_req =generales.requisicion AND
a.num_req = c.num_req AND
a.cod_n = b.cod_n AND a.cod_grupo = b.cod_grupo AND
a.cod_tipo = b.cod_tipo AND c.fech_req > '10/01/2019' and
a.cod_sec = b.cod_sec AND c.status_t IS NULL
UNION
SELECT a.tipo_inv,b.cod_sec,k.descrip_esp,a.cantidad,a.cod_n,a.cod_grupo,a.cod_tipo,a.cod_sec,c.departamento,
a.num_req,c.fech_req,a.procesada
FROM intb00002 b,intb00001 k,cotb00006 c, cotb00008 a
WHERE a.num_req = generales.requisicion AND
a.num_req = c.num_req AND
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
a.cod_n = k.cod_n AND
a.cod_grupo = k.cod_grupo AND
a.cod_tipo = k.cod_tipo AND
a.cod_sec = k.cod_sec AND
c.status_t IS NULL
LET idx=1
FOREACH busca_req INTO data.detalle[idx].*
IF STATUS < 0 THEN
LET data.r_out.cod_msg = STATUS
LET data.r_out.mensaje_out = 'ERROR EN QUERY:',SQLCA.sqlerrm CLIPPED
EXIT FOREACH
END IF
LET idx = idx + 1
END FOREACH
{ DECLARE documento CURSOR FOR
SELECT * FROM cotb00044
WHERE num_req = 9615
--WHERE num_req = generales.requisicion
LET idx=1
FOREACH documento INTO data.documento[idx].*
LET idx = idx + 1
END FOREACH
}
DISCONNECT CURRENT
RETURN util.JSON.stringify(data)
END FUNCTION