Untitled

mail@pastecode.io avatar
unknown
sql
a year ago
26 kB
1
Indexable
Never
--creacion procedure para la regla RAPM003
CREATE OR REPLACE PROCEDURE 
`rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.TST_RAPM003` (fec_periodo date)
BEGIN
delete `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos` 
WHERE id_regla='RAPM003';
-- 1 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que NO cumplen la regla pero estan en ind_positivo=SI '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
with padron as(SELECT DNI,APELL_MAT FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`
			  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`)
        AND tipo_documento = 1
        --and  dni='03113854'
        )
,tabla as (SELECT id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
      WHERE fec_periodo_corte=fec_periodo  and fec_periodo_corte>"2023-01-01"
       and ind_positivo='SI'       
      and id_regla='RAPM003'
      and nom_fuente in ('ACSELX','SAS','RIMAC SALUD','ZONA PRIVADA')
      --and num_documento_core='03113854'
)
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen
from  padron p right join tabla t
on p.dni = t.num_documento_core
where upper(trim(t.des_valor_origen)) <> upper(trim(p.APELL_MAT))
);
-- 2 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que SI cumplen la regla pero estan en ind_positivo=NO '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
with padron as(SELECT DNI,APELL_MAT FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`
			  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`)
        AND tipo_documento = 1
        --and  dni='03113854'
        )
,tabla as (SELECT id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
      WHERE fec_periodo_corte=fec_periodo  and fec_periodo_corte>"2023-01-01"
       and ind_positivo='NO'       
      and id_regla='RAPM003'
      and nom_fuente in ('ACSELX','SAS','RIMAC SALUD','ZONA PRIVADA')
      --and num_documento_core='03113854'
)
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen
from  padron p right join tabla t
on p.dni = t.num_documento_core
where upper(trim(t.des_valor_origen)) = upper(trim(p.APELL_MAT))
);
end;
--creacion procedure para la regla RAPP003
CREATE OR REPLACE PROCEDURE 
`rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.TST_RAPP003` (fec_periodo date)
BEGIN
delete `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos` 
WHERE id_regla='RAPP003';
-- 1 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que NO cumplen la regla pero estan en ind_positivo=SI '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
with padron as(SELECT DNI,APELL_PAT FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`
			  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`)
        AND tipo_documento = 1
        --and  dni='03113854'
        )
,tabla as (SELECT id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen
FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
      WHERE fec_periodo_corte=fec_periodo and fec_periodo_corte>"2023-01-01"
       and ind_positivo='SI'       
      and id_regla='RAPP003'
      and nom_fuente in ('ACSELX','SAS','RIMAC SALUD','ZONA PRIVADA')
      --and num_documento_core='03113854'
)
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen
from  padron p right join tabla t
on p.dni = t.num_documento_core
where upper(trim(t.des_valor_origen)) <> upper(trim(p.APELL_PAT))
);
-- 2 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que SI cumplen la regla pero estan en ind_positivo=NO '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
with padron as(SELECT DNI,APELL_PAT FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`
			  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`)
        AND tipo_documento = 1
        --and  dni='03113854'
        )
,tabla as (SELECT id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen
FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
      WHERE fec_periodo_corte=fec_periodo and fec_periodo_corte>"2023-01-01"
       and ind_positivo='NO'       
      and id_regla='RAPP003'
      and nom_fuente in ('ACSELX','SAS','RIMAC SALUD','ZONA PRIVADA')
      --and num_documento_core='03113854'
)
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen
from  padron p right join tabla t
on p.dni = t.num_documento_core
where upper(trim(t.des_valor_origen)) = upper(trim(p.APELL_PAT))
);
end;
--creacion procedure para la regla RDOC009
CREATE OR REPLACE PROCEDURE 
`rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.TST_RDOC009` (fec_periodo date)
BEGIN
delete `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos` 
WHERE id_regla='RDOC009';
-- 1 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
	select 
	id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
	'Registros que NO cumplen la regla pero que estan en ind_positivo=SI' descripcion_observacion 
	FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
	WHERE fec_periodo_corte=fec_periodo and fec_periodo_corte>"2023-01-01"
	and ind_positivo='SI'       
	and id_regla='RDOC009'
	and tip_documento_core='4'
	and nom_fuente in('ACSELX','SAS')
	and  NOT REGEXP_CONTAINS(trim(des_valor_origen), r'^[0-9a-zA-Z]{9,12}$')
);
-- 2 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que SI cumplen la regla pero estan en ind_positivo=NO '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
	select 
	id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
	'Registros que SI cumplen la regla pero que estan en ind_positivo=NO' descripcion_observacion 
	FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
	WHERE fec_periodo_corte=fec_periodo and fec_periodo_corte>"2023-01-01"
	and ind_positivo='NO'       
	and id_regla='RDOC009'
	and tip_documento_core='4'
	and nom_fuente in('ACSELX','SAS')
	and  REGEXP_CONTAINS(trim(des_valor_origen), r'^[0-9a-zA-Z]{9,12}$')
);
end;
--creacion procedure para la regla REML005
CREATE OR REPLACE PROCEDURE 
`rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.TST_REML005` (fec_periodo date)
BEGIN
delete `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos` 
WHERE id_regla='REML005';
-- 1 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
	select 
	id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
	'Registros que NO cumplen la regla pero que estan en ind_positivo=SI' descripcion_observacion 
	from `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` ---TABLESAMPLE SYSTEM (10 PERCENT)
	where fec_periodo_corte=fec_periodo  and fec_periodo_corte>"2023-01-01"
	and id_regla='REML005'
	and ind_positivo ='SI'
	and nom_fuente= 'RIMAC SALUD'
	and NOT REGEXP_CONTAINS(trim(des_valor_origen),r'^[a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+\.)+([a-zA-Z0-9]{2,})$') = TRUE
);
-- 2 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que SI cumplen la regla pero estan en ind_positivo=NO '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
select 
	id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
	'Registros que SI cumplen la regla pero que estan en ind_positivo=NO' descripcion_observacion 
	from `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` ---TABLESAMPLE SYSTEM (10 PERCENT)
	where fec_periodo_corte=fec_periodo  and fec_periodo_corte>"2023-01-01"
	and id_regla='REML005'
	and ind_positivo ='NO'
	and nom_fuente= 'RIMAC SALUD'
	and  REGEXP_CONTAINS(trim(des_valor_origen),r'^[a-zA-Z0-9_.-]+@([a-zA-Z0-9-]+\.)+([a-zA-Z0-9]{2,})$') = TRUE
);
end;
--creacion procedure para la regla RFNA004
CREATE OR REPLACE PROCEDURE 
`rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.TST_RFNA004` (fec_periodo date)
BEGIN
delete `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos` 
WHERE id_regla='RFNA004';
-- 1 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que NO cumplen la regla pero estan en ind_positivo=SI '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
	with padron as(SELECT DNI,fec_nacimiento FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`
			  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`)
        AND tipo_documento = 1
        and  dni not in ('33640102','17584290','08312618')
        )
,tabla as (SELECT * FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
      WHERE fec_periodo_corte=fec_periodo  and fec_periodo_corte>"2023-01-01"
       and ind_positivo='SI'       
      and id_regla='RFNA004'
      and nom_fuente in('ACSELX','SAS','RIMAC SALUD','ZONA PRIVADA')
      --and num_documento_core='03113854'
)
select 
	t.nom_fuente,t.ind_positivo, p.dni,t.num_documento_mdm,num_documento_core, p.fec_nacimiento,t.des_valor_origen
	from  padron p right join tabla t
	on p.dni = t.num_documento_core
	where date(p.fec_nacimiento)<>date(t.des_valor_origen)
);
-- 2 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que SI cumplen la regla pero estan en ind_positivo=NO '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
with padron as(SELECT DNI,fec_nacimiento FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`
			  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`)
        AND tipo_documento = 1
        and  dni not in ('33640102','17584290','08312618')
        )
,tabla as (SELECT * FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
      WHERE fec_periodo_corte=fec_periodo  and fec_periodo_corte>"2023-01-01"
       and ind_positivo='NO'       
      and id_regla='RFNA004'
      and nom_fuente in('ACSELX','SAS','RIMAC SALUD','ZONA PRIVADA')
      --and num_documento_core='03113854'
)
select 
	t.nom_fuente,t.ind_positivo, p.dni,t.num_documento_mdm,num_documento_core, p.fec_nacimiento,t.des_valor_origen
	from  padron p right join tabla t
	on p.dni = t.num_documento_core
	where date(p.fec_nacimiento)=date(t.des_valor_origen)
);
end;
--creacion procedure para la regla RIDN010
CREATE OR REPLACE PROCEDURE 
`rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.TST_RIDN010` (fec_periodo date)
BEGIN
delete `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos` 
WHERE id_regla='RIDN010';
-- 1 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que NO cumplen la regla pero estan en ind_positivo=SI '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso,
fec_periodo_corte
from(
with padron as(SELECT DNI,NOMBRES FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`
			  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`)
        AND tipo_documento = 1
        --and  dni='03113854'
        )
,tabla as (SELECT id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,fec_periodo_corte
FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
      WHERE fec_periodo_corte=fec_periodo and fec_periodo_corte>"2023-01-01"
       and ind_positivo='SI'       
      and id_regla='RNOM004'
      and nom_fuente in ('ACSELX','SAS','RIMAC SALUD','ZONA PRIVADA')
      --and num_documento_core='03113854'
)
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen,
t.fec_periodo_corte
from  padron p right join tabla t
on p.dni = t.num_documento_core
where upper(trim(t.des_valor_origen)) <> upper(trim(p.NOMBRES))
);
-- 2 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que SI cumplen la regla pero estan en ind_positivo=NO '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso,
fec_periodo_corte
from(
with padron as(SELECT DNI,NOMBRES FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`
			  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`)
        AND tipo_documento = 1
        --and  dni='03113854'
        )
,tabla as (SELECT id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,fec_periodo_corte
FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
      WHERE fec_periodo_corte=fec_periodo and fec_periodo_corte>"2023-01-01"
       and ind_positivo='NO'       
      and id_regla='RNOM004'
      and nom_fuente in ('ACSELX','SAS','RIMAC SALUD','ZONA PRIVADA')
      --and num_documento_core='03113854'
)
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen,
t.fec_periodo_corte
from  padron p right join tabla t
on p.dni = t.num_documento_core
where upper(trim(t.des_valor_origen)) = upper(trim(p.NOMBRES))
);
end;
--creacion procedure para la regla RLPD002
CREATE OR REPLACE PROCEDURE 
`rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.TST_RLPD002` (fec_periodo date)
BEGIN
delete `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos` 
WHERE id_regla='RLPD002';
-- 1 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen,
t.descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from (
	SELECT 
	id_regla,des_regla,nom_fuente,
		tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
		'Registros que NO cumplen la regla pero que estan en ind_positivo=SI' descripcion_observacion 
	FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
	WHERE fec_periodo_corte=fec_periodo and fec_periodo_corte>"2023-01-01"
	and ind_positivo='SI'       
	and id_regla='RLPD002'
	and nom_fuente in('SAS')
	and (des_valor_origen  not in ('S', 'N') or des_valor_origen is  null)
	) t
;
-- 2 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen,
t.descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from (
	SELECT 
	id_regla,des_regla,nom_fuente,
		tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
		'Registros que SI cumplen la regla pero que estan en ind_positivo=NO' descripcion_observacion 
	FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
	WHERE fec_periodo_corte=fec_periodo and fec_periodo_corte>"2023-01-01"
	and ind_positivo='NO'       
	and id_regla='RLPD002'
	and nom_fuente in('SAS')
	and (des_valor_origen  in ('S', 'N') or des_valor_origen is not  null)
	) t
;
end;
--creacion procedure para la regla RNOM004
CREATE OR REPLACE PROCEDURE 
`rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.TST_RNOM004` (fec_periodo date)
BEGIN
delete `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos` 
WHERE id_regla='RNOM004';
-- 1 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que NO cumplen la regla pero estan en ind_positivo=SI '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
with padron as(SELECT DNI,NOMBRES FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`
			  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`)
        AND tipo_documento = 1
        --and  dni='03113854'
        )
,tabla as (SELECT id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
      WHERE fec_periodo_corte=fec_periodo  and fec_periodo_corte>"2023-01-01"
       and ind_positivo='SI'       
      and id_regla='RNOM004'
      and nom_fuente in ('ACSELX','SAS','RIMAC SALUD','ZONA PRIVADA')
      --and num_documento_core='03113854'
)
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen
from  padron p right join tabla t
on p.dni = t.num_documento_core
where upper(trim(t.des_valor_origen)) <> upper(trim(p.NOMBRES))
);
-- 2 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
id_regla,
des_regla,
nom_fuente,
tip_documento_core,
num_documento_core,
ind_positivo,
des_valor_origen,
'Registros que SI cumplen la regla pero estan en ind_positivo=NO '  as descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from(
with padron as(SELECT DNI,NOMBRES FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`
			  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `rs-nprd-dlk-dd-rwz-a406.ext__padron.persona_padron_electoral`)
        AND tipo_documento = 1
        --and  dni='03113854'
        )
,tabla as (SELECT id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
      WHERE fec_periodo_corte=fec_periodo  and fec_periodo_corte>"2023-01-01"
       and ind_positivo='NO'       
      and id_regla='RNOM004'
      and nom_fuente in ('ACSELX','SAS','RIMAC SALUD','ZONA PRIVADA')
      --and num_documento_core='03113854'
)
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen
from  padron p right join tabla t
on p.dni = t.num_documento_core
where upper(trim(t.des_valor_origen)) = upper(trim(p.NOMBRES))
);
end;
--creacion procedure para la regla RPCC001
CREATE OR REPLACE PROCEDURE 
`rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.TST_RPCC001` (fec_periodo date)
BEGIN
delete `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos` 
WHERE id_regla='RPCC001';
-- 1 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen,
t.descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from (
	SELECT 
	id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
	'Registros que SI cumplen la regla pero que estan en ind_positivo=NO' descripcion_observacion 
	FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona`  --TABLESAMPLE SYSTEM (10 PERCENT)
	WHERE fec_periodo_corte=fec_periodo  and fec_periodo_corte>"2023-01-01"
	and ind_positivo='NO'       
	and id_regla='RPCC001'
	and nom_fuente in('SAS')
	and (des_valor_origen ='S' or des_valor_origen ='N'or des_valor_origen is null)
	) t
;
-- 2 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen,
t.descripcion_observacion,
CURRENT_TIMESTAMP  fec_proceso
from (
	SELECT 
	id_regla,des_regla,nom_fuente,
	tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
	'Registros que NO cumplen la regla pero que estan en ind_positivo=SI' descripcion_observacion 
	FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona` --TABLESAMPLE SYSTEM (10 PERCENT)
	WHERE fec_periodo_corte=fec_periodo  and fec_periodo_corte>"2023-01-01"
	and ind_positivo='SI'       
	and id_regla='RPCC001'
	and nom_fuente in('SAS')
	and (des_valor_origen  not in ('S', 'N') and des_valor_origen  is not null)
	) t
;
end;
--creacion procedure para la regla RTEL003
CREATE OR REPLACE PROCEDURE 
`rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.TST_RTEL003` (fec_periodo date)
BEGIN
delete `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos` 
WHERE id_regla='RTEL003';
-- 1 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen,
t.descripcion_observacion,
CURRENT_TIMESTAMP() as  fec_proceso
from (
    SELECT id_regla,des_regla,nom_fuente,
    tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
    'Nros de Celulares que cumplen la regla pero que estan en ind_positivo=NO' descripcion_observacion
    FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona`
    WHERE fec_periodo_corte=fec_periodo and fec_periodo_corte>"2023-01-01"
    and id_regla='RTEL003'
    and nom_fuente in ('ACSELX','ACSELE')
    and ind_positivo='NO'
    and  REGEXP_CONTAINS(TRIM(des_valor_origen),R'^[9][0-9]{8}$')
    ) t
;
-- 2 --
insert into  `rs-nprd-dlk-dd-trsv-ede4.trsv_procesos_calidad.testing_gobierno_datos`
select 
t.id_regla,
t.des_regla,
t.nom_fuente,
t.tip_documento_core,
t.num_documento_core,
t.ind_positivo,
t.des_valor_origen,
t.descripcion_observacion,
CURRENT_TIMESTAMP() as  fec_proceso
from (
    SELECT id_regla,des_regla,nom_fuente,
    tip_documento_core, num_documento_core, ind_positivo, des_valor_origen,
    'Nros de Celulares que NO cumplen la regla pero que estan en ind_positivo=SI' descripcion_observacion
    FROM `rs-nprd-dlk-dd-trsv-ede4.trv_calidad_modelo_persona.raw_calidad_persona`
    WHERE fec_periodo_corte=fec_periodo and fec_periodo_corte>"2023-01-01"
    and id_regla='RTEL003'
    and nom_fuente in ('ACSELX','ACSELE')
    and ind_positivo='SI'
    and  NOT REGEXP_CONTAINS(TRIM(des_valor_origen),R'^[9][0-9]{8}$')
    ) t
;
end;