BD.FUNC.CEN FUNC CREAR SEGM ALERTAS
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 ;