Files
MBS/WEBSERVICES/ordenes_anular.4gl
T

105 lines
3.7 KiB
Plaintext

IMPORT util
IMPORT security
FUNCTION orden_anular(xorden)
DEFINE i,tiene_compromiso SMALLINT,
xorden,selec STRING,
ximpresor,xcopia SMALLINT,
xtipoOrden VARCHAR(30),
estado BOOLEAN
DEFINE generales RECORD
usuario VARCHAR(50),
clave VARCHAR(50),
num_oc INT
END RECORD
DEFINE r_out RECORD
orden INT,
mensaje_out STRING,
cod_msg INT
END RECORD
CALL util.JSON.parse(xorden,generales)
WHENEVER ERROR CONTINUE
DISPLAY "data ordenes anular : ",generales.usuario,' ',generales.clave
CONNECT TO "smarmotech" USER generales.usuario USING generales.clave
IF STATUS < 0 THEN
LET r_out.cod_msg = 404
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
DISPLAY "DATOS ",generales.num_oc
SELECT a.num_oc FROM prtb00012 a WHERE a.num_oc = generales.num_oc AND a.status_t IS NULL
IF STATUS = NOTFOUND THEN
LET r_out.cod_msg =-5
LET r_out.orden=0
LET r_out.mensaje_out = 'ORDEN DE PEDIDOS NO EXISTE'
DISCONNECT CURRENT
RETURN util.JSON.stringify(r_out)
END IF
SELECT DISTINCT a.num_oc FROM iptb00006 a WHERE a.num_oc = generales.num_oc AND a.status_t IS NULL
IF STATUS <> NOTFOUND THEN
LET r_out.cod_msg =-5
LET r_out.orden=0
LET r_out.mensaje_out = 'ORDEN NO PUEDE SER ANULADA, TIENE TRANSACCIONES INVENTARIO'
DISCONNECT CURRENT
RETURN util.JSON.stringify(r_out)
END IF
SELECT DISTINCT a.num_oc FROM cctb00026 a WHERE a.num_oc = generales.num_oc AND a.status_t IS NULL
IF STATUS <> NOTFOUND THEN
LET r_out.cod_msg = -5
LET r_out.orden=0
LET r_out.mensaje_out = 'ORDEN NO PUEDE SER ANULADA, TIENE REQUISICION DESPACHOS'
DISPLAY "RESPUESTA ANULAR: ",util.JSON.stringify(r_out)
DISCONNECT CURRENT
RETURN util.JSON.stringify(r_out)
END IF
LET selec = "SELECT DISTINCT a.orden FROM exterior.dbo.vetb00002 a WHERE a.orden = ? AND a.status_t IS NULL"
PREPARE busca_factura FROM selec
EXECUTE busca_factura USING generales.num_oc
IF STATUS != NOTFOUND THEN
LET r_out.cod_msg = -5
LET r_out.orden=0
LET r_out.mensaje_out = 'ORDEN NO PUEDE SER ANULADA, TIENE FACTURA GENERADA'
DISPLAY "RESPUESTA ANULAR: ",util.JSON.stringify(r_out)
DISCONNECT CURRENT
RETURN util.JSON.stringify(r_out)
END IF
LET tiene_compromiso = 0
LET selec = "SELECT ISNULL(COUNT(*),0) INTO tiene_compromiso FROM prtb00013 a
WHERE a.num_oc = ? AND
a.fech_Crea > '01/01/2007' AND
a.fecha_compromiso IS NOT NULL AND
a.status_t is null
"
PREPARE busca_compromiso FROM selec
EXECUTE busca_compromiso INTO tiene_compromiso USING generales.num_oc
IF tiene_compromiso > 0 THEN
LET r_out.cod_msg = -5
LET r_out.orden=0
LET r_out.mensaje_out = 'ORDEN NO PUEDE SER ANULADA, TIENE FECHA DE COMPROMISO'
DISPLAY "RESPUESTA ANULAR: ",util.JSON.stringify(r_out)
DISCONNECT CURRENT
RETURN util.JSON.stringify(r_out)
END IF
UPDATE prtb00012 SET status_t = 'E',cerrada = 'E', fech_mod = getdate(),us_mod = generales.usuario WHERE num_oc = generales.num_oc
UPDATE prtb00013 SET status_t = 'E',fech_mod = getdate(),us_mod = generales.usuario WHERE num_oc = generales.num_oc
LET r_out.cod_msg=200
LET r_out.mensaje_out='ORDEN PEDIDOS ANULADA'
DISPLAY "RESPUESTA AL FINAL: ",r_out.mensaje_out
DISCONNECT CURRENT
RETURN util.JSON.stringify(r_out)
END FUNCTION