From e1857715f8fd66dbde50d9d7f1ecadfe60005887 Mon Sep 17 00:00:00 2001 From: Luiz Eduardo Date: Mon, 9 Sep 2024 09:42:31 -0300 Subject: [PATCH 1/4] Adicionar colunas cnae e testes --- .../br_tse_eleicoes__despesas_candidato.sql | 10 ++++++++ .../br_tse_eleicoes__receitas_candidato.sql | 6 +++++ models/br_tse_eleicoes/schema.yml | 24 +++++++++++++++++++ 3 files changed, 40 insertions(+) diff --git a/models/br_tse_eleicoes/br_tse_eleicoes__despesas_candidato.sql b/models/br_tse_eleicoes/br_tse_eleicoes__despesas_candidato.sql index 8b2e70d1..75ad1670 100644 --- a/models/br_tse_eleicoes/br_tse_eleicoes__despesas_candidato.sql +++ b/models/br_tse_eleicoes/br_tse_eleicoes__despesas_candidato.sql @@ -49,6 +49,16 @@ select safe_cast(nome_fornecedor as string) nome_fornecedor, safe_cast(nome_fornecedor_rf as string) nome_fornecedor_rf, safe_cast(cnae_2_fornecedor as string) cnae_2_fornecedor, + case + when length(cnae_2_fornecedor) = 5 + then safe_cast(cnae_2_fornecedor as string) + else null + end as cnae_2_fornecedor_classe, + case + when length(cnae_2_fornecedor) > 5 + then safe_cast(cnae_2_fornecedor as string) + else null + end as cnae_2_fornecedor_subclasse, safe_cast(descricao_cnae_2_fornecedor as string) descricao_cnae_2_fornecedor, safe_cast(tipo_fornecedor as string) tipo_fornecedor, safe_cast(esfera_partidaria_fornecedor as string) esfera_partidaria_fornecedor, diff --git a/models/br_tse_eleicoes/br_tse_eleicoes__receitas_candidato.sql b/models/br_tse_eleicoes/br_tse_eleicoes__receitas_candidato.sql index c2c4be90..8f237f18 100644 --- a/models/br_tse_eleicoes/br_tse_eleicoes__receitas_candidato.sql +++ b/models/br_tse_eleicoes/br_tse_eleicoes__receitas_candidato.sql @@ -53,6 +53,12 @@ select safe_cast(esfera_partidaria_doador as string) esfera_partidaria_doador, safe_cast(numero_candidato_doador as string) numero_candidato_doador, safe_cast(cnae_2_doador as string) cnae_2_doador, + case + when length(cnae_2_doador) = 5 then safe_cast(cnae_2_doador as string) else null + end as cnae_2_doador_classe, + case + when length(cnae_2_doador) > 5 then safe_cast(cnae_2_doador as string) else null + end as cnae_2_doador_subclasse, safe_cast(descricao_cnae_2_doador as string) descricao_cnae_2_doador, safe_cast(cpf_cnpj_doador_orig as string) cpf_cnpj_doador_orig, safe_cast(nome_doador_orig as string) nome_doador_orig, diff --git a/models/br_tse_eleicoes/schema.yml b/models/br_tse_eleicoes/schema.yml index 3b04c107..bb78d0ca 100644 --- a/models/br_tse_eleicoes/schema.yml +++ b/models/br_tse_eleicoes/schema.yml @@ -167,6 +167,18 @@ models: description: Cargo do fornecedor - name: cnae_2_fornecedor description: Classificação Nacional de Atividades Econômicas 2.0 do fornecedor + - name: cnae_2_fornecedor_classe + description: Classe da CNAE + tests: + - relationships: + to: ref('br_bd_diretorios_brasil.cnae_2') + field: classe + - name: cnae_2_fornecedor_subclasse + description: Subclasse da Classificação de Atividades Econômicas (CNAE) + tests: + - relationships: + to: ref('br_bd_diretorios_brasil.cnae_2') + field: subclasse - name: cnpj_candidato description: CNPJ do candidato - name: cnpj_prestador_contas @@ -723,6 +735,18 @@ models: description: Cargo do candidato doador - name: cnae_2_doador description: Classificação Nacional de Atividades Econômicas 2.0 do doador + - name: cnae_2_doador_classe + description: Classe da CNAE + tests: + - relationships: + to: ref('br_bd_diretorios_brasil.cnae_2') + field: classe + - name: cnae_2_doador_subclasse + description: Subclasse da Classificação de Atividades Econômicas (CNAE) + tests: + - relationships: + to: ref('br_bd_diretorios_brasil.cnae_2') + field: subclasse - name: cnpj_candidato description: CNPJ do candidato - name: cnpj_prestador_contas From c0de43bcc23b8fc11acccb205aec73117d5262cd Mon Sep 17 00:00:00 2001 From: Luiz Eduardo Date: Tue, 17 Sep 2024 02:05:18 -0300 Subject: [PATCH 2/4] Adicionar receitas_comite.sql e receitas_orgao_partidario.sql --- .../br_tse_eleicoes__despesas_candidato.sql | 2 +- .../br_tse_eleicoes__receitas_comite.sql | 7 ++ ...se_eleicoes__receitas_orgao_partidario.sql | 7 ++ models/br_tse_eleicoes/schema.yml | 77 +++++++++++++++---- 4 files changed, 79 insertions(+), 14 deletions(-) diff --git a/models/br_tse_eleicoes/br_tse_eleicoes__despesas_candidato.sql b/models/br_tse_eleicoes/br_tse_eleicoes__despesas_candidato.sql index 75ad1670..cccc5cf7 100644 --- a/models/br_tse_eleicoes/br_tse_eleicoes__despesas_candidato.sql +++ b/models/br_tse_eleicoes/br_tse_eleicoes__despesas_candidato.sql @@ -55,7 +55,7 @@ select else null end as cnae_2_fornecedor_classe, case - when length(cnae_2_fornecedor) > 5 + when length(cnae_2_fornecedor) = 7 then safe_cast(cnae_2_fornecedor as string) else null end as cnae_2_fornecedor_subclasse, diff --git a/models/br_tse_eleicoes/br_tse_eleicoes__receitas_comite.sql b/models/br_tse_eleicoes/br_tse_eleicoes__receitas_comite.sql index bc7c0950..05770ddb 100644 --- a/models/br_tse_eleicoes/br_tse_eleicoes__receitas_comite.sql +++ b/models/br_tse_eleicoes/br_tse_eleicoes__receitas_comite.sql @@ -10,6 +10,7 @@ }, ) }} + select safe_cast(ano as int64) ano, safe_cast(sigla_uf as string) sigla_uf, @@ -38,6 +39,12 @@ select safe_cast(numero_partido_doador as string) numero_partido_doador, safe_cast(numero_candidato_doador as string) numero_candidato_doador, safe_cast(cnae_2_doador as string) cnae_2_doador, + case + when length(cnae_2_doador) = 5 then safe_cast(cnae_2_doador as string) else null + end as cnae_2_doador_classe, + case + when length(cnae_2_doador) > 5 then safe_cast(cnae_2_doador as string) else null + end as cnae_2_doador_subclasse, safe_cast(descricao_cnae_2_doador as string) descricao_cnae_2_doador, safe_cast(cpf_cnpj_doador_orig as string) cpf_cnpj_doador_orig, safe_cast(nome_doador_orig as string) nome_doador_orig, diff --git a/models/br_tse_eleicoes/br_tse_eleicoes__receitas_orgao_partidario.sql b/models/br_tse_eleicoes/br_tse_eleicoes__receitas_orgao_partidario.sql index 1d5a3b83..d26a3092 100644 --- a/models/br_tse_eleicoes/br_tse_eleicoes__receitas_orgao_partidario.sql +++ b/models/br_tse_eleicoes/br_tse_eleicoes__receitas_orgao_partidario.sql @@ -10,6 +10,7 @@ }, ) }} + select safe_cast(ano as int64) ano, safe_cast(sigla_uf_diretorio as string) sigla_uf, @@ -37,6 +38,12 @@ select safe_cast(descricao_receita as string) descricao_receita, safe_cast(sequencial_receita as string) sequencial_receita, safe_cast(cnae_2_doador as string) cnae_2_doador, + case + when length(cnae_2_doador) = 5 then safe_cast(cnae_2_doador as string) else null + end as cnae_2_doador_classe, + case + when length(cnae_2_doador) > 5 then safe_cast(cnae_2_doador as string) else null + end as cnae_2_doador_subclasse, safe_cast(descricao_cnae_2_doador as string) descricao_cnae_2_doador, safe_cast(cpf_cnpj_doador as string) cpf_cnpj_doador, safe_cast(nome_doador as string) nome_doador, diff --git a/models/br_tse_eleicoes/schema.yml b/models/br_tse_eleicoes/schema.yml index bb78d0ca..32431974 100644 --- a/models/br_tse_eleicoes/schema.yml +++ b/models/br_tse_eleicoes/schema.yml @@ -171,13 +171,13 @@ models: description: Classe da CNAE tests: - relationships: - to: ref('br_bd_diretorios_brasil.cnae_2') + to: ref('br_bd_diretorios_brasil__cnae_2') field: classe - name: cnae_2_fornecedor_subclasse description: Subclasse da Classificação de Atividades Econômicas (CNAE) tests: - relationships: - to: ref('br_bd_diretorios_brasil.cnae_2') + to: ref('br_bd_diretorios_brasil__cnae_2') field: subclasse - name: cnpj_candidato description: CNPJ do candidato @@ -739,13 +739,13 @@ models: description: Classe da CNAE tests: - relationships: - to: ref('br_bd_diretorios_brasil.cnae_2') + to: ref('br_bd_diretorios_brasil__cnae_2') field: classe - name: cnae_2_doador_subclasse description: Subclasse da Classificação de Atividades Econômicas (CNAE) tests: - relationships: - to: ref('br_bd_diretorios_brasil.cnae_2') + to: ref('br_bd_diretorios_brasil__cnae_2') field: subclasse - name: cnpj_candidato description: CNPJ do candidato @@ -887,9 +887,6 @@ models: description: Valor da receita - name: br_tse_eleicoes__receitas_comite description: Receitas de comitês eleitorais - tests: - - not_null_proportion_multiple_columns: - at_least: 0.95 columns: - name: ano description: Ano @@ -899,10 +896,18 @@ models: field: ano.ano - name: cnae_2_doador description: CNAE 2 do Doador + - name: cnae_2_doador_classe + description: Classe da CNAE tests: - relationships: to: ref('br_bd_diretorios_brasil__cnae_2') - field: cnae_2.cnae_2 + field: classe + - name: cnae_2_doador_subclasse + description: Subclasse da Classificação de Atividades Econômicas (CNAE) + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__cnae_2') + field: subclasse - name: cnpj_prestador_contas description: CNPJ do prestador de contas - name: cpf_cnpj_doador @@ -914,9 +919,10 @@ models: - name: data_receita description: Data da receita tests: - - relationships: + - custom_relationships: to: ref('br_bd_diretorios_data_tempo__data') field: data.data + ignore_values: ['8200-10-01'] - name: descricao_cnae_2_doador description: Descrição da Classificação Nacional de Atividades Econômicas 2.0 do doador @@ -929,8 +935,17 @@ models: description: Fonte da receita - name: id_municipio description: ID Município - IBGE 7 Dígitos + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio - name: id_municipio_tse description: ID Município - Tribunal Superior Eleitoral (TSE) + tests: + - custom_relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio_tse + ignore_values: ['73709'] - name: natureza_receita description: Natureza da receita - name: nome_doador @@ -959,8 +974,17 @@ models: description: Sigla do partido - name: sigla_uf description: Sigla da unidade da federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla - name: sigla_uf_doador description: Sigla da unidade da federação do doador + tests: + - custom_relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla + ignore_values: ['02550', '71072', '13897', '41238', '09210', '86614'] - name: situacao_receita description: Situação da receita - name: tipo_comite @@ -975,9 +999,6 @@ models: description: Valor da receita - name: br_tse_eleicoes__receitas_orgao_partidario description: Receitas de Órgãos Partidários - tests: - - not_null_proportion_multiple_columns: - at_least: 0.95 columns: - name: ano description: Ano @@ -989,10 +1010,18 @@ models: description: Cargo do candidato doador - name: cnae_2_doador description: Classificação Nacional de Atividades Econômicas 2.0 do doador + - name: cnae_2_doador_classe + description: Classe da CNAE tests: - relationships: to: ref('br_bd_diretorios_brasil__cnae_2') - field: cnae_2.cnae_2 + field: classe + - name: cnae_2_doador_subclasse + description: Subclasse da Classificação de Atividades Econômicas (CNAE) + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__cnae_2') + field: subclasse - name: cnpj_prestador_contas description: CNPJ do prestador de contas - name: cpf_cnpj_doador @@ -1025,12 +1054,30 @@ models: description: Fonte da receita - name: id_municipio description: ID Município IBGE 7 Dígitos do diretório + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio - name: id_municipio_doador description: ID Município do doador - IBGE + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio - name: id_municipio_tse description: ID Municipio TSE do diretório + tests: + - custom_relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio_tse + ignore_values: ['73709'] - name: id_municipio_tse_doador description: ID Município do doador - TSE + tests: + - custom_relationships: + to: ref('br_bd_diretorios_brasil__municipio') + field: id_municipio_tse + ignore_values: ['73709'] - name: natureza_receita description: Natureza da receita - name: nome_doador @@ -1075,6 +1122,10 @@ models: description: Sigla do partido do doador - name: sigla_uf description: Sigla da unidade da federação + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla - name: sigla_uf_doador description: Sigla da unidade da federação do doador - name: tipo_diretorio From 881e0648ff03cdb0c7d9a362544fae6a6a8c84de Mon Sep 17 00:00:00 2001 From: Luiz Eduardo Date: Tue, 17 Sep 2024 02:23:55 -0300 Subject: [PATCH 3/4] Ajuste schema.yml --- models/br_tse_eleicoes/schema.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/models/br_tse_eleicoes/schema.yml b/models/br_tse_eleicoes/schema.yml index 32431974..ade69129 100644 --- a/models/br_tse_eleicoes/schema.yml +++ b/models/br_tse_eleicoes/schema.yml @@ -146,6 +146,10 @@ models: field: sigla - name: sigla_uf_nascimento description: Sigla da unidade da federação de nascimento + tests: + - relationships: + to: ref('br_bd_diretorios_brasil__uf') + field: sigla - name: situacao description: Situação - name: tipo_eleicao @@ -191,6 +195,22 @@ models: description: CPF do vice ou suplente - name: data_despesa description: Data da despesa + - name: data_despesa + description: Data da despesa + tests: + - custom_relationships: + to: ref('br_bd_diretorios_data_tempo__data') + field: data.data + ignore_values: + - '8200-02-20' + - '8008-09-05' + - '8200-08-02' + - '6200-09-06' + - '6200-09-30' + - '7200-08-21' + - '8006-09-29' + - '9200-05-05' + - '5919-11-11' - name: data_eleicao description: Data da eleição tests: From f7a968011f981c3257ff5faf4e4ca2d091ff3924 Mon Sep 17 00:00:00 2001 From: Luiz Eduardo Date: Tue, 17 Sep 2024 20:13:57 -0300 Subject: [PATCH 4/4] Remover coluna duplicada --- models/br_tse_eleicoes/schema.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/models/br_tse_eleicoes/schema.yml b/models/br_tse_eleicoes/schema.yml index ade69129..014383d4 100644 --- a/models/br_tse_eleicoes/schema.yml +++ b/models/br_tse_eleicoes/schema.yml @@ -193,8 +193,6 @@ models: description: CPF ou CNPJ do fornecedor - name: cpf_vice_suplente description: CPF do vice ou suplente - - name: data_despesa - description: Data da despesa - name: data_despesa description: Data da despesa tests: