Files
MBS/WEBSERVICES/ordenes_display.4gl

172 lines
4.9 KiB
Plaintext

IMPORT util
FUNCTION ordenes_display(data)
DEFINE i SMALLINT,
data STRING
DEFINE credenciales RECORD
usuario VARCHAR(50),
clave VARCHAR(50)
END RECORD
DEFINE o RECORD
orden_master DYNAMIC ARRAY OF RECORD
ventas char(1) ,
cotizacion_no INT ,
num_oc INT ,
fecha_oc DATE ,
orden_compra char(15) ,
sec_vend SMALLINT ,
tipo_cliente SMALLINT ,
sec_cliente SMALLINT ,
cliente VARCHAR(100),
direccion char(80) ,
telefono char(20) ,
fax char(20) ,
fecha_entrega DATE ,
cond_pago SMALLINT ,
cantidad_i DEC(8, 2) ,
precio_i DEC(8, 2) ,
cantidad_mo DEC(10, 2) ,
precio_mo DEC(10, 2) ,
transporte DEC(10, 2) ,
itbis DEC(10, 2) ,
ubicacion varchar(170) ,
estado_orden char(10) ,
fecha_cierre DATE ,
observacion varchar(100) ,
nombre_file2 varchar(100)
END RECORD,
orden_detalle DYNAMIC ARRAY OF RECORD
num_oc int ,
secuencia smallint ,
area smallint ,
cod_n smallint ,
cod_grupo smallint ,
cod_tipo smallint ,
cod_sec smallint ,
precio DEC(10, 2) ,
cantiad_1 DEC(12,4),
cantidad DEC(12, 5) ,
descuento DEC(10, 2) ,
fecha_compromiso date ,
estado_produccion VARchar(20) ,
observacion VARchar(100) ,
id_kit int
END RECORD,
menajes RECORD
cod_msg INT,
descripcion STRING
END RECORD
END RECORD
DEFINE orden_master RECORD
ventas char(1) ,
cotizacion_no INT ,
num_oc INT ,
fecha_oc DATE ,
orden_compra char(15) ,
sec_vend SMALLINT ,
tipo_cliente SMALLINT ,
sec_cliente SMALLINT ,
cliente VARCHAR(100),
direccion char(80) ,
telefono char(20) ,
fax char(20) ,
fecha_entrega DATE ,
cond_pago SMALLINT ,
cantidad_i DEC(8, 2) ,
precio_i DEC(8, 2) ,
cantidad_mo DEC(10, 2) ,
precio_mo DEC(10, 2) ,
transporte DEC(10, 2) ,
itbis DEC(10, 2) ,
ubicacion varchar(170) ,
estado_orden char(10) ,
fecha_cierre DATE ,
observacion varchar(100) ,
nombre_file2 varchar(100)
END RECORD,
orden_detalle RECORD
num_oc int ,
secuencia smallint ,
area smallint ,
cod_n smallint ,
cod_grupo smallint ,
cod_tipo smallint ,
cod_sec smallint ,
precio DEC(10, 2) ,
cantidad_1 DEC(12,4),
cantidad DEC(12, 5),
descuento DEC(10, 2),
fecha_compromiso date,
estado_produccion VARchar(20) ,
observacion VARchar(100) ,
id_kit int
END RECORD
CALL util.JSON.parse(data,credenciales)
DISPLAY "USUARIO ",credenciales.usuario," clave ",credenciales.clave
CONNECT TO "smarmotech" USER credenciales.usuario USING credenciales.clave
IF STATUS < 0 THEN
LET o.menajes.cod_msg=STATUS
LET o.menajes.descripcion="USUARIO NO VALIDO ",SQLCA.sqlerrm
DISCONNECT CURRENT
END IF
DECLARE master CURSOR FOR
SELECT DISTINCT a.ventas , a.cotizacion_no , a.num_oc ,a.fecha_oc , a.nombre_file ,a.sec_vend ,
a.tipo_cliente ,a.sec_cliente ,d.nombre, a.direccion ,a.telefono ,a.fax , a.fecha_entrega ,
ISNULL(a.cond_pago,0),ISNULL(a.cantidad_i,0), ISNULL(a.precio_i,0), ISNULL(a.cantidad_mo,0) , ISNULL(a.precio_mo,0) ,
a.transporte ,a.itbis ,a.ubicacion ,a.cerrada ,
a.fecha_cierre,
a.observacion , a.nombre_file2,a.num_oc
INTO orden_master.*
FROM prtb00012 a, vetb00004 d
WHERE a.fecha_oc > '01/01/2016'
AND a.cerrada='N' AND
a.tipo_cliente = d.tipo_cliente AND
a.sec_cliente = d.sec_cliente AND
a.status_t IS NULL
LET i=0
FOREACH master
LET i = i +1
IF orden_master.estado_orden='N' THEN
LET orden_master.estado_orden = 'ABIERTA'
ELSE
LET orden_master.estado_orden = 'CERRADA'
END IF
LET o.orden_master[i].*=orden_master.*
END FOREACH
FREE master
DECLARE u27 CURSOR FOR
SELECT b.num_oc,
b.secuencia,b.area ,b.cod_n ,b.cod_grupo ,b.cod_tipo ,b.cod_sec,
b.precio,b.cantidad,c.cantidad_1,b.descuento,b.fecha_compromiso,b.estado_produccion,
b.observacion,b.id_kit
INTO orden_detalle.*
FROM prtb00012 a ,prtb00013 b,prtb00023 c
WHERE (a.num_oc = b.num_oc) AND a.fecha_oc > '01/01/2016'
AND (b.num_oc = c.num_oc) AND a.cerrada='N' AND
(b.cod_n = c.cod_n AND b.cod_grupo = c.cod_grupo AND
b.cod_tipo = c.cod_tipo AND
b.cod_sec = c.cod_sec )
AND a.status_t IS NULL
LET i=0
FOREACH u27
LET i=i+1
LET o.orden_detalle[i].*=orden_detalle.*
END FOREACH
FREE u27
DISCONNECT CURRENT
RETURN util.JSON.stringify(o)
END FUNCTION