Skip to content

Commit

Permalink
Adiciona modo TEC na tabela cadastro.operadoras (#265)
Browse files Browse the repository at this point in the history
* adiciona modo tec

* link pr

* sqlfmt
  • Loading branch information
pixuimpou authored Oct 8, 2024
1 parent 37bbbf9 commit 82a30bf
Show file tree
Hide file tree
Showing 2 changed files with 144 additions and 149 deletions.
5 changes: 5 additions & 0 deletions queries/models/cadastro/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog - cadastro

## [1.3.1] - 2024-10-08

### Alterado
- Adiciona TEC no modelo `operadoras.sql` (https://github.com/prefeitura-rio/pipelines_rj_smtr/pull/265)

## [1.3.0] - 2024-09-10

### Adicionado
Expand Down
288 changes: 139 additions & 149 deletions queries/models/cadastro/operadoras.sql
Original file line number Diff line number Diff line change
@@ -1,152 +1,142 @@
{{
config(
materialized="table",
tags=["identificacao"]
)
}}
{{ config(materialized="table", tags=["identificacao"]) }}

WITH operadora_jae AS (
SELECT
ot.cd_operadora_transporte,
ot.cd_cliente,
m.modo,
ot.cd_tipo_modal,
ot.ds_tipo_modal AS modo_jae,
-- STU considera BRT como Ônibus
CASE
WHEN ot.cd_tipo_modal = '3' THEN 'Ônibus'
ELSE m.modo
END AS modo_join,
ot.in_situacao_atividade,
CASE
WHEN c.in_tipo_pessoa_fisica_juridica = 'F' THEN 'CPF'
WHEN c.in_tipo_pessoa_fisica_juridica = 'J' THEN 'CNPJ'
END AS tipo_documento,
c.nr_documento,
c.nm_cliente,
cb.cd_agencia,
cb.cd_tipo_conta,
cb.nm_banco,
cb.nr_banco,
cb.nr_conta
FROM
{{ ref("staging_operadora_transporte") }} AS ot
JOIN
{{ ref("staging_cliente") }} AS c
ON
ot.cd_cliente = c.cd_cliente
LEFT JOIN
{{ ref("staging_conta_bancaria") }} AS cb
ON
ot.cd_cliente = cb.cd_cliente
JOIN
{{ source("cadastro", "modos") }} m
ON
ot.cd_tipo_modal = m.id_modo AND m.fonte = "jae"
),
stu_pessoa_juridica AS (
SELECT
perm_autor,
cnpj AS documento,
processo,
id_modo,
modo AS modo_stu,
tipo_permissao,
data_registro,
razao_social AS nome_operadora,
"CNPJ" AS tipo_documento
FROM
{{ ref("staging_operadora_empresa") }}
WHERE perm_autor NOT IN ({{ var("ids_consorcios").keys()|reject("equalto", "'229000010'")|join(", ") }})
),
stu_pessoa_fisica AS (
SELECT
perm_autor,
cpf AS documento,
processo,
id_modo,
modo AS modo_stu,
tipo_permissao,
data_registro,
nome AS nome_operadora,
"CPF" AS tipo_documento
FROM
{{ ref("staging_operadora_pessoa_fisica") }}
),
stu AS (
SELECT
s.*,
m.modo
FROM (
SELECT
*
FROM
stu_pessoa_juridica
with
operadora_jae as (
select
ot.cd_operadora_transporte,
ot.cd_cliente,
m.modo,
ot.cd_tipo_modal,
ot.ds_tipo_modal as modo_jae,
-- STU considera BRT como Ônibus
case when ot.cd_tipo_modal = '3' then 'Ônibus' else m.modo end as modo_join,
ot.in_situacao_atividade,
case
when c.in_tipo_pessoa_fisica_juridica = 'F'
then 'CPF'
when c.in_tipo_pessoa_fisica_juridica = 'J'
then 'CNPJ'
end as tipo_documento,
c.nr_documento,
c.nm_cliente,
cb.cd_agencia,
cb.cd_tipo_conta,
cb.nm_banco,
cb.nr_banco,
cb.nr_conta
from {{ ref("staging_operadora_transporte") }} as ot
join {{ ref("staging_cliente") }} as c on ot.cd_cliente = c.cd_cliente
left join
{{ ref("staging_conta_bancaria") }} as cb on ot.cd_cliente = cb.cd_cliente
join
{{ source("cadastro", "modos") }} m
on ot.cd_tipo_modal = m.id_modo
and m.fonte = "jae"
),
stu_pessoa_juridica as (
select
perm_autor,
cnpj as documento,
processo,
id_modo,
modo as modo_stu,
tipo_permissao,
data_registro,
razao_social as nome_operadora,
"CNPJ" as tipo_documento
from {{ ref("staging_operadora_empresa") }}
where
perm_autor not in (
{{
var("ids_consorcios").keys() | reject(
"equalto", "'229000010'"
) | join(", ")
}}
)
),
stu_pessoa_fisica as (
select
perm_autor,
cpf as documento,
processo,
id_modo,
modo as modo_stu,
tipo_permissao,
data_registro,
nome as nome_operadora,
"CPF" as tipo_documento
from {{ ref("staging_operadora_pessoa_fisica") }}
),
stu as (
select s.*, m.modo
from
(
select *
from stu_pessoa_juridica

UNION ALL
union all

SELECT
*
FROM
stu_pessoa_fisica
) s
JOIN
{{ source("cadastro", "modos") }} m
ON
s.id_modo = m.id_modo AND m.fonte = "stu"
),
cadastro AS (
SELECT
COALESCE(s.perm_autor, j.cd_operadora_transporte) AS id_operadora,
UPPER(REGEXP_REPLACE(NORMALIZE(COALESCE(s.nome_operadora, j.nm_cliente), NFD), r"\pM", '')) AS operadora_completo,
s.tipo_permissao AS tipo_operadora,
COALESCE(j.modo, s.modo) AS modo,
s.modo_stu,
j.modo_jae,
s.processo AS id_processo,
s.data_registro AS data_processo,
COALESCE(s.documento, j.nr_documento) AS documento,
COALESCE(s.tipo_documento, j.tipo_documento) AS tipo_documento,
s.perm_autor AS id_operadora_stu,
j.cd_operadora_transporte AS id_operadora_jae,
SAFE_CAST(j.in_situacao_atividade AS BOOLEAN) AS indicador_operador_ativo_jae,
j.cd_agencia AS agencia,
j.cd_tipo_conta AS tipo_conta,
j.nm_banco AS banco,
LPAD(j.nr_banco, 3, '0') AS codigo_banco,
j.nr_conta AS conta
FROM
stu AS s
FULL OUTER JOIN
operadora_jae AS j
ON
s.documento = j.nr_documento
AND s.modo = j.modo_join
)
SELECT
id_operadora,
modo,
modo_stu,
modo_jae,
CASE
WHEN tipo_documento = "CNPJ" THEN operadora_completo
ELSE REGEXP_REPLACE(operadora_completo, '[^ ]', '*')
END AS operadora,
operadora_completo,
tipo_operadora,
tipo_documento,
documento,
codigo_banco,
banco,
agencia,
tipo_conta,
conta,
id_operadora_stu,
id_operadora_jae,
id_processo,
data_processo,
indicador_operador_ativo_jae
FROM
cadastro
WHERE
modo NOT IN ("Escolar", "Táxi", "TEC")
select *
from stu_pessoa_fisica
) s
join
{{ source("cadastro", "modos") }} m
on s.id_modo = m.id_modo
and m.fonte = "stu"
),
cadastro as (
select
coalesce(s.perm_autor, j.cd_operadora_transporte) as id_operadora,
upper(
regexp_replace(
normalize(coalesce(s.nome_operadora, j.nm_cliente), nfd), r"\pM", ''
)
) as operadora_completo,
s.tipo_permissao as tipo_operadora,
coalesce(j.modo, s.modo) as modo,
s.modo_stu,
j.modo_jae,
s.processo as id_processo,
s.data_registro as data_processo,
coalesce(s.documento, j.nr_documento) as documento,
coalesce(s.tipo_documento, j.tipo_documento) as tipo_documento,
s.perm_autor as id_operadora_stu,
j.cd_operadora_transporte as id_operadora_jae,
safe_cast(
j.in_situacao_atividade as boolean
) as indicador_operador_ativo_jae,
j.cd_agencia as agencia,
j.cd_tipo_conta as tipo_conta,
j.nm_banco as banco,
lpad(j.nr_banco, 3, '0') as codigo_banco,
j.nr_conta as conta
from stu as s
full outer join
operadora_jae as j on s.documento = j.nr_documento and s.modo = j.modo_join
)
select
id_operadora,
modo,
modo_stu,
modo_jae,
case
when tipo_documento = "CNPJ"
then operadora_completo
else regexp_replace(operadora_completo, '[^ ]', '*')
end as operadora,
operadora_completo,
tipo_operadora,
tipo_documento,
documento,
codigo_banco,
banco,
agencia,
tipo_conta,
conta,
id_operadora_stu,
id_operadora_jae,
id_processo,
data_processo,
indicador_operador_ativo_jae
from cadastro
where modo not in ("Escolar", "Táxi")

0 comments on commit 82a30bf

Please sign in to comment.