IMPORT util FUNCTION orden(data) DEFINE i SMALLINT, data STRING DEFINE credenciales RECORD usuario VARCHAR(50), clave VARCHAR(50), orden INT END RECORD DEFINE o RECORD 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 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 , 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=400 LET o.menajes.descripcion="USUARIO NO VALIDO ",SQLCA.sqlerrm DISCONNECT CURRENT RETURN util.JSON.stringify(o) END IF DISPLAY "DATOS: ",credenciales.orden 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 o.orden_master.* FROM prtb00012 a, vetb00004 d WHERE a.num_oc = credenciales.orden AND a.cerrada='N' AND a.tipo_cliente = d.tipo_cliente AND a.sec_cliente = d.sec_cliente AND a.status_t IS NULL IF o.orden_master.estado_orden='N' THEN LET o.orden_master.estado_orden = 'ABIERTA' ELSE LET o.orden_master.estado_orden = 'CERRADA' END IF 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 b.num_oc = credenciales.orden) 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 LET o.menajes.cod_msg=200 LET o.menajes.descripcion='OPERACION EXITOSA' RETURN util.JSON.stringify(o) END FUNCTION