personas_gd_proc_RIMAC_SALUD_AFILIADO_neg

mail@pastecode.io avatar
unknown
sql
a year ago
148 kB
3
Indexable
Never
 

DECLARE ID_REGLA, NOMBRE_nom_tabla, NOMBRE_nom_campo STRING;
DECLARE FLAG_CLIENTE STRING;

DECLARE FECHA_REFERENCIA DATE;
DECLARE NOMBRE_nom_fuente STRING;
DECLARE TIPO_periodicidad STRING;

SET FECHA_REFERENCIA = DATE("{fecha_corte}");
SET NOMBRE_nom_fuente = "RIMAC SALUD";
SET TIPO_periodicidad = 'M';

DELETE FROM {project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos
WHERE nom_fuente = NOMBRE_nom_fuente AND fec_periodo_corte = FECHA_REFERENCIA AND ind_cliente="{FLAG_CLIENTE}";


----------------------------------------------------------------------------------------------------------------
---------------------------------------------------------CLIENTES-----------------------------------------------
----------------------------------------------------------------------------------------------------------------
SET FLAG_CLIENTE = "{FLAG_CLIENTE}";


--------------------------------------------------------------------------------------------
-----------------------------------TELEFONOS------------------------------------------------
--------------------------------------------------------------------------------------------

----------------------------------------------------------------
-----------------------------RTEL001----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RTEL001';
SET NOMBRE_nom_tabla = 'TELEFONO_ENTIDAD';
SET NOMBRE_nom_campo = 'NRO_FONO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
		SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
			,AFIL.NRO_FONO
			,CLIE.des_segmentacion_growth AS nom_segmento
			,CLIE.ind_mayor_edad
			,AFIL.COD_USUARIO_UPDATE AS USUARIO
			,AFIL.des_valor_fallido
		FROM -- nom_tabla principal
			(SELECT 
				T.FEC_CREACION,T.COD_AFILIADO
				,T.NRO_FONO
				,T.COD_USUARIO_UPDATE
				,T.NRO_FONO AS des_valor_fallido
			FROM 
				`{project_id_raw}.bdrsa__app_eps.TELEFONO_ENTIDAD` AS T 			 
				WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
				AND NRO_FONO IS NOT NULL) AS AFIL
		INNER JOIN --cruce con clientes
			(SELECT cod_acselx
				,coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth
				,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 THEN "SI" ELSE "NO" END AS ind_mayor_edad
			FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
			WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES
	INNER JOIN	
	-- NRO_FONO <= 3 repetidos
		(SELECT 
			nom_segmento
			,ind_mayor_edad
			,NRO_FONO AS NRO_FONO_NO_OK
			,COUNT(*) AS NRO_REPETIDOS
		  FROM (
			  SELECT
				AFIL.COD_AFILIADO
				,AFIL.NRO_FONO
				,CLIE.des_segmentacion_growth AS nom_segmento
				,CLIE.ind_mayor_edad
				,COUNT(*) AS NRO_REGISTRO
				FROM -- nom_tabla principal
				  (SELECT 
					T.COD_AFILIADO
					,T.NRO_FONO
					FROM `{project_id_raw}.bdrsa__app_eps.TELEFONO_ENTIDAD` AS T 		
					WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
					AND NRO_FONO IS NOT NULL) AS AFIL
			  INNER JOIN --cruce con clientes
					  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
						THEN "SI" ELSE "NO" END AS ind_mayor_edad
					  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
					  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
				ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64)
			  GROUP BY
			  AFIL.COD_AFILIADO, AFIL.NRO_FONO, CLIE.des_segmentacion_growth, CLIE.ind_mayor_edad) 
		GROUP BY
		nom_segmento, ind_mayor_edad, NRO_FONO
		HAVING COUNT(*)>3) AS RES_NO_OK
	ON RES.nom_segmento = RES_NO_OK.nom_segmento AND RES.ind_mayor_edad = RES_NO_OK.ind_mayor_edad AND RES.NRO_FONO = RES_NO_OK.NRO_FONO_NO_OK;

----------------------------------------------------------------
-----------------------------RTEL002----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RTEL002';
SET NOMBRE_nom_tabla = 'TELEFONO_ENTIDAD';
SET NOMBRE_nom_campo = 'NRO_FONO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,'NO VIGENTE' des_detalle_complemento
  ,NULL
  ,NULL

FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT 
					COD_AFILIADO, FEC_CREACION
					,CAST(T.FEC_CREACION AS STRING) AS des_valor_fallido
					, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.TELEFONO_ENTIDAD` AS T 						
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						AND T.NRO_FONO IS NOT NULL
						AND DATE_DIFF(FECHA_REFERENCIA,DATE(T.FEC_CREACION),YEAR)> 1) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
				  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;
	
----------------------------------------------------------------
-----------------------------RTEL003----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RTEL003';
SET NOMBRE_nom_tabla = 'TELEFONO_ENTIDAD';
SET NOMBRE_nom_campo = 'NRO_FONO';


INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT 
					  COD_AFILIADO, FEC_CREACION
					  ,T.COD_USUARIO_UPDATE
					  ,CAST(T.NRO_FONO AS STRING) AS des_valor_fallido
					FROM 
						`{project_id_raw}.bdrsa__app_eps.TELEFONO_ENTIDAD` AS T 						
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						AND T.NRO_FONO IS NOT NULL
						AND SAFE_CAST(T.NRO_FONO AS INT64) IS NULL) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
				  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;
	

----------------------------------------------------------------
-----------------------------RTEL004----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RTEL004';
SET NOMBRE_nom_tabla = 'TELEFONO_ENTIDAD';
SET NOMBRE_nom_campo = 'NRO_FONO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION,NRO_FONO AS des_valor_fallido,T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.TELEFONO_ENTIDAD` AS T 						
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						AND T.NRO_FONO IS NOT NULL
						AND LENGTH(TRIM(SAFE_CAST(T.NRO_FONO AS STRING))) <> 9) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
				  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RTEL005----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RTEL005';
SET NOMBRE_nom_tabla = 'TELEFONO_ENTIDAD';
SET NOMBRE_nom_campo = 'IDENTIDAD';


INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION,NRO_FONO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.TELEFONO_ENTIDAD` AS T 						
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						AND T.NRO_FONO IS NOT NULL
						AND NOT (SAFE_CAST(T.NRO_FONO AS STRING) LIKE '9%') ) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
				  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES
;


----------------------------------------------------------------
-----------------------------RTEL006----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RTEL006';
SET NOMBRE_nom_tabla = 'TELEFONO_ENTIDAD';
SET NOMBRE_nom_campo = 'NRO_FONO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

FROM (
  SELECT 
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
	  (SELECT COD_AFILIADO, FEC_CREACION,NRO_FONO AS des_valor_fallido, T.COD_USUARIO_UPDATE
		FROM `{project_id_raw}.bdrsa__app_eps.TELEFONO_ENTIDAD` AS T 
			WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA and T.NRO_FONO IS NULL) AS AFIL
	  INNER JOIN --cruce con clientes
		  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,(CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
		  THEN "SI" ELSE "NO" END) AS ind_mayor_edad
		  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
		  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


-- ----------------------------------------------------------------
-- -----------------------------RTEL007---------------------------
-- ----------------------------------------------------------------

-- SET ID_REGLA  = 'RTEL007';
-- SET NOMBRE_nom_tabla = 'TELEFONO_ENTIDAD';
-- SET NOMBRE_nom_campo = 'NRO_FONO';

-- INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
-- SELECT
--   ID_REGLA AS id_regla
--   ,FECHA_REFERENCIA AS fec_periodo_corte
--   ,RES.fecha_de_creacion AS fec_creacion
--   ,NOMBRE_nom_fuente AS nom_fuente
--   ,NOMBRE_nom_tabla AS nom_tabla
--   ,NOMBRE_nom_campo AS nom_campo
   
--   ,FLAG_CLIENTE AS ind_cliente
--   ,RES.nom_segmento AS nom_segmento
--   ,RES.ind_mayor_edad AS ind_mayor_edad
--   ,RES.USUARIO AS nom_usuario_modificacion
--   ,NULL AS nom_unidad_organizativa
--   ,NULL codexterno
--   ,NULL AS id_numid
--   ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
--   ,NULL AS id_numero_documento
--   ,NULL AS nom_tipo_documento
--   ,CURRENT_TIMESTAMP() AS fec_ejecucion
--   ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
--   ,NULL AS des_detalle_complemento
--   ,NULL
--   ,NULL

-- FROM (
-- 	  SELECT
-- 	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
-- 	  ,CLIE.des_segmentacion_growth AS nom_segmento
-- 	  ,CLIE.ind_mayor_edad 
-- 	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
-- 	  ,AFIL.des_valor_fallido
-- 	  FROM -- nom_tabla principal
-- 				  (SELECT COD_AFILIADO, FEC_CREACION,NRO_FONO AS des_valor_fallido, T.COD_USUARIO_UPDATE
-- 					FROM 
-- 						`{project_id_raw}.bdrsa__app_eps.TELEFONO_ENTIDAD` AS T 						
-- 						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
-- 						AND T.NRO_FONO IS NOT NULL
-- 						AND (SAFE_CAST(NRO_FONO AS STRING) LIKE '%666666%' OR SAFE_CAST(NRO_FONO AS STRING) LIKE '%777777%' OR SAFE_CAST(NRO_FONO AS STRING) LIKE '%888888%' OR SAFE_CAST(NRO_FONO AS STRING) LIKE '%999999%' OR SAFE_CAST(NRO_FONO AS STRING) LIKE '%555555%'
-- 							OR SAFE_CAST(NRO_FONO AS STRING) LIKE '%444444%'	OR SAFE_CAST(NRO_FONO AS STRING) LIKE '%333333%'	OR SAFE_CAST(NRO_FONO AS STRING) LIKE '%222222%'	OR SAFE_CAST(NRO_FONO AS STRING) LIKE '%111111%'	OR SAFE_CAST(NRO_FONO AS STRING) LIKE '%000000%')) AS AFIL
-- 	  INNER JOIN --cruce con clientes
-- 				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
-- 				  THEN "SI" ELSE "NO" END AS ind_mayor_edad
-- 				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
-- 				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
-- 		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


-- ----------------------------------------------------------------
-- -----------------------------RTEL008----------------------------
-- ----------------------------------------------------------------
-- SET ID_REGLA  = 'RTEL008';
-- SET NOMBRE_nom_tabla = 'TELEFONO_ENTIDAD';
-- SET NOMBRE_nom_campo = 'NRO_FONO';

-- INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
-- SELECT
--   ID_REGLA AS id_regla
--   ,FECHA_REFERENCIA AS fec_periodo_corte
--   ,RES.fecha_de_creacion AS fec_creacion
--   ,NOMBRE_nom_fuente AS nom_fuente
--   ,NOMBRE_nom_tabla AS nom_tabla
--   ,NOMBRE_nom_campo AS nom_campo
   
--   ,FLAG_CLIENTE AS ind_cliente
--   ,RES.nom_segmento AS nom_segmento
--   ,RES.ind_mayor_edad AS ind_mayor_edad
--   ,RES.USUARIO AS nom_usuario_modificacion
--   ,NULL AS nom_unidad_organizativa
--   ,NULL codexterno
--   ,NULL AS id_numid
--   ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
--   ,NULL AS id_numero_documento
--   ,NULL AS nom_tipo_documento
--   ,CURRENT_TIMESTAMP() AS fec_ejecucion
--   ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
--   ,'CELULAR' AS des_detalle_complemento
--   ,NULL
--   ,NULL

-- FROM (
-- 	  SELECT
-- 	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
-- 	  ,CLIE.des_segmentacion_growth AS nom_segmento
-- 	  ,CLIE.ind_mayor_edad 
-- 	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
-- 	  ,AFIL.des_valor_fallido
-- 	  FROM -- nom_tabla principal
-- 				  (SELECT COD_AFILIADO, FEC_CREACION,NRO_FONO AS des_valor_fallido, T.COD_USUARIO_UPDATE
-- 					FROM 
-- 						`{project_id_raw}.bdrsa__app_eps.TELEFONO_ENTIDAD` AS T 						
-- 						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
-- 						AND T.NRO_FONO IS NOT NULL
-- 						AND TRIM(SAFE_CAST(NRO_FONO AS STRING)) IN ('989898989', '987654321', '99999888')) AS AFIL
-- 	  INNER JOIN --cruce con clientes
-- 				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, (CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
-- 				  THEN "SI" ELSE "NO" END) AS ind_mayor_edad
-- 				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
-- 				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
-- 		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


--------------------------------------------------------------------------------------------
-----------------------------------CORREO_ELECTRONICO----------------------------------------------------
--------------------------------------------------------------------------------------------


-- ----------------------------------------------------------------
-- -----------------------------REML001----------------------------
-- ----------------------------------------------------------------
-- SET ID_REGLA  = 'REML001';
-- SET NOMBRE_nom_tabla = 'AFILIADO';
-- SET NOMBRE_nom_campo = 'CORREO_ELECTRONICO';

-- INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
-- SELECT
--   ID_REGLA AS id_regla
--   ,FECHA_REFERENCIA AS fec_periodo_corte
--   ,RES.fecha_de_creacion AS fec_creacion
--   ,NOMBRE_nom_fuente AS nom_fuente
--   ,NOMBRE_nom_tabla AS nom_tabla
--   ,NOMBRE_nom_campo AS nom_campo
   
--   ,FLAG_CLIENTE AS ind_cliente
--   ,RES.nom_segmento AS nom_segmento
--   ,RES.ind_mayor_edad AS ind_mayor_edad
--   ,RES.USUARIO AS nom_usuario_modificacion
--   ,NULL AS nom_unidad_organizativa
--   ,NULL codexterno
--   ,NULL AS id_numid
--   ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
--   ,NULL AS id_numero_documento
--   ,NULL AS nom_tipo_documento
--   ,CURRENT_TIMESTAMP() AS fec_ejecucion
--   ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
--   ,RES.des_detalle_complemento
--   ,RES.des_valor_nom_campo_fallido_padron
--   ,RES.des_valor_nom_campo_fallido_padron

-- 	FROM (
-- 	  SELECT
-- 	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
-- 	  ,CLIE.des_segmentacion_growth AS nom_segmento
-- 	  ,CLIE.ind_mayor_edad 
-- 	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
-- 	  ,AFIL.des_valor_fallido
-- 	  ,'maestro_rebotes' AS des_valor_nom_campo_fallido_padron
-- 	  ,'CORREO_ELECTRONICO' as des_valor_nom_campo_fallido_padron
-- 	  ,AFIL.des_valor_fallido AS des_detalle_complemento
-- 	  FROM -- nom_tabla principal
-- 			(SELECT T.FEC_CREACION,T.COD_AFILIADO,T.CORREO_ELECTRONICO AS des_valor_fallido, T.COD_USUARIO_UPDATE
-- 				FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
-- 				WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
-- 				AND T.CORREO_ELECTRONICO IS NOT NULL
-- 				AND UPPER(TRIM(T.CORREO_ELECTRONICO)) IN (SELECT UPPER(TRIM(EMAIL)) FROM `{project_id_raw}.de__contactabilidad.maestro_rebotes`)) AS AFIL
-- 	  INNER JOIN --cruce con clientes
-- 				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, 
-- 				  case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
-- 				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
-- 				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
-- 	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


-- ----------------------------------------------------------------
-- -----------------------------REML002----------------------------
-- ----------------------------------------------------------------
-- SET ID_REGLA  = 'REML002';
-- SET NOMBRE_nom_tabla = 'AFILIADO';
-- SET NOMBRE_nom_campo = 'CORREO_ELECTRONICO';

-- INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
-- SELECT
--   ID_REGLA AS id_regla
--   ,FECHA_REFERENCIA AS fec_periodo_corte
--   ,RES.fecha_de_creacion AS fec_creacion
--   ,NOMBRE_nom_fuente AS nom_fuente
--   ,NOMBRE_nom_tabla AS nom_tabla
--   ,NOMBRE_nom_campo AS nom_campo
   
--   ,FLAG_CLIENTE AS ind_cliente
--   ,RES.nom_segmento AS nom_segmento
--   ,RES.ind_mayor_edad AS ind_mayor_edad
--   ,RES.USUARIO AS nom_usuario_modificacion
--   ,NULL AS nom_unidad_organizativa
--   ,NULL codexterno
--   ,NULL AS id_numid
--   ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
--   ,NULL AS id_numero_documento
--   ,NULL AS nom_tipo_documento
--   ,CURRENT_TIMESTAMP() AS fec_ejecucion
--   ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
--   ,RES.des_detalle_complemento
--   ,RES.des_valor_nom_campo_fallido_padron
--   ,RES.des_valor_nom_campo_fallido_padron

-- 	FROM (
-- 	  SELECT
-- 	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
-- 	  ,CLIE.des_segmentacion_growth AS nom_segmento
-- 	  ,CLIE.ind_mayor_edad 
-- 	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
-- 	  ,AFIL.des_valor_fallido
-- 	  ,'maestro_desuscritos' AS des_valor_nom_campo_fallido_padron
-- 	  ,'CORREO_ELECTRONICO' as des_valor_nom_campo_fallido_padron
-- 	  ,AFIL.des_valor_fallido AS des_detalle_complemento
-- 	  FROM -- nom_tabla principal
-- 			(SELECT T.FEC_CREACION,T.COD_AFILIADO,T.CORREO_ELECTRONICO AS des_valor_fallido, T.COD_USUARIO_UPDATE
-- 				FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
-- 				WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
-- 				AND T.CORREO_ELECTRONICO IS NOT NULL
-- 				AND UPPER(TRIM(T.CORREO_ELECTRONICO)) IN (SELECT UPPER(TRIM(EMAIL)) FROM `{project_id_raw}.de__contactabilidad.maestro_desuscritos`))  AS AFIL
-- 	  INNER JOIN --cruce con clientes
-- 				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
-- 				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
-- 				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
-- 	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------REML003----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'REML003';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'CORREO_ELECTRONICO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

 	FROM (
		SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
			,AFIL.CORREO_ELECTRONICO
			,CLIE.des_segmentacion_growth AS nom_segmento
			,CLIE.ind_mayor_edad
			,AFIL.COD_USUARIO_UPDATE AS USUARIO
			,AFIL.des_valor_fallido
		FROM -- nom_tabla principal
			(SELECT 
				T.FEC_CREACION,T.COD_AFILIADO
				,UPPER(TRIM(T.CORREO_ELECTRONICO)) AS CORREO_ELECTRONICO
				,T.COD_USUARIO_UPDATE
				,T.CORREO_ELECTRONICO AS des_valor_fallido
			FROM 
				`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
				WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
				AND T.CORREO_ELECTRONICO IS NOT NULL) AS AFIL
		INNER JOIN --cruce con clientes
			(SELECT cod_acselx
				,coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth
				,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 THEN "SI" ELSE "NO" END AS ind_mayor_edad
			FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
			WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES
	INNER JOIN	
	-- CORREO_ELECTRONICO <= 3 repetidos
		(SELECT 
		nom_segmento
		,ind_mayor_edad
		,CORREO_ELECTRONICO AS CORREO_ELECTRONICO_NO_OK
		,COUNT(*) AS NRO_REPETIDOS
		  FROM (
			  SELECT
			  AFIL.COD_AFILIADO
			  ,AFIL.CORREO_ELECTRONICO
			  ,CLIE.des_segmentacion_growth AS nom_segmento
			  ,CLIE.ind_mayor_edad
			  ,COUNT(*) AS NRO_REGISTRO
				FROM -- nom_tabla principal
					(SELECT T.FEC_CREACION,T.COD_AFILIADO,UPPER(TRIM(T.CORREO_ELECTRONICO)) AS CORREO_ELECTRONICO
						FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						AND T.CORREO_ELECTRONICO IS NOT NULL) AS AFIL
			  INNER JOIN --cruce con clientes
					  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
						THEN "SI" ELSE "NO" END AS ind_mayor_edad
					  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
					  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
				ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64)
			  GROUP BY
			  AFIL.COD_AFILIADO, AFIL.CORREO_ELECTRONICO, CLIE.des_segmentacion_growth, CLIE.ind_mayor_edad) 
		GROUP BY
		nom_segmento, ind_mayor_edad, CORREO_ELECTRONICO
		HAVING COUNT(*)>3) AS RES_NO_OK
	ON RES.nom_segmento = RES_NO_OK.nom_segmento AND RES.ind_mayor_edad = RES_NO_OK.ind_mayor_edad AND RES.CORREO_ELECTRONICO = RES_NO_OK.CORREO_ELECTRONICO_NO_OK;


----------------------------------------------------------------
-----------------------------REML004----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'REML004';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'CORREO_ELECTRONICO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
		  FROM -- nom_tabla principal
				(SELECT T.FEC_CREACION,T.COD_AFILIADO,T.CORREO_ELECTRONICO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
					WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA and TRIM(T.CORREO_ELECTRONICO) IS NULL) AS AFIL
		  INNER JOIN --cruce con clientes
					  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
					  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
					  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------REML005----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'REML005';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'CORREO_ELECTRONICO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
		  FROM -- nom_tabla principal
				(SELECT T.FEC_CREACION,T.COD_AFILIADO,T.CORREO_ELECTRONICO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
					WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
					AND T.CORREO_ELECTRONICO IS NOT NULL
					AND NOT REGEXP_CONTAINS(LOWER(trim(T.CORREO_ELECTRONICO)),R'^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+\.(?:(?:[a-zA-Z0-9-]+\.)?[a-zA-Z0-9-]+\.?[a-zA-Z0-9-]+\.)?(co|com|edu|net|info|org|biz|ism|global|gov|gob|ibm|uca|world|legal|sabmille|ar|au|ef|bo|pe|eu|it|hk|es|fr|tw|ca|cl|ch|cn|de|cs|nl|nz|mx|md|uk|br|pr|pt|us|ru|ws){1,2}$')) AS AFIL
		  INNER JOIN --cruce con clientes
					  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth
					  ,case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
					  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
					  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------REML006----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'REML006';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'CORREO_ELECTRONICO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
			  FROM -- nom_tabla principal
					(SELECT T.FEC_CREACION,T.COD_AFILIADO,T.CORREO_ELECTRONICO AS des_valor_fallido, T.COD_USUARIO_UPDATE
						FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						AND T.CORREO_ELECTRONICO IS NOT NULL
						AND (TRIM(UPPER(CORREO_ELECTRONICO)) like '%@HOTMAIL%'OR TRIM(UPPER(CORREO_ELECTRONICO)) LIKE '%@GMAIL%'OR TRIM(UPPER(CORREO_ELECTRONICO)) 
							LIKE '%@YAHOO%'OR TRIM(UPPER(CORREO_ELECTRONICO)) LIKE '%@OUTLOOK%')
						AND NOT REGEXP_CONTAINS(LOWER(trim(CORREO_ELECTRONICO)),R'^[a-zA-Z0-9_.-]+@(?:(?:[a-zA-Z0-9-]+\.)?[a-zA-Z]+\.)?(gmail|hotmail|yahoo|outlook)+\.(?:(?:[a-zA-Z]+\.)?[a-zA-Z]+\.)?(co|com|ar|au|ef|bo|pe|eu|it|hk|es|fr|tw|ca|cl|ch|cn|de|cs|nl|nz|mx|md|uk|br|pr|pt|us|ru|ws){1,2}$')) AS AFIL
			  INNER JOIN --cruce con clientes
						  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth
						  ,case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
						  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
						  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
			  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------REML007----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'REML007';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'CORREO_ELECTRONICO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
		  FROM -- nom_tabla principal
				(SELECT T.FEC_CREACION,T.COD_AFILIADO,T.CORREO_ELECTRONICO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
					WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
					AND T.CORREO_ELECTRONICO IS NOT NULL
					AND (NOT REGEXP_CONTAINS(TRIM(T.CORREO_ELECTRONICO), r'^[A-Za-z0-9._%+-]{1,64}@[A-Za-z0-9.-]{1,255}$') OR CHAR_LENGTH(TRIM(T.CORREO_ELECTRONICO))>=321)) AS AFIL
		  INNER JOIN --cruce con clientes
					  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth
					  ,case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
					  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
					  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


--------------------------------------------------------------------------------------------
-----------------------------------NOMBRE---------------------------------------------------
--------------------------------------------------------------------------------------------

----------------------------------------------------------------
-----------------------------RNOM001----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RNOM001';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'PRIMER_NOMBRE';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.PRIMER_NOMBRE AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.PRIMER_NOMBRE IS NULL
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RNOM002----------------------------
----------------------------------------------------------------

SET ID_REGLA  = 'RNOM002';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'PRIMER_NOMBRE';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.PRIMER_NOMBRE  AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.PRIMER_NOMBRE IS NOT NULL
						AND (LOWER(PRIMER_NOMBRE) LIKE '%aaa%' OR LOWER(PRIMER_NOMBRE) LIKE '%bbb%' OR LOWER(PRIMER_NOMBRE) LIKE '%ccc%'
							OR LOWER(PRIMER_NOMBRE) LIKE '%ddd%' OR LOWER(PRIMER_NOMBRE) LIKE '%eee%' OR LOWER(PRIMER_NOMBRE) LIKE '%fff%'
							OR LOWER(PRIMER_NOMBRE) LIKE '%ggg%' OR LOWER(PRIMER_NOMBRE) LIKE '%hhh%' OR LOWER(PRIMER_NOMBRE) LIKE '%iii%'
							OR LOWER(PRIMER_NOMBRE) LIKE '%jjj%' OR LOWER(PRIMER_NOMBRE) LIKE '%kkk%' OR LOWER(PRIMER_NOMBRE) LIKE '%lll%'
							OR LOWER(PRIMER_NOMBRE) LIKE '%mmm%' OR LOWER(PRIMER_NOMBRE) LIKE '%nnn%' OR LOWER(PRIMER_NOMBRE) LIKE '%ñññ%'
							OR LOWER(PRIMER_NOMBRE) LIKE '%ooo%' OR LOWER(PRIMER_NOMBRE) LIKE '%ppp%' OR LOWER(PRIMER_NOMBRE) LIKE '%qqq%'
							OR LOWER(PRIMER_NOMBRE) LIKE '%rrr%' OR LOWER(PRIMER_NOMBRE) LIKE '%sss%' OR LOWER(PRIMER_NOMBRE) LIKE '%ttt%'
							OR LOWER(PRIMER_NOMBRE) LIKE '%uuu%' OR LOWER(PRIMER_NOMBRE) LIKE '%vvv%' OR LOWER(PRIMER_NOMBRE) LIKE '%www%'
							OR LOWER(PRIMER_NOMBRE) LIKE '%xxx%' OR LOWER(PRIMER_NOMBRE) LIKE '%yyy%' OR LOWER(PRIMER_NOMBRE) LIKE '%zzz%')
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,
				  CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES; 



----------------------------------------------------------------
-----------------------------RNOM003----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RNOM003';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'PRIMER_NOMBRE';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,NOMBRE_nom_tabla AS des_valor_nom_campo_fallido_padron
  ,'APELLIDO_PATERNO' AS des_valor_nom_campo_fallido_padron

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  ,AFIL.des_detalle_complemento
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO
						,T.PRIMER_NOMBRE AS des_valor_fallido 
						,T.APELLIDO_PATERNO AS des_detalle_complemento
						,T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.PRIMER_NOMBRE IS NOT NULL
						AND trim(upper(T.PRIMER_NOMBRE)) = trim(upper(T.APELLIDO_PATERNO))
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RNOM004----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RNOM004';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'PRIMER_NOMBRE';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,'persona_padron_electoral' AS des_valor_nom_campo_fallido_padron
  ,'NOMBRES' AS des_valor_nom_campo_fallido_padron

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  ,AFIL.des_detalle_complemento
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.PRIMER_NOMBRE AS des_valor_fallido, PADR.NOMBRES AS des_detalle_complemento, T.NRO_DOCUMENTO, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
					LEFT JOIN --cruce con padron
						(SELECT DNI,NOMBRES FROM `{project_id_raw}.ext__padron.persona_padron_electoral`
						WHERE PERIODO = (SELECT MAX(PERIODO) FROM `{project_id_raw}.ext__padron.persona_padron_electoral`)) AS PADR
					ON PADR.DNI = T.NRO_DOCUMENTO
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.PRIMER_NOMBRE IS NOT NULL
						and upper(trim(T.PRIMER_NOMBRE)) <> upper(trim(PADR.NOMBRES))
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,
				  CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RNOM005----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RNOM005';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'PRIMER_NOMBRE';


INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.PRIMER_NOMBRE AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.PRIMER_NOMBRE IS NOT NULL
						AND LENGTH(TRIM(CAST(T.PRIMER_NOMBRE AS STRING)))<=1 
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,
				  CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RNOM006----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RNOM006';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'PRIMER_NOMBRE';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.PRIMER_NOMBRE AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.PRIMER_NOMBRE IS NOT NULL
						AND NOT REGEXP_CONTAINS(T.PRIMER_NOMBRE,'^[a-zA-ZÁÉÍÓÚÜÑáéíóúñüÄËÏÖäëïö\' ]{2,254}$')
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,
				  CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RNOM007----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RNOM007';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'PRIMER_NOMBRE';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.PRIMER_NOMBRE  AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.PRIMER_NOMBRE IS NOT NULL
						AND LENGTH(TRIM(T.PRIMER_NOMBRE)) > 50
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RNOM008----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RNOM008';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'PRIMER_NOMBRE';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.PRIMER_NOMBRE AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.PRIMER_NOMBRE IS NOT NULL
						AND NOT REGEXP_CONTAINS(T.PRIMER_NOMBRE,'[aeiouyáéíóúAEIOUÜüYÁÉÍÓÚÄËÏÖäëïö ]')
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,
				  CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


--------------------------------------------------------------------------------------------
-----------------------------------APELLIDO MAT.--------------------------------------------
--------------------------------------------------------------------------------------------

----------------------------------------------------------------
-----------------------------RAPM001----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPM001';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_MATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

FROM (
  SELECT
		AFIL.COD_AFILIADO , DATE(FEC_CREACION) AS fecha_de_creacion
        ,AFIL.COD_USUARIO_UPDATE AS USUARIO
		,CLIE.des_segmentacion_growth AS nom_segmento
		,CLIE.ind_mayor_edad
		,CONCAT(AFIL.PRIMER_NOMBRE, ' ', AFIL.APELLIDO_PATERNO, ' ', AFIL.APELLIDO_MATERNO, ' ', AFIL.FEC_NACIMIENTO) AS des_valor_fallido
		FROM -- nom_tabla principal
			(SELECT 
				T.FEC_CREACION,T.COD_AFILIADO
				,T.COD_USUARIO_UPDATE
				,COALESCE(UPPER(TRIM(T.PRIMER_NOMBRE)),'VACIO') AS PRIMER_NOMBRE
				,COALESCE(UPPER(TRIM(T.APELLIDO_PATERNO)),'VACIO') AS APELLIDO_PATERNO
				,COALESCE(UPPER(TRIM(T.APELLIDO_MATERNO)),'VACIO') AS APELLIDO_MATERNO
				,COALESCE(DATE(T.FEC_NACIMIENTO),DATE('1900-01-01')) AS FEC_NACIMIENTO
			FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
				
				WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA ) AS AFIL
			INNER JOIN --cruce con clientes
				(SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,
					CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 THEN "SI" ELSE "NO" END AS ind_mayor_edad
				 FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				 WHERE DATE(PERIODO) = FECHA_REFERENCIA  ) as CLIE
			ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64)
		-- CLIENTE NO repetidos
			INNER JOIN
				(SELECT
					  --AFIL.COD_AFILIADO
					  AFIL_R.PRIMER_NOMBRE
					  ,AFIL_R.APELLIDO_PATERNO
					  ,AFIL_R.APELLIDO_MATERNO
					  ,AFIL_R.FEC_NACIMIENTO
					  ,CLIE_R.des_segmentacion_growth AS nom_segmento
					  ,CLIE_R.ind_mayor_edad
					  ,COUNT(*) AS NRO_REGISTRO
							FROM -- nom_tabla principal
								(SELECT 
								T.COD_AFILIADO,
								COALESCE(UPPER(TRIM(T.PRIMER_NOMBRE)),'VACIO') AS PRIMER_NOMBRE
								,COALESCE(UPPER(TRIM(T.APELLIDO_PATERNO)),'VACIO') AS APELLIDO_PATERNO
								,COALESCE(UPPER(TRIM(T.APELLIDO_MATERNO)),'VACIO') AS APELLIDO_MATERNO
								,COALESCE(DATE(T.FEC_NACIMIENTO),DATE('1900-01-01')) AS FEC_NACIMIENTO
								FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
								
								WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA ) AS AFIL_R
							INNER JOIN --cruce con clientes
								(SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,
									CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 THEN "SI" ELSE "NO" END AS ind_mayor_edad
								 FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
								 WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE_R
							ON AFIL_R.COD_AFILIADO = CAST(CLIE_R.cod_acselx AS INT64)
					  GROUP BY
					  AFIL_R.PRIMER_NOMBRE ,AFIL_R.APELLIDO_PATERNO ,AFIL_R.APELLIDO_MATERNO ,AFIL_R.FEC_NACIMIENTO, CLIE_R.des_segmentacion_growth, CLIE_R.ind_mayor_edad
					  HAVING COUNT(*) <> 1) AS RES_OK
				ON AFIL.PRIMER_NOMBRE = RES_OK.PRIMER_NOMBRE AND AFIL.APELLIDO_PATERNO = RES_OK.APELLIDO_PATERNO AND AFIL.APELLIDO_MATERNO = RES_OK.APELLIDO_MATERNO 
					AND AFIL.FEC_NACIMIENTO = RES_OK.FEC_NACIMIENTO AND CLIE.des_segmentacion_growth =  RES_OK.nom_segmento
					AND CLIE.ind_mayor_edad  = RES_OK.ind_mayor_edad) AS RES;

		
----------------------------------------------------------------
-----------------------------RAPM002----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPM002';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_MATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_MATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_MATERNO IS NOT NULL
						AND (LOWER(APELLIDO_MATERNO) LIKE '%aaa%' OR LOWER(APELLIDO_MATERNO) LIKE '%bbb%' OR LOWER(APELLIDO_MATERNO) LIKE '%ccc%'
							OR LOWER(APELLIDO_MATERNO) LIKE '%ddd%' OR LOWER(APELLIDO_MATERNO) LIKE '%eee%' OR LOWER(APELLIDO_MATERNO) LIKE '%fff%'
							OR LOWER(APELLIDO_MATERNO) LIKE '%ggg%' OR LOWER(APELLIDO_MATERNO) LIKE '%hhh%' OR LOWER(APELLIDO_MATERNO) LIKE '%iii%'
							OR LOWER(APELLIDO_MATERNO) LIKE '%jjj%' OR LOWER(APELLIDO_MATERNO) LIKE '%kkk%' OR LOWER(APELLIDO_MATERNO) LIKE '%lll%'
							OR LOWER(APELLIDO_MATERNO) LIKE '%mmm%' OR LOWER(APELLIDO_MATERNO) LIKE '%nnn%' OR LOWER(APELLIDO_MATERNO) LIKE '%ñññ%'
							OR LOWER(APELLIDO_MATERNO) LIKE '%ooo%' OR LOWER(APELLIDO_MATERNO) LIKE '%ppp%' OR LOWER(APELLIDO_MATERNO) LIKE '%qqq%'
							OR LOWER(APELLIDO_MATERNO) LIKE '%rrr%' OR LOWER(APELLIDO_MATERNO) LIKE '%sss%' OR LOWER(APELLIDO_MATERNO) LIKE '%ttt%'
							OR LOWER(APELLIDO_MATERNO) LIKE '%uuu%' OR LOWER(APELLIDO_MATERNO) LIKE '%vvv%' OR LOWER(APELLIDO_MATERNO) LIKE '%www%'
							OR LOWER(APELLIDO_MATERNO) LIKE '%xxx%' OR LOWER(APELLIDO_MATERNO) LIKE '%yyy%' OR LOWER(APELLIDO_MATERNO) LIKE '%zzz%')
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RAPM003----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPM003';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_MATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,'persona_padron_electoral' AS des_valor_nom_campo_fallido_padron
  ,'APELL_MAT' AS des_valor_nom_campo_fallido_padron

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  ,AFIL.des_detalle_complemento
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_MATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE, PADR.APELL_MAT AS des_detalle_complemento
					FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
					LEFT JOIN --cruce con padron
					 (SELECT DNI,APELL_MAT FROM `{project_id_raw}.ext__padron.persona_padron_electoral`
					  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `{project_id_raw}.ext__padron.persona_padron_electoral`)) AS PADR
					ON PADR.DNI = T.NRO_DOCUMENTO
					WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
					
					AND T.APELLIDO_MATERNO IS NOT NULL
					AND UPPER(TRIM(T.APELLIDO_MATERNO)) <> UPPER(TRIM(PADR.APELL_MAT))
					) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RAPM004----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPM004';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_MATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_MATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_MATERNO IS NOT NULL
						AND NOT REGEXP_CONTAINS(T.APELLIDO_MATERNO,'^[a-zA-ZÁÉÍÓÚÜÑáéíóúñüÄËÏÖäëïö\' ]{2,254}$')
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RAPM005----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPM005';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_MATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_MATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_MATERNO IS NOT NULL
						AND LENGTH(TRIM(CAST(T.APELLIDO_MATERNO AS STRING)))<=1 
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RAPM006----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPM006';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_MATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_MATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_MATERNO IS NOT NULL
						AND NOT REGEXP_CONTAINS(T.APELLIDO_MATERNO,'^[a-zA-ZÁÉÍÓÚÜÑáéíóúñüÄËÏÖäëïö\' ]{2,254}$') 
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RAPM007----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPM007';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_MATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_MATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_MATERNO IS NOT NULL
						AND LENGTH(TRIM(T.APELLIDO_MATERNO)) > 50 
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;



--------------------------------------------------------------------------------------------
-----------------------------------APELLIDO PAT.--------------------------------------------
--------------------------------------------------------------------------------------------

----------------------------------------------------------------
-----------------------------RAPP001----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPP001';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_PATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_PATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_PATERNO IS NULL) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,
				  CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RAPP002----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPP002';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_PATERNO';


INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_PATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_PATERNO IS NOT NULL
						AND (LOWER(APELLIDO_PATERNO) LIKE '%aaa%' OR LOWER(APELLIDO_PATERNO) LIKE '%bbb%' OR LOWER(APELLIDO_PATERNO) LIKE '%ccc%'
							OR LOWER(APELLIDO_PATERNO) LIKE '%ddd%' OR LOWER(APELLIDO_PATERNO) LIKE '%eee%' OR LOWER(APELLIDO_PATERNO) LIKE '%fff%'
							OR LOWER(APELLIDO_PATERNO) LIKE '%ggg%' OR LOWER(APELLIDO_PATERNO) LIKE '%hhh%' OR LOWER(APELLIDO_PATERNO) LIKE '%iii%'
							OR LOWER(APELLIDO_PATERNO) LIKE '%jjj%' OR LOWER(APELLIDO_PATERNO) LIKE '%kkk%' OR LOWER(APELLIDO_PATERNO) LIKE '%lll%'
							OR LOWER(APELLIDO_PATERNO) LIKE '%mmm%' OR LOWER(APELLIDO_PATERNO) LIKE '%nnn%' OR LOWER(APELLIDO_PATERNO) LIKE '%ñññ%'
							OR LOWER(APELLIDO_PATERNO) LIKE '%ooo%' OR LOWER(APELLIDO_PATERNO) LIKE '%ppp%' OR LOWER(APELLIDO_PATERNO) LIKE '%qqq%'
							OR LOWER(APELLIDO_PATERNO) LIKE '%rrr%' OR LOWER(APELLIDO_PATERNO) LIKE '%sss%' OR LOWER(APELLIDO_PATERNO) LIKE '%ttt%'
							OR LOWER(APELLIDO_PATERNO) LIKE '%uuu%' OR LOWER(APELLIDO_PATERNO) LIKE '%vvv%' OR LOWER(APELLIDO_PATERNO) LIKE '%www%'
							OR LOWER(APELLIDO_PATERNO) LIKE '%xxx%' OR LOWER(APELLIDO_PATERNO) LIKE '%yyy%' OR LOWER(APELLIDO_PATERNO) LIKE '%zzz%')
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RAPP003----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPP003';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_PATERNO';


INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,'persona_padron_electoral' AS des_valor_nom_campo_fallido_padron
  ,'APELL_PAT' AS des_valor_nom_campo_fallido_padron

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  ,AFIL.des_detalle_complemento
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_PATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE, PADR.APELL_PAT AS des_detalle_complemento
					FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
					LEFT JOIN --cruce con padron
					 (SELECT DNI,APELL_PAT FROM `{project_id_raw}.ext__padron.persona_padron_electoral`
					  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `{project_id_raw}.ext__padron.persona_padron_electoral`)) AS PADR
					ON PADR.DNI = T.NRO_DOCUMENTO
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_PATERNO IS NOT NULL
						AND UPPER(TRIM(T.APELLIDO_PATERNO)) <> UPPER(TRIM(PADR.APELL_PAT))
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RAPP004----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPP004';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_PATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_PATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_PATERNO IS NOT NULL
						AND NOT REGEXP_CONTAINS(T.APELLIDO_PATERNO,'^[a-zA-ZÁÉÍÓÚÜÑáéíóúñüÄËÏÖäëïö\' ]{2,254}$')
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RAPP005----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPP005';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_PATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_PATERNO  AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_PATERNO IS NOT NULL
						AND LENGTH(TRIM(CAST(T.APELLIDO_PATERNO AS STRING)))<=1
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RAPP006----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPP006';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_PATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_PATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_PATERNO IS NOT NULL
						AND NOT REGEXP_CONTAINS(T.APELLIDO_PATERNO,'^[a-zA-ZÁÉÍÓÚÜÑáéíóúñüÄËÏÖäëïö\' ]{2,254}$')
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RAPP007----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPP007';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_PATERNO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_PATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_PATERNO IS NOT NULL
						AND  LENGTH(TRIM(T.APELLIDO_PATERNO)) > 50 
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RAPP008----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RAPP008';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'APELLIDO_PATERNO';


INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,T.APELLIDO_PATERNO AS des_valor_fallido, T.COD_USUARIO_UPDATE
					FROM 
						`{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.APELLIDO_PATERNO IS NOT NULL
						AND NOT REGEXP_CONTAINS(T.APELLIDO_PATERNO,'[aeiouyáéíóúAEIOUÜüYÁÉÍÓÚÄËÏÖäëïö ]')
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
	  THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

--------------------------------------------------------------------------------------------
-----------------------------------FECHA_NACIMIENTO-----------------------------------------
--------------------------------------------------------------------------------------------

----------------------------------------------------------------
-----------------------------RFNA001----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RFNA001';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'FEC_NACIMIENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
		  FROM -- nom_tabla principal
					(SELECT T.FEC_CREACION,T.COD_AFILIADO, CAST(T.FEC_NACIMIENTO AS STRING) AS des_valor_fallido, T.COD_USUARIO_UPDATE
						FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						
						AND T.FEC_NACIMIENTO IS NULL) AS AFIL
		  INNER JOIN --cruce con clientes
					  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth
					  ,case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
					  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
					  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RFNA002----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RFNA002';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'FEC_NACIMIENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO, CAST(T.FEC_NACIMIENTO AS STRING) AS des_valor_fallido, T.COD_USUARIO_UPDATE
						FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						AND T.FEC_NACIMIENTO IS NOT NULL
						
						AND DATE(T.FEC_NACIMIENTO)<=date('1901-01-01')) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RFNA003----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RFNA003';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'FEC_NACIMIENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO, CAST(T.FEC_NACIMIENTO AS STRING) AS des_valor_fallido, T.COD_USUARIO_UPDATE
						FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA 
						AND T.FEC_NACIMIENTO IS NOT NULL
						
						AND DATE(T.FEC_NACIMIENTO)>FECHA_REFERENCIA) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RFNA004----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RFNA004';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'FEC_NACIMIENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,'persona_padron_electoral' AS des_valor_nom_campo_fallido_padron
  ,'fec_nacimiento' AS des_valor_nom_campo_fallido_padron

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  ,AFIL.des_detalle_complemento
	   FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO, T.NRO_DOCUMENTO, CAST(T.FEC_NACIMIENTO AS STRING) AS des_valor_fallido, T.COD_USUARIO_UPDATE
					,CAST(safe_cast(PADR.fec_nacimiento as timestamp) AS STRING) AS des_detalle_complemento
						FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						
						LEFT JOIN --cruce con padron
						 (SELECT DNI,fec_nacimiento FROM `{project_id_raw}.ext__padron.persona_padron_electoral`
						  WHERE PERIODO = (SELECT MAX(PERIODO) FROM `{project_id_raw}.ext__padron.persona_padron_electoral`)) AS PADR
						ON PADR.DNI = T.NRO_DOCUMENTO
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						AND T.FEC_NACIMIENTO IS NOT NULL
						AND DATE(T.FEC_NACIMIENTO) <>  DATE(safe_cast(PADR.fec_nacimiento as timestamp))
						) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,
				  CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 THEN "SI" ELSE "NO" END AS ind_mayor_edad
				  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
		ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RFNA005----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RFNA005';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'FEC_NACIMIENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO,CAST(T.FEC_NACIMIENTO AS STRING) AS des_valor_fallido, T.COD_USUARIO_UPDATE
						FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						AND T.FEC_NACIMIENTO IS NOT NULL
						
						AND DATE_DIFF(FECHA_REFERENCIA,DATE(T.FEC_NACIMIENTO), YEAR)>110) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, ind_fallecido, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RFNA006----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RFNA006';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'FEC_NACIMIENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT T.FEC_CREACION,T.COD_AFILIADO, CAST(T.FEC_NACIMIENTO AS STRING) AS des_valor_fallido, T.COD_USUARIO_UPDATE
						FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T 
						
						WHERE DATE(T.FEC_CREACION)< FECHA_REFERENCIA
						AND T.FEC_NACIMIENTO IS NOT NULL
						
						AND NOT REGEXP_CONTAINS(string(date(T.FEC_NACIMIENTO)), r'^[0-9]{4}-[0-9]{2}-[0-9]{2}$') ) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;



--------------------------------------------------------------------------------------------
--------------------------------DOCUMENTO IDENTIDAD-----------------------------------------
--------------------------------------------------------------------------------------------

----------------------------------------------------------------
-----------------------------RDOC001----------------------------
----------------------------------------------------------------

SET ID_REGLA  = 'RDOC001';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'TIPO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, TIPO_DOCUMENTO AS des_valor_fallido, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				  WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA
				  AND TIPO_DOCUMENTO IS NULL) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RDOC002----------------------------
----------------------------------------------------------------

SET ID_REGLA  = 'RDOC002';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'IDENTIDAD';


INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,NULL
  ,NULL
	FROM 
		(SELECT
			  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
			  ,AFIL.TIPO_DOCUMENTO
			  ,AFIL.NRO_DOCUMENTO
			  ,CLIE.des_segmentacion_growth AS nom_segmento
			  ,CLIE.ind_mayor_edad
			  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
			  ,AFIL.des_valor_fallido
			  ,CASE SAFE_CAST(AFIL.TIPO_DOCUMENTO AS STRING)
				WHEN '1' THEN 'DOC. NACIONAL IDENTIDAD'
				WHEN '2' THEN 'CARNET DE EXTRANJERIA'
				WHEN '3' THEN 'CARNET DE IDENTIDAD'
				WHEN '4' THEN 'PARTIDA NACIMIENTO'
				WHEN '5' THEN 'NIT'
				WHEN '6' THEN 'PASAPORTE'
				WHEN '7' THEN 'LIBRETA MILITAR'
				WHEN '8' THEN 'DOC. PROVISIONAL DE IDENT'
				WHEN '9' THEN 'IDENT. EMT. EXT.'
				WHEN '90' THEN 'REG. UNICO CONTRIBUY.'
				WHEN '99' THEN 'CÓDIGO RIMAC SALUD' END AS des_detalle_complemento		
				FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION
					,TIPO_DOCUMENTO
					,NRO_DOCUMENTO
					,T.COD_USUARIO_UPDATE
					,NRO_DOCUMENTO AS des_valor_fallido
					FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
					WHERE NRO_DOCUMENTO is not null AND TIPO_DOCUMENTO is not null
					AND DATE(FEC_CREACION)< FECHA_REFERENCIA) AS AFIL
				INNER JOIN --cruce con clientes
					  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
						THEN "SI" ELSE "NO" END AS ind_mayor_edad
					  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
					  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
				ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES
	INNER JOIN	
	-- NRO_DOCUMENTO sin repetidos por tipodoc
		(SELECT 
		nom_segmento
		,ind_mayor_edad
		,NRO_DOCUMENTO AS NRO_DOCUMENTO_NO_OK
		,COUNT(*) AS NRO_REPETIDOS
		  FROM (
			  SELECT
			  AFIL.COD_AFILIADO
			  ,AFIL.TIPO_DOCUMENTO
			  ,AFIL.NRO_DOCUMENTO
			  ,CLIE.des_segmentacion_growth AS nom_segmento
			  ,CLIE.ind_mayor_edad
			  ,COUNT(*) AS NRO_REGISTRO
				FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, TIPO_DOCUMENTO, NRO_DOCUMENTO
					FROM `{project_id_raw}.bdrsa__app_eps.AFILIADO` 
					 
					WHERE NRO_DOCUMENTO is not null AND TIPO_DOCUMENTO is not null
					AND DATE(FEC_CREACION)< FECHA_REFERENCIA) AS AFIL
				INNER JOIN --cruce con clientes
					  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth,CASE WHEN DATE_DIFF(FECHA_REFERENCIA,DATE(fec_nacimiento),YEAR) >= 18 
						THEN "SI" ELSE "NO" END AS ind_mayor_edad
					  FROM `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
					  WHERE DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
				ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64)
			  GROUP BY
			  AFIL.COD_AFILIADO, AFIL.TIPO_DOCUMENTO, AFIL.NRO_DOCUMENTO, CLIE.des_segmentacion_growth, CLIE.ind_mayor_edad) 
		GROUP BY
		nom_segmento, ind_mayor_edad, NRO_DOCUMENTO
		HAVING COUNT(*)>1) AS RES_NO_OK
	ON RES.nom_segmento = RES_NO_OK.nom_segmento AND RES.ind_mayor_edad = RES_NO_OK.ind_mayor_edad AND RES.NRO_DOCUMENTO = RES_NO_OK.NRO_DOCUMENTO_NO_OK;

----------------------------------------------------------------
-----------------------------RDOC003----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC003';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'TIPO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  ,CASE SAFE_CAST(AFIL.TIPO_DOCUMENTO AS STRING)
				WHEN '1' THEN 'DOC. NACIONAL IDENTIDAD'
				WHEN '2' THEN 'CARNET DE EXTRANJERIA'
				WHEN '3' THEN 'CARNET DE IDENTIDAD'
				WHEN '4' THEN 'PARTIDA NACIMIENTO'
				WHEN '5' THEN 'NIT'
				WHEN '6' THEN 'PASAPORTE'
				WHEN '7' THEN 'LIBRETA MILITAR'
				WHEN '8' THEN 'DOC. PROVISIONAL DE IDENT'
				WHEN '9' THEN 'IDENT. EMT. EXT.'
				WHEN '90' THEN 'REG. UNICO CONTRIBUY.'
				WHEN '99' THEN 'CÓDIGO RIMAC SALUD' END AS des_detalle_complemento		
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, TIPO_DOCUMENTO, TIPO_DOCUMENTO AS des_valor_fallido, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				   WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA 
				  and TIPO_DOCUMENTO is not null
				  AND TRIM(SAFE_CAST(TIPO_DOCUMENTO AS STRING)) NOT IN ('1','2','6','90')) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RDOC004----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC004';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'NRO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, NRO_DOCUMENTO AS des_valor_fallido, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				  WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA
				  AND NRO_DOCUMENTO IS NULL) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;



----------------------------------------------------------------
-----------------------------RDOC005----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC005';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'NRO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  ,CASE SAFE_CAST(AFIL.TIPO_DOCUMENTO AS STRING)
				WHEN '1' THEN 'DOC. NACIONAL IDENTIDAD'
				WHEN '2' THEN 'CARNET DE EXTRANJERIA'
				WHEN '3' THEN 'CARNET DE IDENTIDAD'
				WHEN '4' THEN 'PARTIDA NACIMIENTO'
				WHEN '5' THEN 'NIT'
				WHEN '6' THEN 'PASAPORTE'
				WHEN '7' THEN 'LIBRETA MILITAR'
				WHEN '8' THEN 'DOC. PROVISIONAL DE IDENT'
				WHEN '9' THEN 'IDENT. EMT. EXT.'
				WHEN '90' THEN 'REG. UNICO CONTRIBUY.'
				WHEN '99' THEN 'CÓDIGO RIMAC SALUD' END AS des_detalle_complemento		  
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, NRO_DOCUMENTO AS des_valor_fallido, TIPO_DOCUMENTO, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				   WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA 
				  AND TRIM(SAFE_CAST(TIPO_DOCUMENTO AS STRING)) ='1' 
				  and NRO_DOCUMENTO is not null
				  AND NOT (REGEXP_CONTAINS(TRIM(T.NRO_DOCUMENTO), r'^[0-9]+$'))) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RDOC006----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC006';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'IDENTIDAD';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  ,CASE SAFE_CAST(AFIL.TIPO_DOCUMENTO AS STRING)
				WHEN '1' THEN 'DOC. NACIONAL IDENTIDAD'
				WHEN '2' THEN 'CARNET DE EXTRANJERIA'
				WHEN '3' THEN 'CARNET DE IDENTIDAD'
				WHEN '4' THEN 'PARTIDA NACIMIENTO'
				WHEN '5' THEN 'NIT'
				WHEN '6' THEN 'PASAPORTE'
				WHEN '7' THEN 'LIBRETA MILITAR'
				WHEN '8' THEN 'DOC. PROVISIONAL DE IDENT'
				WHEN '9' THEN 'IDENT. EMT. EXT.'
				WHEN '90' THEN 'REG. UNICO CONTRIBUY.'
				WHEN '99' THEN 'CÓDIGO RIMAC SALUD' END AS des_detalle_complemento	
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, NRO_DOCUMENTO  AS des_valor_fallido, TIPO_DOCUMENTO, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				   WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA 
				  AND TRIM(SAFE_CAST(TIPO_DOCUMENTO AS STRING)) ='90' 
				  and NRO_DOCUMENTO is not null
				  AND NOT REGEXP_CONTAINS(TRIM(T.NRO_DOCUMENTO), r'^[0-9]+$')) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RDOC007----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC007';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'NRO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, NRO_DOCUMENTO AS des_valor_fallido, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				  WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA 
				  AND TRIM(SAFE_CAST(TIPO_DOCUMENTO AS STRING)) ='90' 
				  and NRO_DOCUMENTO is not null
				  AND NOT ((TRIM(T.NRO_DOCUMENTO) LIKE '10%' OR TRIM(T.NRO_DOCUMENTO) LIKE '15%' OR TRIM(T.NRO_DOCUMENTO) LIKE '17%' OR TRIM(T.NRO_DOCUMENTO) LIKE '20%'))) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;
	
	
----------------------------------------------------------------
-----------------------------RDOC008----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC008';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'NRO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, NRO_DOCUMENTO AS des_valor_fallido, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				  WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA 
				  AND TRIM(SAFE_CAST(TIPO_DOCUMENTO AS STRING)) ='2' 
				  and NRO_DOCUMENTO is not null
				  AND NOT (REGEXP_CONTAINS(TRIM(NRO_DOCUMENTO), r'^[0-9]+$'))) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;
	
	
----------------------------------------------------------------
-----------------------------RDOC009----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC009';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'NRO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (select  COD_AFILIADO, FEC_CREACION, NRO_DOCUMENTO  AS des_valor_fallido, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				   WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA 
				  AND TRIM(SAFE_CAST(TIPO_DOCUMENTO AS STRING)) ='2' 
				  and NRO_DOCUMENTO is not null
				  AND NOT (REGEXP_CONTAINS(TRIM(NRO_DOCUMENTO), r'^[0-9]{9,12}$'))) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;
	
	
----------------------------------------------------------------
-----------------------------RDOC010----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC010';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'NRO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, NRO_DOCUMENTO  AS des_valor_fallido, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				  WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA 
				  AND TRIM(SAFE_CAST(TIPO_DOCUMENTO AS STRING)) ='6' 
				  and NRO_DOCUMENTO is not null
				  AND NOT (REGEXP_CONTAINS(TRIM(NRO_DOCUMENTO), r'^[a-z,A-Z,0-9]{5,12}$'))) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;

----------------------------------------------------------------
-----------------------------RDOC011----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC011';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'NRO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,NULL AS des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, NRO_DOCUMENTO  AS des_valor_fallido, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				  WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA 
				  AND TRIM(SAFE_CAST(TIPO_DOCUMENTO AS STRING)) ='6' 
				  and NRO_DOCUMENTO is not null
				  AND NOT REGEXP_CONTAINS(TRIM(NRO_DOCUMENTO), r'^[a-z,A-Z,0-9]+$')) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;


----------------------------------------------------------------
-----------------------------RDOC014----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC014';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'NRO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  ,CASE SAFE_CAST(AFIL.TIPO_DOCUMENTO AS STRING)
				WHEN '1' THEN 'DOC. NACIONAL IDENTIDAD'
				WHEN '2' THEN 'CARNET DE EXTRANJERIA'
				WHEN '3' THEN 'CARNET DE IDENTIDAD'
				WHEN '4' THEN 'PARTIDA NACIMIENTO'
				WHEN '5' THEN 'NIT'
				WHEN '6' THEN 'PASAPORTE'
				WHEN '7' THEN 'LIBRETA MILITAR'
				WHEN '8' THEN 'DOC. PROVISIONAL DE IDENT'
				WHEN '9' THEN 'IDENT. EMT. EXT.'
				WHEN '90' THEN 'REG. UNICO CONTRIBUY.'
				WHEN '99' THEN 'CÓDIGO RIMAC SALUD' END AS des_detalle_complemento	
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, NRO_DOCUMENTO  AS des_valor_fallido, TIPO_DOCUMENTO, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				  WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA 
				  AND TRIM(SAFE_CAST(TIPO_DOCUMENTO AS STRING)) ='90' 
				  and NRO_DOCUMENTO is not null
				  AND NOT (REGEXP_CONTAINS(TRIM(T.NRO_DOCUMENTO), r'^[0-9]{11}$'))) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;
	  
	  
----------------------------------------------------------------
-----------------------------RDOC015----------------------------
----------------------------------------------------------------
SET ID_REGLA  = 'RDOC015';
SET NOMBRE_nom_tabla = 'AFILIADO';
SET NOMBRE_nom_campo = 'NRO_DOCUMENTO';

INSERT INTO `{project_id_trsv}.trsv_procesos_calidad.dash_personas_gob_detalle_registros_negativos`
SELECT
  ID_REGLA AS id_regla
  ,FECHA_REFERENCIA AS fec_periodo_corte
  ,RES.fecha_de_creacion AS fec_creacion
  ,NOMBRE_nom_fuente AS nom_fuente
  ,NOMBRE_nom_tabla AS nom_tabla
  ,NOMBRE_nom_campo AS nom_campo
   
  ,FLAG_CLIENTE AS ind_cliente
  ,RES.nom_segmento AS nom_segmento
  ,RES.ind_mayor_edad AS ind_mayor_edad
  ,RES.USUARIO AS nom_usuario_modificacion
  ,NULL AS nom_unidad_organizativa
  ,CAST(RES.COD_AFILIADO AS STRING) AS COD_AFILIADO
  ,NULL AS nom_canal
  ,NULL AS nom_subcanal
  ,NULL AS nom_agrupador
  ,NULL AS id_numero_documento
  ,NULL AS nom_tipo_documento
  ,CURRENT_TIMESTAMP() AS fec_ejecucion
  ,SAFE_CAST(RES.des_valor_fallido AS STRING) AS des_valor_fallido
  ,RES.des_detalle_complemento
  ,NULL
  ,NULL

	FROM (
	  SELECT
	  AFIL.COD_AFILIADO, DATE(FEC_CREACION) AS fecha_de_creacion
	  ,CLIE.des_segmentacion_growth AS nom_segmento
	  ,CLIE.ind_mayor_edad 
	  ,AFIL.COD_USUARIO_UPDATE AS USUARIO
	  ,AFIL.des_valor_fallido
	  ,CASE SAFE_CAST(AFIL.TIPO_DOCUMENTO AS STRING)
				WHEN '1' THEN 'DOC. NACIONAL IDENTIDAD'
				WHEN '2' THEN 'CARNET DE EXTRANJERIA'
				WHEN '3' THEN 'CARNET DE IDENTIDAD'
				WHEN '4' THEN 'PARTIDA NACIMIENTO'
				WHEN '5' THEN 'NIT'
				WHEN '6' THEN 'PASAPORTE'
				WHEN '7' THEN 'LIBRETA MILITAR'
				WHEN '8' THEN 'DOC. PROVISIONAL DE IDENT'
				WHEN '9' THEN 'IDENT. EMT. EXT.'
				WHEN '90' THEN 'REG. UNICO CONTRIBUY.'
				WHEN '99' THEN 'CÓDIGO RIMAC SALUD' END AS des_detalle_complemento	
	  FROM -- nom_tabla principal
				  (SELECT COD_AFILIADO, FEC_CREACION, NRO_DOCUMENTO AS des_valor_fallido, TIPO_DOCUMENTO, T.COD_USUARIO_UPDATE
				  from `{project_id_raw}.bdrsa__app_eps.AFILIADO` AS T
				  WHERE DATE(FEC_CREACION)< FECHA_REFERENCIA 
				  AND TRIM(SAFE_CAST(TIPO_DOCUMENTO AS STRING)) ='1' 
				  and NRO_DOCUMENTO is not null
				  AND NOT (REGEXP_CONTAINS(TRIM(T.NRO_DOCUMENTO), r'^[0-9]{8}$'))) AS AFIL
	  INNER JOIN --cruce con clientes
				  (SELECT cod_acselx, coalesce(des_segmentacion_growth,'NULL') as des_segmentacion_growth, case when DATETIME_ADD(fec_nacimiento,INTERVAL 18 YEAR) <= FECHA_REFERENCIA THEN "SI" ELSE "NO" END as ind_mayor_edad
				  from `{project_id_anl}.anl_persona.{TABLA_TIPO_PERSONA}`
				  where DATE(PERIODO) = FECHA_REFERENCIA) as CLIE
	  ON AFIL.COD_AFILIADO = CAST(CLIE.cod_acselx AS INT64) ) AS RES;