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