Diferencia entre revisiones de «BD.FUNC.ACD FUNC CLI SEGMENTOS CREAR»

De VIVAitwiki
Ir a la navegaciónIr a la búsqueda
(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
+
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_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;
+
 
 +
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 ;