Diferencia entre revisiones de «BD.FUNC.ACD FUNC CLI SEGMENTOS CREAR»
 (Página creada con «==Parámetros==   USE `nimitz`; DROP function IF EXISTS `nimitz`.`ACD_FUNC_CLI_SEGMENTOS_CREAR`;  DELIMITER $$ USE `nimitz`$$ CREATE DEFINER=`adminNimitz`@`%` FUNCTION `ACD…»)  | 
				|||
| Línea 3: | Línea 3: | ||
USE `nimitz`;  | USE `nimitz`;  | ||
| + | |||
DROP function IF EXISTS `nimitz`.`ACD_FUNC_CLI_SEGMENTOS_CREAR`;  | DROP function IF EXISTS `nimitz`.`ACD_FUNC_CLI_SEGMENTOS_CREAR`;  | ||
DELIMITER $$  | DELIMITER $$  | ||
| + | |||
| + | |||
USE `nimitz`$$  | USE `nimitz`$$  | ||
| + | |||
CREATE DEFINER=`adminNimitz`@`%` FUNCTION `ACD_FUNC_CLI_SEGMENTOS_CREAR`(  | CREATE DEFINER=`adminNimitz`@`%` FUNCTION `ACD_FUNC_CLI_SEGMENTOS_CREAR`(  | ||
| + | |||
	PAR_C_ANI VARCHAR(32),  | 	PAR_C_ANI VARCHAR(32),  | ||
| + | |||
	PAR_C_UCID VARCHAR(20),  | 	PAR_C_UCID VARCHAR(20),  | ||
| + | |||
	PAR_C_VDN VARCHAR(45),  | 	PAR_C_VDN VARCHAR(45),  | ||
| + | |||
	PAR_B_ES_DESVIADA BOOL  | 	PAR_B_ES_DESVIADA BOOL  | ||
| + | |||
) RETURNS varchar(64) CHARSET utf8  | ) RETURNS varchar(64) CHARSET utf8  | ||
| − | + | ||
| − | + | MODIFIES SQL DATA  | |
| + | |||
| + | DETERMINISTIC  | ||
| + | |||
| + | |||
BEGIN  | BEGIN  | ||
| + | |||
	declare VAR_NO_HAY BOOLEAN;  | 	declare VAR_NO_HAY BOOLEAN;  | ||
| Línea 21: | Línea 35: | ||
	declare VAR_B_ES_PROFESIONAL BOOL;  | 	declare VAR_B_ES_PROFESIONAL BOOL;  | ||
| + | |||
	declare VAR_ID_DATOS INT;  | 	declare VAR_ID_DATOS INT;  | ||
| + | |||
	declare VAR_C_CIP varchar(20);  | 	declare VAR_C_CIP varchar(20);  | ||
| + | |||
	declare VAR_C_NOMBRE varchar(45);  | 	declare VAR_C_NOMBRE varchar(45);  | ||
| + | |||
	declare VAR_C_APELLIDO1 varchar(45);  | 	declare VAR_C_APELLIDO1 varchar(45);  | ||
| + | |||
	declare VAR_C_APELLIDO2 varchar(45);  | 	declare VAR_C_APELLIDO2 varchar(45);  | ||
| + | |||
	declare VAR_C_PROGRAMA varchar(45);  | 	declare VAR_C_PROGRAMA varchar(45);  | ||
| + | |||
	declare VAR_D_FECHA_INCLUSION varchar(20);  | 	declare VAR_D_FECHA_INCLUSION varchar(20);  | ||
| + | |||
	declare VAR_D_FECHA_ALTA varchar(20);  | 	declare VAR_D_FECHA_ALTA varchar(20);  | ||
| + | |||
	declare VAR_C_RELACION_PACIENTE varchar(60);  | 	declare VAR_C_RELACION_PACIENTE varchar(60);  | ||
| + | |||
	declare VAR_E_DEST_TRANSFER INT;  | 	declare VAR_E_DEST_TRANSFER INT;  | ||
| + | |||
	declare VAR_E_CODI int(11);  | 	declare VAR_E_CODI int(11);  | ||
| + | |||
	declare VAR_ES_DESVIADA int;  | 	declare VAR_ES_DESVIADA int;  | ||
| + | |||
	declare VAR_C_VDN varchar(45);  | 	declare VAR_C_VDN varchar(45);  | ||
| + | |||
| + | |||
	declare SQL_SEGMENTOS CURSOR for  | 	declare SQL_SEGMENTOS CURSOR for  | ||
| + | |||
		select `ID`  | 		select `ID`  | ||
| + | |||
		from `DAT_SEGMENTOS`  | 		from `DAT_SEGMENTOS`  | ||
| + | |||
		where `C_UCID`=PAR_C_UCID AND (E_TIPO_SEGMENTO=200 or E_TIPO_SEGMENTO=250);  | 		where `C_UCID`=PAR_C_UCID AND (E_TIPO_SEGMENTO=200 or E_TIPO_SEGMENTO=250);  | ||
| + | |||
| + | |||
	declare SQL_PACIENTES CURSOR for  | 	declare SQL_PACIENTES CURSOR for  | ||
| + | |||
		select TP.`ID`,TP.`E_CODI`  | 		select TP.`ID`,TP.`E_CODI`  | ||
| + | |||
		from `CLI_TELEFONOS_PACIENTES` as TP  | 		from `CLI_TELEFONOS_PACIENTES` as TP  | ||
| + | |||
		INNER JOIN `CLI_DATOS_PACIENTES` as DP on TP.`ID_DATOS_PACIENTE`=DP.`ID`  | 		INNER JOIN `CLI_DATOS_PACIENTES` as DP on TP.`ID_DATOS_PACIENTE`=DP.`ID`  | ||
| + | |||
		where TP.`C_ANI`=PAR_C_ANI;  | 		where TP.`C_ANI`=PAR_C_ANI;  | ||
| + | |||
| + | |||
	declare SQL_PROFESIONALES CURSOR for  | 	declare SQL_PROFESIONALES CURSOR for  | ||
| + | |||
		select TPR.`ID`,TPR.`E_CODI`,DPR.`C_NOMBRE`,DPR.`C_APELLIDO1`,DPR.`C_APELLIDO2`,  | 		select TPR.`ID`,TPR.`E_CODI`,DPR.`C_NOMBRE`,DPR.`C_APELLIDO1`,DPR.`C_APELLIDO2`,  | ||
| + | |||
			DPR.`C_REL_PACIENTE`  | 			DPR.`C_REL_PACIENTE`  | ||
| + | |||
		from `CLI_TELEFONOS_PROFESIONALES` as TPR  | 		from `CLI_TELEFONOS_PROFESIONALES` as TPR  | ||
| + | |||
		INNER JOIN `CLI_DATOS_PROFESIONALES` as DPR on TPR.`ID_DATOS_PROFESIONAL`=DPR.`ID`  | 		INNER JOIN `CLI_DATOS_PROFESIONALES` as DPR on TPR.`ID_DATOS_PROFESIONAL`=DPR.`ID`  | ||
| + | |||
		where TPR.`C_ANI`=PAR_C_ANI;  | 		where TPR.`C_ANI`=PAR_C_ANI;  | ||
| + | |||
| + | |||
	declare CONTINUE HANDLER FOR NOT FOUND set VAR_NO_HAY=TRUE;  | 	declare CONTINUE HANDLER FOR NOT FOUND set VAR_NO_HAY=TRUE;  | ||
	set VAR_B_ES_PROFESIONAL=false;  | 	set VAR_B_ES_PROFESIONAL=false;  | ||
| + | |||
	set VAR_ID_DATOS=NULL;  | 	set VAR_ID_DATOS=NULL;  | ||
| + | |||
	set VAR_C_CIP='';  | 	set VAR_C_CIP='';  | ||
| + | |||
	set VAR_C_NOMBRE='';  | 	set VAR_C_NOMBRE='';  | ||
| + | |||
	set VAR_C_APELLIDO1='';  | 	set VAR_C_APELLIDO1='';  | ||
| + | |||
	set VAR_C_APELLIDO2='';  | 	set VAR_C_APELLIDO2='';  | ||
| + | |||
	set VAR_C_PROGRAMA='';  | 	set VAR_C_PROGRAMA='';  | ||
| + | |||
	set VAR_D_FECHA_INCLUSION='';  | 	set VAR_D_FECHA_INCLUSION='';  | ||
| + | |||
	set VAR_D_FECHA_ALTA='';  | 	set VAR_D_FECHA_ALTA='';  | ||
| + | |||
	set VAR_C_RELACION_PACIENTE='';  | 	set VAR_C_RELACION_PACIENTE='';  | ||
| + | |||
	set VAR_E_DEST_TRANSFER=0;  | 	set VAR_E_DEST_TRANSFER=0;  | ||
| + | |||
	set VAR_E_CODI=0;  | 	set VAR_E_CODI=0;  | ||
| + | |||
	set VAR_ES_DESVIADA=PAR_B_ES_DESVIADA;  | 	set VAR_ES_DESVIADA=PAR_B_ES_DESVIADA;  | ||
| + | |||
	set VAR_C_VDN=PAR_C_VDN;  | 	set VAR_C_VDN=PAR_C_VDN;  | ||
| + | 	set VAR_NO_HAY=FALSE;  | ||
| − | |||
	set VAR_ID_SEGMENTO=0;  | 	set VAR_ID_SEGMENTO=0;  | ||
| + | |||
	open SQL_SEGMENTOS;  | 	open SQL_SEGMENTOS;  | ||
| + | |||
	fetch SQL_SEGMENTOS into VAR_ID_SEGMENTO;  | 	fetch SQL_SEGMENTOS into VAR_ID_SEGMENTO;  | ||
| + | |||
	close SQL_SEGMENTOS;  | 	close SQL_SEGMENTOS;  | ||
| Línea 85: | Línea 148: | ||
	set VAR_NO_HAY=FALSE;  | 	set VAR_NO_HAY=FALSE;  | ||
| + | |||
	set VAR_ID_DATOS=0;  | 	set VAR_ID_DATOS=0;  | ||
| + | |||
	open SQL_PACIENTES;  | 	open SQL_PACIENTES;  | ||
| + | |||
	fetch SQL_PACIENTES into VAR_ID_DATOS,  | 	fetch SQL_PACIENTES into VAR_ID_DATOS,  | ||
| − | + | ||
| + | 	VAR_E_CODI;  | ||
| + | |||
	close SQL_PACIENTES;  | 	close SQL_PACIENTES;  | ||
| + | |||
| + | |||
	if VAR_NO_HAY  | 	if VAR_NO_HAY  | ||
| + | |||
	then  | 	then  | ||
		set VAR_B_ES_PROFESIONAL=true;  | 		set VAR_B_ES_PROFESIONAL=true;  | ||
| + | |||
		set VAR_NO_HAY=FALSE;	  | 		set VAR_NO_HAY=FALSE;	  | ||
| + | |||
		set VAR_ID_DATOS=0;  | 		set VAR_ID_DATOS=0;  | ||
| + | |||
		open SQL_PROFESIONALES;  | 		open SQL_PROFESIONALES;  | ||
| + | |||
		fetch SQL_PROFESIONALES into VAR_ID_DATOS,    | 		fetch SQL_PROFESIONALES into VAR_ID_DATOS,    | ||
| + | |||
						VAR_E_CODI,    | 						VAR_E_CODI,    | ||
| + | |||
						VAR_C_NOMBRE,    | 						VAR_C_NOMBRE,    | ||
| + | |||
						VAR_C_APELLIDO1,    | 						VAR_C_APELLIDO1,    | ||
| + | |||
						VAR_C_APELLIDO2,    | 						VAR_C_APELLIDO2,    | ||
| + | |||
						VAR_C_RELACION_PACIENTE;  | 						VAR_C_RELACION_PACIENTE;  | ||
		close SQL_PROFESIONALES;  | 		close SQL_PROFESIONALES;  | ||
| + | |||
		if VAR_NO_HAY  | 		if VAR_NO_HAY  | ||
| + | |||
		then  | 		then  | ||
			set VAR_B_ES_PROFESIONAL=true;  | 			set VAR_B_ES_PROFESIONAL=true;  | ||
| + | |||
			set VAR_ID_DATOS=NULL;  | 			set VAR_ID_DATOS=NULL;  | ||
| + | |||
			set VAR_C_CIP='';  | 			set VAR_C_CIP='';  | ||
| + | |||
			set VAR_C_NOMBRE='';  | 			set VAR_C_NOMBRE='';  | ||
| + | |||
			set VAR_C_APELLIDO1='';  | 			set VAR_C_APELLIDO1='';  | ||
| + | |||
			set VAR_C_APELLIDO2='';  | 			set VAR_C_APELLIDO2='';  | ||
| + | |||
			set VAR_C_PROGRAMA='';  | 			set VAR_C_PROGRAMA='';  | ||
| + | |||
			set VAR_D_FECHA_INCLUSION='';  | 			set VAR_D_FECHA_INCLUSION='';  | ||
| + | |||
			set VAR_D_FECHA_ALTA='';  | 			set VAR_D_FECHA_ALTA='';  | ||
| + | |||
			set VAR_C_RELACION_PACIENTE='';  | 			set VAR_C_RELACION_PACIENTE='';  | ||
| + | |||
			set VAR_E_DEST_TRANSFER=0;  | 			set VAR_E_DEST_TRANSFER=0;  | ||
| + | |||
			set VAR_E_CODI=0;  | 			set VAR_E_CODI=0;  | ||
| + | |||
		end if;  | 		end if;  | ||
| + | |||
	end if;  | 	end if;  | ||
| + | |||
| + | |||
	insert into `CLI_SEGMENTOS`  | 	insert into `CLI_SEGMENTOS`  | ||
| + | |||
	(  | 	(  | ||
		`ID`,  | 		`ID`,  | ||
| + | |||
		`B_ES_PROFESIONAL`,  | 		`B_ES_PROFESIONAL`,  | ||
| + | |||
		`ID_DATOS`,  | 		`ID_DATOS`,  | ||
| + | |||
		`C_CIP`,  | 		`C_CIP`,  | ||
| + | |||
		`C_NOMBRE`,  | 		`C_NOMBRE`,  | ||
| + | |||
		`C_APELLIDO1`,  | 		`C_APELLIDO1`,  | ||
| + | |||
		`C_APELLIDO2`,  | 		`C_APELLIDO2`,  | ||
| + | |||
		`C_PROGRAMA`,  | 		`C_PROGRAMA`,  | ||
| + | |||
		`D_FECHA_INCLUSION`,  | 		`D_FECHA_INCLUSION`,  | ||
| + | |||
		`D_FECHA_ALTA`,  | 		`D_FECHA_ALTA`,  | ||
| + | |||
		`C_RELACION_PACIENTE`,  | 		`C_RELACION_PACIENTE`,  | ||
| + | |||
		`E_DEST_TRANSFER`,  | 		`E_DEST_TRANSFER`,  | ||
| + | |||
		`E_CODI`,  | 		`E_CODI`,  | ||
| + | |||
		`B_ES_DESVIADA`,  | 		`B_ES_DESVIADA`,  | ||
| + | |||
		`C_VDN`  | 		`C_VDN`  | ||
	)  | 	)  | ||
| + | |||
| + | |||
	values  | 	values  | ||
| + | |||
| + | |||
	(  | 	(  | ||
		VAR_ID_SEGMENTO,  | 		VAR_ID_SEGMENTO,  | ||
| + | |||
		VAR_B_ES_PROFESIONAL,  | 		VAR_B_ES_PROFESIONAL,  | ||
| + | |||
		VAR_ID_DATOS,  | 		VAR_ID_DATOS,  | ||
| + | |||
		VAR_C_CIP,  | 		VAR_C_CIP,  | ||
| + | |||
		VAR_C_NOMBRE,  | 		VAR_C_NOMBRE,  | ||
| + | |||
		VAR_C_APELLIDO1,  | 		VAR_C_APELLIDO1,  | ||
| + | |||
		VAR_C_APELLIDO2,  | 		VAR_C_APELLIDO2,  | ||
| + | |||
		VAR_C_PROGRAMA,    | 		VAR_C_PROGRAMA,    | ||
| + | |||
		VAR_D_FECHA_INCLUSION,  | 		VAR_D_FECHA_INCLUSION,  | ||
| + | |||
		VAR_D_FECHA_ALTA,  | 		VAR_D_FECHA_ALTA,  | ||
| + | |||
		VAR_C_RELACION_PACIENTE,  | 		VAR_C_RELACION_PACIENTE,  | ||
| + | |||
		VAR_E_DEST_TRANSFER,  | 		VAR_E_DEST_TRANSFER,  | ||
| + | |||
		VAR_E_CODI,  | 		VAR_E_CODI,  | ||
| + | |||
		VAR_ES_DESVIADA,    | 		VAR_ES_DESVIADA,    | ||
| + | |||
		VAR_C_VDN    | 		VAR_C_VDN    | ||
	);  | 	);  | ||
| + | |||
	return 'OK';  | 	return 'OK';  | ||
| + | |||
end$$  | end$$  | ||
| − | |||
DELIMITER ;  | DELIMITER ;  | ||
Revisión actual del 14:31 11 nov 2021
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 ;