BD.FUNC.CEN FUNC CREAR SEGM ALERTAS

De VIVAitwiki
Ir a la navegaciónIr a la búsqueda

1 Descripción

2 Parámetros

USE `nimitz`;

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

DELIMITER $$

USE `nimitz`$$

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

PAR_UCID VARCHAR(32),

PAR_UCID_ORIGEN VARCHAR(32),

PAR_ORIGEN VARCHAR(32),

PAR_ORIGEN_NOMBRE VARCHAR(45),

PAR_DESTINO VARCHAR(32),

PAR_VDN VARCHAR(45),

PAR_ID_VDN INT,

PAR_TIPO_SEGMENTO INT,

PAR_ID_ENTIDAD INT,

PAR_ID_SERVICIO INT,

PAR_TIPO_SERVICIO INT,

PAR_TIPO_LLAMADA INT,

PAR_REQUIERE_CONFIRMACION BOOLEAN,

PAR_USUARIO_SECUNDARIO BOOLEAN,

PAR_ID_DESTINO INT,

PAR_ID_SEGM_ORIGEN INT,

PAR_EJE1 VARCHAR(16),

PAR_ESTADO_ALERTA INT

) RETURNS INT

MODIFIES SQL DATA

DETERMINISTIC

begin

declare VAR_NO_HAY BOOLEAN;

declare VAR_HORA DATETIME;

declare VAR_ID_SEGMENTO INT;

declare VAR_ID_VDN INT;

declare VAR_ID_SEGM_ORIGEN INT;

declare SQL_VDN CURSOR for

select `ID`

from `CEN_VDN`

where `C_NOMBRE`=PAR_VDN and `B_NO_USAR`=0;

declare CONTINUE HANDLER FOR NOT FOUND set VAR_NO_HAY=TRUE;

set VAR_HORA = Now();

if (PAR_ID_VDN is NULL) or (PAR_ID_VDN=0)

then

set VAR_NO_HAY=FALSE;

open SQL_VDN;

fetch SQL_VDN into VAR_ID_VDN;

close SQL_VDN; if VAR_NO_HAY

then

set VAR_ID_VDN = 0;

end if;

else

set VAR_ID_VDN = PAR_ID_VDN;

end if;

insert into `DAT_SEGMENTOS`

(

`C_UCID`,

`D_HORA_INICIO`,

`C_ORIGEN`,

`C_DESTINO`,

`ID_VDN`,

`C_VDN`,

`E_TIPO_SEGMENTO`,

`E_TIPO_LLAMADA`,

`E_TIPO_CANAL`,

`C_EJE1_MASCARA`

)

values

(

PAR_UCID,

VAR_HORA,

PAR_ORIGEN,

PAR_DESTINO,

VAR_ID_VDN,

PAR_VDN,

PAR_TIPO_SEGMENTO,

PAR_TIPO_LLAMADA,

10, /* telefonia */

PAR_EJE1

);

set VAR_ID_SEGMENTO = last_insert_id();

if (PAR_ID_SEGM_ORIGEN is NULL) or (PAR_ID_SEGM_ORIGEN=0)

then

set VAR_ID_SEGM_ORIGEN = VAR_ID_SEGMENTO;

else

set VAR_ID_SEGM_ORIGEN = PAR_ID_SEGM_ORIGEN;

end if;

insert into `ALE_SEGMENTOS`

(

`ID`,

`C_UCID`,

`D_HORA_INICIO`,

`E_TIPO_SEGMENTO`,

`ID_ENTIDAD`,

`ID_SERVICIO`,

`E_TIPO_SERVICIO`,

`ID_SEG_ORIGEN_ALERTA`,

`C_UCID_ORIGEN_ALERTA`,

`ID_VDN`,

`C_VDN`,

`C_ORIGEN_NUM`,

`C_ORIGEN_NOMBRE`,

`C_DESTINO`,

`ID_DESTINO`,

`B_REQUIERE_CONFIRMACION`,

`B_USUARIO_SECUNDARIO`,

`E_ESTADO_ALERTA`

)

values

(

VAR_ID_SEGMENTO,

PAR_UCID,

VAR_HORA,

PAR_TIPO_SEGMENTO,

PAR_ID_ENTIDAD,

PAR_ID_SERVICIO,

PAR_TIPO_SERVICIO,

VAR_ID_SEGM_ORIGEN,

PAR_UCID_ORIGEN,

VAR_ID_VDN,

PAR_VDN,

PAR_ORIGEN,

PAR_ORIGEN_NOMBRE,

PAR_DESTINO,

IF(PAR_ID_DESTINO=0,NULL,PAR_ID_DESTINO),

PAR_REQUIERE_CONFIRMACION,

PAR_USUARIO_SECUNDARIO,

PAR_ESTADO_ALERTA

);

return VAR_ID_SEGMENTO;

end$$

DELIMITER ;