Skip to content

Commit

Permalink
Merge pull request #599 from basedosdados/br_cgu_emenda_parlamentar
Browse files Browse the repository at this point in the history
[dados] br_cgu_emenda_parlamentar
  • Loading branch information
tricktx authored Aug 26, 2024
2 parents 4144bd6 + 47220b2 commit 034f63c
Show file tree
Hide file tree
Showing 3 changed files with 224 additions and 0 deletions.
3 changes: 3 additions & 0 deletions dbt_project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,9 @@ models:
br_cgu_dados_abertos:
+materialized: table
+schema: br_cgu_dados_abertos
br_cgu_emenda_parlamentar:
+materialized: table
+schema: br_cgu_emenda_parlamentar
br_cgu_pessoal_executivo_federal:
+materialized: table
+schema: br_cgu_pessoal_executivo_federal
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
{{
config(
alias="microdados", schema="br_cgu_emenda_parlamentar", materialized="table"
)
}}

with
tabela_inicial as (
select
safe_cast(`Ano da Emenda` as int64) ano_emenda,
safe_cast(
replace(`Código da Emenda`, "Sem informaç", "Sem informação") as string
) codigo_emenda,
safe_cast(`Número da emenda` as string) numero_emenda,
safe_cast(`Tipo de Emenda` as string) tipo_emenda,
safe_cast(`Código do Autor da Emenda` as string) codigo_autor_emenda,
safe_cast(`Nome do Autor da Emenda` as string) nome_autor_emenda,
case
when `Localidade do gasto` = 'PRESIDENTE JUSCELINO - RN'
then "SERRA CAIADA - RN" -- - https://www.serracaiada.rn.gov.br/omunicipio.php
else `Localidade do gasto`
end as localidade_gasto,
safe_cast(`Código Função` as string) codigo_funcao,
safe_cast(`Nome Função` as string) nome_funcao,
safe_cast(`Código Subfunção` as string) codigo_subfuncao,
safe_cast(`Nome Subfunção` as string) nome_subfuncao,
safe_cast(`Valor Empenhado` as float64) valor_empenhado,
safe_cast(`Valor Liquidado` as float64) valor_liquidado,
safe_cast(`Valor Pago` as float64) valor_pago,
safe_cast(
`Valor Restos A Pagar Inscritos` as float64
) valor_resto_pagar_inscrito,
safe_cast(
`Valor Restos A Pagar Cancelados` as float64
) valor_resto_pagar_cancelado,
safe_cast(`Valor Restos A Pagar Pagos` as float64) valor_resto_pagar_pagos,
from `basedosdados-dev.br_cgu_emenda_parlamentar_staging.microdados`
),
tabela_1 as (
select
ano_emenda,
codigo_emenda,
numero_emenda,
tipo_emenda,
codigo_autor_emenda,
nome_autor_emenda,
localidade_gasto,
if
(
regexp_contains(localidade_gasto, r'\(UF\)$'),
null,
trim(split(localidade_gasto, " - ")[safe_offset(0)])
) as localidade_municipio,
trim(
split(localidade_gasto, " - ")[safe_offset(1)]
) localidade_estado_sigla,
if
(
regexp_contains(localidade_gasto, r'\(UF\)$'),
trim(split(localidade_gasto, " (UF)")[safe_offset(0)]),
null
) as localidade_estado,
codigo_funcao,
nome_funcao,
codigo_subfuncao,
nome_subfuncao,
valor_empenhado,
valor_liquidado,
valor_pago,
valor_resto_pagar_inscrito,
valor_resto_pagar_cancelado,
valor_resto_pagar_pagos,
from tabela_inicial
),
tabela_2 as (
select *, sigla_uf.sigla as sigla_uf,
from tabela_1
left join
`basedosdados-dev.br_bd_diretorios_brasil.uf` as sigla_uf
on localidade_estado = upper(sigla_uf.nome)
),
tabela_3 as (
select
ano_emenda,
codigo_emenda,
numero_emenda,
tipo_emenda,
codigo_autor_emenda,
nome_autor_emenda,
localidade_gasto,
case
when localidade_municipio = 'TRAJANO DE MORAIS'
then "TRAJANO DE MORAES"
when localidade_municipio = "SANTANA DO LIVRAMENTO"
then upper("Sant'Ana do Livramento")
when localidade_municipio = "EMBU"
then "EMBU DAS ARTES"
when localidade_municipio = "ELDORADO DOS CARAJÁS"
then "ELDORADO DO CARAJÁS"
when localidade_municipio = "AUGUSTO SEVERO"
then "CAMPO GRANDE"
-- -
-- https://g1.globo.com/rn/rio-grande-do-norte/noticia/campo-grande-ou-augusto-severo-populacao-pode-decidir-nas-eleicoes-qual-o-nome-da-cidade.ghtml
else upper(localidade_municipio)
end as localidade_municipio,
coalesce(localidade_estado_sigla, sigla_uf) as localidade_sigla_uf,
codigo_funcao,
nome_funcao,
codigo_subfuncao,
nome_subfuncao,
valor_empenhado,
valor_liquidado,
valor_pago,
valor_resto_pagar_inscrito,
valor_resto_pagar_cancelado,
valor_resto_pagar_pagos
from tabela_2
),
tabela_4 as (
select
ano_emenda,
codigo_emenda,
numero_emenda,
tipo_emenda,
codigo_autor_emenda,
nome_autor_emenda,
localidade_gasto,
id_municipio.id_municipio as id_municipio_gasto,
localidade_sigla_uf as sigla_uf_gasto,
codigo_funcao,
nome_funcao,
codigo_subfuncao,
nome_subfuncao,
valor_empenhado,
valor_liquidado,
valor_pago,
valor_resto_pagar_inscrito,
valor_resto_pagar_cancelado,
valor_resto_pagar_pagos
from tabela_3
left join
`basedosdados.br_bd_diretorios_brasil.municipio` as id_municipio
on localidade_municipio = upper(id_municipio.nome)
and localidade_sigla_uf = id_municipio.sigla_uf
)
select *
from tabela_4
74 changes: 74 additions & 0 deletions models/br_cgu_emenda_parlamentar/schema.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
version: 2
models:
- name: br_cgu_emenda_parlamentar__microdados
description: Dados referente a emendas parlamentares
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- ano_emenda
- codigo_emenda
- tipo_emenda
- localidade_gasto
- nome_funcao
- nome_subfuncao
- not_null_proportion_multiple_columns:
at_least: 0.25
columns:
- name: ano_emenda
description: Ano em que emenda foi proposta
tests:
- relationships:
to: ref('br_bd_diretorios_data_tempo__ano')
field: ano.ano
- name: codigo_emenda
description: Identificador da emenda parlamentar
- name: numero_emenda
description: Número da emenda parlamentar
- name: tipo_emenda
description: Tipo da emenda parlamentar
- name: codigo_autor_emenda
description: Código do autor da emenda parlamentar
- name: nome_autor_emenda
description: Nome do autor da emenda parlamentar
- name: localidade_gasto
description: Localidade de destinação do recurso. Este campo poderá estar
em branco, a depender da localidade de aplicação.
- name: sigla_uf_gasto
description: Sigla da Unidade da Federação de destinação do recurso. Este
campo poderá estar em branco, a depender da localidade de aplicação.
tests:
- relationships:
to: ref('br_bd_diretorios_brasil__uf')
field: sigla
- name: id_municipio_gasto
description: Código IBGE do município de destinação do recurso. Este campo
poderá estar em branco, a depender da localidade de aplicação.
tests:
- relationships:
to: ref('br_bd_diretorios_brasil__municipio')
field: id_municipio
- name: codigo_funcao
description: Código da Função em que foi classificada a despesa associada
à emenda parlamentar.
- name: nome_funcao
description: Nome da Função em que foi classificada a despesa associada à
emenda parlamentar.
- name: codigo_subfuncao
description: Código da Subfunção em que foi classificada a despesa associada
à emenda parlamentar.
- name: nome_subfuncao
description: Nome da subfunção em que foi classificada a despesa associada
à emenda parlamentar.
- name: valor_empenhado
description: Valor empenhado para a emenda, no ano
- name: valor_liquidado
description: Valor liquidado para a emenda, no ano
- name: valor_pago
description: Valor pago para a emenda, no ano
- name: valor_resto_pagar_inscrito
description: Valor inscrito em restos a pagar para a emenda, no ano
- name: valor_resto_pagar_cancelado
description: Valor cancelado das inscrições em restos a pagar, no ano
- name: valor_resto_pagar_pagos
description: Valor pago das inscrições em restos a pagar, no ano.

0 comments on commit 034f63c

Please sign in to comment.