Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
RONALDO RODRIGUES DE OLIVEIRA
/
simec-scripts-banco
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
3a440373
authored
Sep 11, 2025
by
RONALDO RODRIGUES DE OLIVEIRA
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Contemplar estados e distrito federal
parent
20ef3b4d
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
84 additions
and
117 deletions
declaracao_omissao/2-function-par_get_responsaveis_termo.sql
declaracao_omissao/2-function-par_get_responsaveis_termo.sql
View file @
3a440373
-- drop function if exists par.get_responsaveis_termo_par(varchar, varchar, integer, integer, date, date, varchar)
-- DROP FUNCTION par.get_responsaveis(integer , varchar, varchar, date, date, date, varchar);
create
or
replace
function
par
.
get_responsaveis_termo_par
(
i_muncod
varchar
,
i_processo
varchar
,
i_prpid
integer
,
i_dopid
integer
,
i_datainiciovigencia
date
,
i_datafimvigencia
date
,
i_tipoprograma
varchar
(
45
)
)
returns
table
(
_rrpid
int
,
_cpf
varchar
,
_nomeprefeito
varchar
,
_dtiniciomandato
date
,
_dtfimmandato
date
,
_naturezainteresse
varchar
)
language
plpgsql
as
$$
declare
CREATE
OR
REPLACE
FUNCTION
par
.
get_responsaveis
(
i_itrid
integer
,
i_cnpj
character
varying
,
i_muncod
character
varying
,
i_datainiciovigencia
date
,
i_datafimvigencia
date
,
i_datafimpc
date
,
i_tipoprograma
character
varying
)
RETURNS
TABLE
(
_rrpid
integer
,
_cpf
character
varying
,
_nomeprefeito
character
varying
,
_dtiniciomandato
date
,
_dtfimmandato
date
,
_naturezainteresse
character
varying
)
LANGUAGE
plpgsql
AS
$
function
$
DECLARE
responsavel
record
;
responsavel
record
;
tem_ex_dirigente
boolean
:
=
FALSE
;
ref_mandat_anter_inicio
date
;
ref_mandat_anter_fim
date
;
BEGIN
BEGIN
IF
i_itrid
=
2
THEN
with
prefeitos
as
(
select
FOR
responsavel
IN
(
WITH
prefeitos
as
(
SELECT
rrpid
,
rrpid
,
usucpf
,
rrpnomeprefeito
,
rrpdtiniciomandato
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
rrpdtfimmandato
,
usucpf
,
rrpnomeprefeito
,
trim
(
par
.
naturezainteresse_v2
(
trim
(
par
.
naturezainteresse_v2
(
rrpdtiniciomandato
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
rrpdtfimmandato
,
i_datainiciovigencia
,
i_datainiciovigencia
,
i_datafimvigencia
,
i_datafimvigencia
,
i_tipoprograma
))
i_tipoprograma
)
as
naturezainteresse
)
as
naturezainteresse
from
FROM
par
.
rollresponsaveisprefeitos
where
muncod
in
(
i_muncod
)
par
.
rollresponsaveisprefeitos
)
WHERE
select
muncod
in
(
i_muncod
)
(
rrpdtiniciomandato
-
31
),
(
rrpdtiniciomandato
-
1
)
into
ref_mandat_anter_inicio
,
ref_mandat_anter_fim
and
(
i_datainiciovigencia
between
rrpdtiniciomandato
and
rrpdtfimmandato
or
i_datafimpc
between
rrpdtiniciomandato
and
rrpdtfimmandato
)
from
prefeitos
UNION
where
SELECT
*
FROM
(
trim
(
naturezainteresse
)
IN
(
'Atual Gestor'
,
'Atual Gestor /Responsável /Corresponsável'
,
'Atual Gestor /Corresponsável'
);
SELECT
for
responsavel
in
(
with
prefeitos
as
(
select
rrpid
,
rrpid
,
usucpf
,
rrpnomeprefeito
,
rrpdtiniciomandato
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
rrpdtfimmandato
,
usucpf
,
rrpnomeprefeito
,
trim
(
par
.
naturezainteresse_v2
(
trim
(
par
.
naturezainteresse_v2
(
rrpdtiniciomandato
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
rrpdtfimmandato
,
...
@@ -65,94 +44,82 @@ create or replace function par.get_responsaveis_termo_par(
...
@@ -65,94 +44,82 @@ create or replace function par.get_responsaveis_termo_par(
i_datafimvigencia
,
i_datafimvigencia
,
i_tipoprograma
))
i_tipoprograma
))
as
naturezainteresse
as
naturezainteresse
from
FROM
par
.
rollresponsaveisprefeitos
where
muncod
in
(
i_muncod
)
par
.
rollresponsaveisprefeitos
where
muncod
in
(
i_muncod
)
)
AS
subquery
WHERE
TRIM
(
subquery
.
naturezainteresse
)
IN
(
'Atual Gestor'
,
'Atual Gestor /Responsável /Corresponsável'
,
'Atual Gestor /Corresponsável'
)
)
SELECT
DISTINCT
rrpid
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
usucpf
,
rrpnomeprefeito
,
naturezainteresse
FROM
prefeitos
order
by
rrpdtiniciomandato
desc
)
)
select
LOOP
distinct
rrpid
,
usucpf
,
rrpnomeprefeito
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
naturezainteresse
from
prefeitos
where
trim
(
naturezainteresse
)
IN
(
'Ex-dirigente'
)
and
rrpdtfimmandato
between
ref_mandat_anter_inicio
and
ref_mandat_anter_fim
order
by
rrpdtiniciomandato
asc
)
loop
if
trim
(
responsavel
.
naturezainteresse
)
=
'Ex-dirigente'
then
if
exists
(
select
usucpf
from
par
.
get_gestor_ciencia_par
(
responsavel
.
usucpf
,
i_processo
,
i_dopid
,
i_prpid
)
)
then
_rrpid
:
=
responsavel
.
rrpid
;
_rrpid
:
=
responsavel
.
rrpid
;
_cpf
:
=
responsavel
.
usucpf
;
_cpf
:
=
responsavel
.
usucpf
;
_nomeprefeito
:
=
responsavel
.
rrpnomeprefeito
;
_nomeprefeito
:
=
responsavel
.
rrpnomeprefeito
;
_dtiniciomandato
:
=
responsavel
.
rrpdtiniciomandato
;
_dtiniciomandato
:
=
responsavel
.
rrpdtiniciomandato
;
_dtfimmandato
:
=
responsavel
.
rrpdtfimmandato
;
_dtfimmandato
:
=
responsavel
.
rrpdtfimmandato
;
IF
TRIM
(
responsavel
.
naturezainteresse
)
=
'Ex-dirigente'
THEN
_naturezainteresse
:
=
'Responsável'
;
_naturezainteresse
:
=
'Responsável'
;
tem_ex_dirigente
=
TRUE
;
ELSE
_naturezainteresse
:
=
TRIM
(
responsavel
.
naturezainteresse
);
END
IF
;
return
next
;
return
next
;
end
if
;
END
LOOP
;
end
if
;
ELSE
FOR
responsavel
IN
(
end
loop
;
WITH
secretarios
as
(
SELECT
for
responsavel
in
(
with
prefeitos
as
(
select
rrsid
,
rrpid
,
rrsdtiniciomandato
,
rrsdtfimmandato
,
usucpf
,
usucpf
,
rrpnomeprefeito
,
rrsnomesecretario
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
trim
(
par
.
naturezainteresse_v2
(
trim
(
par
.
naturezainteresse_v2
(
rrp
dtiniciomandato
,
rrs
dtiniciomandato
,
rrp
dtfimmandato
,
rrs
dtfimmandato
,
i_datainiciovigencia
,
i_datainiciovigencia
,
i_datafimvigencia
,
i_datafimvigencia
,
i_tipoprograma
))
i_tipoprograma
)
as
naturezainteresse
)
as
naturezainteresse
from
FROM
par
.
rollresponsaveisprefeitos
where
muncod
in
(
i_muncod
)
par
.
rollresponsaveissecretarios
)
WHERE
select
rrscnpj
in
(
i_cnpj
)
distinct
and
(
rrsdtfimmandato
between
i_datainiciovigencia
and
i_datafimpc
or
rrsdtiniciomandato
between
i_datainiciovigencia
and
i_datafimpc
)
rrpid
,
UNION
SELECT
*
FROM
(
SELECT
rrsid
,
rrsdtiniciomandato
,
rrsdtfimmandato
,
usucpf
,
usucpf
,
rrpnomeprefeito
,
rrsnomesecretario
,
rrpdtiniciomandato
,
trim
(
par
.
naturezainteresse_v2
(
rrpdtfimmandato
,
rrsdtiniciomandato
,
naturezainteresse
rrsdtfimmandato
,
from
prefeitos
i_datainiciovigencia
,
where
i_datafimvigencia
,
trim
(
naturezainteresse
)
NOT
IN
(
'Ex-dirigente'
)
i_tipoprograma
)
order
by
rrpdtiniciomandato
asc
)
as
naturezainteresse
FROM
par
.
rollresponsaveissecretarios
WHERE
rrscnpj
in
(
i_cnpj
)
)
AS
subquery
WHERE
TRIM
(
subquery
.
naturezainteresse
)
IN
(
'Atual Gestor'
,
'Atual Gestor /Responsável /Corresponsável'
,
'Atual Gestor /Corresponsável'
)
)
SELECT
DISTINCT
rrsid
,
rrsdtiniciomandato
,
rrsdtfimmandato
,
usucpf
,
rrsnomesecretario
,
naturezainteresse
FROM
secretarios
order
by
rrsdtfimmandato
desc
)
)
loop
LOOP
if
tem_ex_dirigente
and
(
trim
(
responsavel
.
naturezainteresse
)
=
'Atual Gestor'
)
or
(
trim
(
responsavel
.
naturezainteresse
)
=
'Atual Gestor /Responsável /Corresponsável'
)
or
(
trim
(
responsavel
.
naturezainteresse
)
=
'Atual Gestor /Corresponsável'
)
then
_rrpid
:
=
responsavel
.
rrsid
;
if
tem_ex_dirigente
and
exists
(
select
usucpf
from
par
.
get_gestor_ciencia_par
(
responsavel
.
usucpf
,
i_processo
,
i_dopid
,
i_prpid
)
)
then
_rrpid
:
=
responsavel
.
rrpid
;
_cpf
:
=
responsavel
.
usucpf
;
_nomeprefeito
:
=
responsavel
.
rrpnomeprefeito
;
_dtiniciomandato
:
=
responsavel
.
rrpdtiniciomandato
;
_dtfimmandato
:
=
responsavel
.
rrpdtfimmandato
;
_naturezainteresse
:
=
trim
(
responsavel
.
naturezainteresse
);
return
next
;
end
if
;
else
_rrpid
:
=
responsavel
.
rrpid
;
_cpf
:
=
responsavel
.
usucpf
;
_cpf
:
=
responsavel
.
usucpf
;
_nomeprefeito
:
=
responsavel
.
rrpnomeprefeito
;
_nomeprefeito
:
=
responsavel
.
rrsnomesecretario
;
_dtiniciomandato
:
=
responsavel
.
rrpdtiniciomandato
;
_dtiniciomandato
:
=
responsavel
.
rrsdtiniciomandato
;
_dtfimmandato
:
=
responsavel
.
rrpdtfimmandato
;
_dtfimmandato
:
=
responsavel
.
rrsdtfimmandato
;
_naturezainteresse
:
=
trim
(
responsavel
.
naturezainteresse
);
IF
TRIM
(
responsavel
.
naturezainteresse
)
=
'Ex-dirigente'
THEN
_naturezainteresse
:
=
'Responsável'
;
ELSE
_naturezainteresse
:
=
TRIM
(
responsavel
.
naturezainteresse
);
END
IF
;
return
next
;
return
next
;
end
if
;
END
LOOP
;
end
loop
;
END
IF
;
end
;
$$
END
;
$
function
$
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment