BD.FUNC.COM FUNC TIENE PERMISO

De VIVAitwiki
Revisión del 14:45 12 nov 2021 de Bartosz (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegaciónIr a la búsqueda

1 Descripción

2 Parámetros

USE `nimitz`;

DROP function IF EXISTS `nimitz`.`COM_FUNC_TIENE_PERMISO`;

DELIMITER $$

USE `nimitz`$$

CREATE DEFINER=`adminNimitz`@`%` FUNCTION `COM_FUNC_TIENE_PERMISO`(

PAR_ORIGEN VARCHAR(32),

PAR_DESTINO VARCHAR(32)

) RETURNS varchar(64) CHARSET utf8

MODIFIES SQL DATA

DETERMINISTIC

BEGIN

declare VAR_NO_HAY BOOLEAN;

declare VAR_ID_CATEGORIA INT;

declare VAR_C_MASCARA VARCHAR(45);

declare SQL_AGENTE CURSOR for

select `ID_CATEGORIA`

from `ACD_USUARIOS`

where `C_LOGIN_NUMERICO`=PAR_ORIGEN;

declare SQL_EXTENSION CURSOR for

select `D`.`ID_CATEGORIA`

from `CEN_DISPOSITIVOS` as `D`, `CEN_EXTENSIONES` as `E`

where `D`.`ID`=`E`.`ID` and `E`.`C_NOMBRE`=PAR_ORIGEN;

declare SQL_DESTINOS CURSOR for

select `C_DESTINO`

from `CEN_DESTINO_RUTAS`

where `ID_CATEGORIA`=VAR_ID_CATEGORIA;

declare CONTINUE HANDLER FOR NOT FOUND set VAR_NO_HAY=TRUE;

set VAR_NO_HAY=FALSE;

set VAR_ID_CATEGORIA=0;

open SQL_AGENTE;

fetch SQL_AGENTE into VAR_ID_CATEGORIA;

close SQL_AGENTE;

if VAR_NO_HAY

then set VAR_NO_HAY=FALSE;

set VAR_ID_CATEGORIA=0;

open SQL_EXTENSION;

fetch SQL_EXTENSION into VAR_ID_CATEGORIA;

close SQL_EXTENSION;

if VAR_NO_HAY

then

return 'No existe el origen ni como agente ni como extension';

end if;

end if;

open SQL_DESTINOS;

if VAR_ID_CATEGORIA > 0

then

set VAR_NO_HAY=FALSE;

set VAR_ID_CATEGORIA=0;

REPEAT

FETCH SQL_DESTINOS INTO VAR_C_MASCARA;

IF NOT VAR_NO_HAY THEN

IF locate (VAR_C_MASCARA,PAR_DESTINO) = 1

then

close SQL_DESTINOS;

return 'Ok';

END IF;

END IF;

UNTIL VAR_NO_HAY END REPEAT;

end if;

close SQL_DESTINOS;

return NULL; END$$

DELIMITER ;