143 lines
4.1 KiB
Plaintext
143 lines
4.1 KiB
Plaintext
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
|