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