BD.FUNC.ACD FUNC CLI SEGMENTOS CREAR
Parámetros
USE `nimitz`; DROP function IF EXISTS `nimitz`.`ACD_FUNC_CLI_SEGMENTOS_CREAR`;
DELIMITER $$ USE `nimitz`$$ CREATE DEFINER=`adminNimitz`@`%` FUNCTION `ACD_FUNC_CLI_SEGMENTOS_CREAR`( PAR_C_ANI VARCHAR(32), PAR_C_UCID VARCHAR(20), PAR_C_VDN VARCHAR(45), PAR_B_ES_DESVIADA BOOL ) RETURNS varchar(64) CHARSET utf8
MODIFIES SQL DATA DETERMINISTIC
BEGIN declare VAR_NO_HAY BOOLEAN;
declare VAR_ID_SEGMENTO INT;
declare VAR_B_ES_PROFESIONAL BOOL; declare VAR_ID_DATOS INT; declare VAR_C_CIP varchar(20); declare VAR_C_NOMBRE varchar(45); declare VAR_C_APELLIDO1 varchar(45); declare VAR_C_APELLIDO2 varchar(45); declare VAR_C_PROGRAMA varchar(45); declare VAR_D_FECHA_INCLUSION varchar(20); declare VAR_D_FECHA_ALTA varchar(20); declare VAR_C_RELACION_PACIENTE varchar(60); declare VAR_E_DEST_TRANSFER INT; declare VAR_E_CODI int(11); declare VAR_ES_DESVIADA int; declare VAR_C_VDN varchar(45);
declare SQL_SEGMENTOS CURSOR for select `ID` from `DAT_SEGMENTOS` where `C_UCID`=PAR_C_UCID AND (E_TIPO_SEGMENTO=200 or E_TIPO_SEGMENTO=250);
declare SQL_PACIENTES CURSOR for select TP.`ID`,TP.`E_CODI` from `CLI_TELEFONOS_PACIENTES` as TP INNER JOIN `CLI_DATOS_PACIENTES` as DP on TP.`ID_DATOS_PACIENTE`=DP.`ID` where TP.`C_ANI`=PAR_C_ANI;
declare SQL_PROFESIONALES CURSOR for select TPR.`ID`,TPR.`E_CODI`,DPR.`C_NOMBRE`,DPR.`C_APELLIDO1`,DPR.`C_APELLIDO2`, DPR.`C_REL_PACIENTE` from `CLI_TELEFONOS_PROFESIONALES` as TPR INNER JOIN `CLI_DATOS_PROFESIONALES` as DPR on TPR.`ID_DATOS_PROFESIONAL`=DPR.`ID` where TPR.`C_ANI`=PAR_C_ANI;
declare CONTINUE HANDLER FOR NOT FOUND set VAR_NO_HAY=TRUE;
set VAR_B_ES_PROFESIONAL=false; set VAR_ID_DATOS=NULL; set VAR_C_CIP=; set VAR_C_NOMBRE=; set VAR_C_APELLIDO1=; set VAR_C_APELLIDO2=; set VAR_C_PROGRAMA=; set VAR_D_FECHA_INCLUSION=; set VAR_D_FECHA_ALTA=; set VAR_C_RELACION_PACIENTE=; set VAR_E_DEST_TRANSFER=0; set VAR_E_CODI=0; set VAR_ES_DESVIADA=PAR_B_ES_DESVIADA; set VAR_C_VDN=PAR_C_VDN;
set VAR_NO_HAY=FALSE;
set VAR_ID_SEGMENTO=0;
open SQL_SEGMENTOS;
fetch SQL_SEGMENTOS into VAR_ID_SEGMENTO;
close SQL_SEGMENTOS;
if VAR_NO_HAY then return 'No existe segmento'; end if;
set VAR_NO_HAY=FALSE; set VAR_ID_DATOS=0; open SQL_PACIENTES; fetch SQL_PACIENTES into VAR_ID_DATOS, VAR_E_CODI; close SQL_PACIENTES;
if VAR_NO_HAY then set VAR_B_ES_PROFESIONAL=true; set VAR_NO_HAY=FALSE; set VAR_ID_DATOS=0; open SQL_PROFESIONALES; fetch SQL_PROFESIONALES into VAR_ID_DATOS, VAR_E_CODI, VAR_C_NOMBRE, VAR_C_APELLIDO1, VAR_C_APELLIDO2, VAR_C_RELACION_PACIENTE; close SQL_PROFESIONALES; if VAR_NO_HAY then set VAR_B_ES_PROFESIONAL=true; set VAR_ID_DATOS=NULL; set VAR_C_CIP=; set VAR_C_NOMBRE=; set VAR_C_APELLIDO1=; set VAR_C_APELLIDO2=; set VAR_C_PROGRAMA=; set VAR_D_FECHA_INCLUSION=; set VAR_D_FECHA_ALTA=; set VAR_C_RELACION_PACIENTE=; set VAR_E_DEST_TRANSFER=0; set VAR_E_CODI=0; end if; end if;
insert into `CLI_SEGMENTOS`
(
`ID`,
`B_ES_PROFESIONAL`,
`ID_DATOS`,
`C_CIP`,
`C_NOMBRE`,
`C_APELLIDO1`,
`C_APELLIDO2`,
`C_PROGRAMA`,
`D_FECHA_INCLUSION`,
`D_FECHA_ALTA`,
`C_RELACION_PACIENTE`,
`E_DEST_TRANSFER`,
`E_CODI`,
`B_ES_DESVIADA`,
`C_VDN`
)
values
(
VAR_ID_SEGMENTO,
VAR_B_ES_PROFESIONAL,
VAR_ID_DATOS,
VAR_C_CIP,
VAR_C_NOMBRE,
VAR_C_APELLIDO1,
VAR_C_APELLIDO2,
VAR_C_PROGRAMA,
VAR_D_FECHA_INCLUSION,
VAR_D_FECHA_ALTA,
VAR_C_RELACION_PACIENTE,
VAR_E_DEST_TRANSFER,
VAR_E_CODI,
VAR_ES_DESVIADA,
VAR_C_VDN
);
return 'OK';
end$$
DELIMITER ;