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