76 lines
2.8 KiB
Plaintext
76 lines
2.8 KiB
Plaintext
IMPORT util
|
|
IMPORT security
|
|
|
|
FUNCTION orden_cantidad(xorden)
|
|
DEFINE xorden STRING,
|
|
cantidad_orden,cantidad_producida FLOAT
|
|
|
|
DEFINE data RECORD
|
|
generales RECORD
|
|
usuario VARCHAR(50),
|
|
clave VARCHAR(50),
|
|
cantidad FLOAT,
|
|
orden_cliente INT,
|
|
cod_n SMALLINT,
|
|
cod_grupo SMALLINT,
|
|
cod_tipo INT,
|
|
cod_Sec INT
|
|
END RECORD
|
|
END RECORD
|
|
DEFINE r_out RECORD
|
|
orden INT,
|
|
mensaje_out STRING,
|
|
cod_msg INT,
|
|
cantidad_orden FLOAT
|
|
END RECORD
|
|
|
|
CALL util.JSON.parse(xorden,data)
|
|
|
|
CONNECT TO "smarmotech" USER data.generales.usuario USING data.generales.clave
|
|
IF STATUS < 0 THEN
|
|
LET r_out.cod_msg = STATUS
|
|
LET r_out.orden=0
|
|
LET r_out.mensaje_out = 'ERROR EN USUARIO CONECTANDOSE A LA BASE DE DATOS'
|
|
DISCONNECT CURRENT
|
|
RETURN util.JSON.stringify(r_out)
|
|
END IF
|
|
LET r_out.cod_msg=0
|
|
LET r_out.mensaje_out=NULL
|
|
LET r_out.cantidad_orden=0
|
|
LET cantidad_orden = 0
|
|
DISPLAY "ORDEN ",data.generales.orden_cliente
|
|
SELECT a.num_oc FROM prtb00012 a
|
|
WHERE a.num_oc = data.generales.orden_cliente AND a.status_t IS NULL
|
|
IF STATUS = NOTFOUND THEN
|
|
LET r_out.cod_msg = -10
|
|
LET r_out.orden=data.generales.orden_cliente
|
|
LET r_out.mensaje_out = 'NO EXISTE ORDEN DE PEDIDOS O FUE ANULADA POR EL USUARIO'
|
|
DISCONNECT CURRENT
|
|
RETURN util.JSON.stringify(r_out)
|
|
ELSE
|
|
SELECT SUM(a.cantidad) INTO cantidad_orden FROM prtb00023 a
|
|
WHERE (a.num_oc = data.generales.orden_cliente AND
|
|
a.cod_n = data.generales.cod_n AND a.cod_grupo = data.generales.cod_grupo AND
|
|
a.cod_tipo = data.generales.cod_tipo AND a.cod_sec = data.generales.cod_Sec)
|
|
|
|
SELECT SUM(a.cantidad_2) INTO cantidad_producida FROM iptb00006 a
|
|
WHERE (a.num_oc = data.generales.orden_cliente AND
|
|
a.cod_n = data.generales.cod_n AND a.cod_grupo = data.generales.cod_grupo AND
|
|
a.cod_tipo = data.generales.cod_tipo AND a.cod_sec = data.generales.cod_Sec) AND
|
|
a.cod_mov IN (70,71,72) AND
|
|
a.status_t IS NULL
|
|
IF cantidad_producida >= cantidad_orden THEN
|
|
LET r_out.cod_msg = -10
|
|
LET r_out.orden=data.generales.orden_cliente
|
|
LET r_out.cantidad_orden = cantidad_orden
|
|
LET r_out.mensaje_out = 'NO PUEDES ADICIONAR ESTA PRODUCCION, LA CANTIDAD PRODUCIDA EN EL SISTEMA ES ',cantidad_producida
|
|
DISCONNECT CURRENT
|
|
RETURN util.JSON.stringify(r_out)
|
|
|
|
END IF
|
|
END IF
|
|
DISCONNECT CURRENT
|
|
LET r_out.cantidad_orden = cantidad_orden
|
|
RETURN util.JSON.stringify(r_out)
|
|
END FUNCTION
|