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 15: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 ;