-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* adiciona modo tec * link pr * sqlfmt
- Loading branch information
Showing
2 changed files
with
144 additions
and
149 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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") |