Files
MBS/WEBSERVICES/cliente/orden_IA.4gl
T

110 lines
3.8 KiB
Plaintext

IMPORT util
FUNCTION ordenes_ia(data)
DEFINE i SMALLINT,
data STRING
DEFINE credenciales RECORD
usuario VARCHAR(50),
clave VARCHAR(50),
orden INT,
rnc VARCHAR(25)
END RECORD
DEFINE p RECORD
orden_master RECORD
ventas char(1) ,
cotizacion_no INT ,
num_oc INT ,
tipo_cliente SMALLINT ,
sec_cliente SMALLINT ,
cliente VARCHAR(100),
rnc VARCHAR(25)
END RECORD,
listaordenes DYNAMIC ARRAY OF RECORD
orden,coditizacion_no INT
END RECORD,
mensajes RECORD
cod_msg INT,
descripcion STRING
END RECORD
END RECORD,
idx INT
CALL util.JSON.parse(data,credenciales)
DISPLAY " INFORMACION CLIENTE ",credenciales.usuario," clave ",credenciales.clave,
" orden: ",credenciales.orden, " rnc: ",credenciales.rnc
IF credenciales.orden IS NULL AND credenciales.rnc IS NULL THEN
LET p.mensajes.cod_msg=400
LET p.mensajes.descripcion='DEBES ENVIAR UN PARAMETRO, ORDEN PEDIDOS o RNC cliente'
RETURN util.JSON.stringify(p)
END IF
CONNECT TO "smarmotech" USER credenciales.usuario USING credenciales.clave
IF STATUS < 0 THEN
LET p.mensajes.cod_msg=400
LET p.mensajes.descripcion='USUARIO NO ES VALIDO'
DISPLAY "USUARIO NO VALIDO ",SQLCA.sqlerrm
DISPLAY "ORDEN: ",credenciales.orden
DISCONNECT CURRENT
RETURN util.JSON.stringify(p)
END IF
IF credenciales.orden IS NOT NULL THEN
SELECT DISTINCT a.ventas , a.cotizacion_no , a.num_oc ,
a.tipo_cliente ,a.sec_cliente ,d.nombre,a.rnc
INTO p.orden_master.*
FROM vetb00050 a LEFT OUTER JOIN prtb00012 b ON b.cotizacion_no = a.cotizacion_no AND
b.status_t IS NULL,
vetb00004 d
WHERE
b.num_oc = credenciales.orden AND
a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET p.mensajes.cod_msg = 400
LET p.mensajes.descripcion = 'COTIZACION NO EXISTE EN LA BASE DE DATOS'
DISCONNECT CURRENT
RETURN util.JSON.stringify(p)
END IF
END IF
IF credenciales.rnc IS NOT NULL THEN
DECLARE busca_orden CURSOR FOR
SELECT DISTINCT a.ventas , a.cotizacion_no , a.num_oc ,
a.tipo_cliente ,a.sec_cliente ,d.nombre,a.rnc
INTO p.orden_master.*
FROM vetb00050 a INNER JOIN prtb00012 b ON b.cotizacion_no = a.cotizacion_no AND
b.status_t IS NULL INNER JOIN vetb00004 d ON d.tipo_cliente = b.tipo_cliente AND
d.sec_cliente = b.sec_cliente
WHERE
a.cotizacion_no = b.cotizacion_no AND
a.rnc = credenciales.rnc AND
a.status_t IS NULL
LET idx = 1
FOREACH busca_orden
LET p.listaordenes[idx].coditizacion_no = p.orden_master.cotizacion_no
LET p.listaordenes[idx].orden = p.orden_master.num_oc
LET idx = idx + 1
END FOREACH
IF idx=1 THEN
LET p.mensajes.cod_msg = 400
LET p.mensajes.descripcion = 'NO EXISTEN REGISTROS CON ESOS PARAMETROS'
DISCONNECT CURRENT
RETURN util.JSON.stringify(p)
END IF
END IF
LET p.mensajes.cod_msg = 200
LET p.mensajes.descripcion = 'OPERACION EXITOSA'
DISCONNECT CURRENT
RETURN util.JSON.stringify(p)
END FUNCTION