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
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
116 additions
and
150 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
(
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
)
i_muncod
varchar
,
RETURNS
TABLE
(
_rrpid
integer
,
_cpf
character
varying
,
_nomeprefeito
character
varying
,
_dtiniciomandato
date
,
_dtfimmandato
date
,
_naturezainteresse
character
varying
)
i_processo
varchar
,
LANGUAGE
plpgsql
i_prpid
integer
,
AS
$
function
$
i_dopid
integer
,
DECLARE
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
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
(
rrpid
,
WITH
prefeitos
as
(
usucpf
,
SELECT
rrpnomeprefeito
,
rrpid
,
rrpdtiniciomandato
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
rrpdtfimmandato
,
trim
(
par
.
naturezainteresse_v2
(
usucpf
,
rrpdtiniciomandato
,
rrpnomeprefeito
,
rrpdtfimmandato
,
trim
(
par
.
naturezainteresse_v2
(
i_datainiciovigencia
,
rrpdtiniciomandato
,
i_datafimvigencia
,
i_tipoprograma
))
as
naturezainteresse
from
par
.
rollresponsaveisprefeitos
where
muncod
in
(
i_muncod
)
)
select
(
rrpdtiniciomandato
-
31
),
(
rrpdtiniciomandato
-
1
)
into
ref_mandat_anter_inicio
,
ref_mandat_anter_fim
from
prefeitos
where
trim
(
naturezainteresse
)
IN
(
'Atual Gestor'
,
'Atual Gestor /Responsável /Corresponsável'
,
'Atual Gestor /Corresponsável'
);
for
responsavel
in
(
with
prefeitos
as
(
select
rrpid
,
usucpf
,
rrpnomeprefeito
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
trim
(
par
.
naturezainteresse_v2
(
rrpdtiniciomandato
,
rrpdtfimmandato
,
i_datainiciovigencia
,
i_datafimvigencia
,
i_tipoprograma
))
as
naturezainteresse
from
par
.
rollresponsaveisprefeitos
where
muncod
in
(
i_muncod
)
)
select
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
;
_cpf
:
=
responsavel
.
usucpf
;
_nomeprefeito
:
=
responsavel
.
rrpnomeprefeito
;
_dtiniciomandato
:
=
responsavel
.
rrpdtiniciomandato
;
_dtfimmandato
:
=
responsavel
.
rrpdtfimmandato
;
_naturezainteresse
:
=
'Responsável'
;
tem_ex_dirigente
=
TRUE
;
return
next
;
end
if
;
end
if
;
end
loop
;
for
responsavel
in
(
with
prefeitos
as
(
select
rrpid
,
usucpf
,
rrpnomeprefeito
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
rrpdtfimmandato
,
trim
(
par
.
naturezainteresse_v2
(
i_datainiciovigencia
,
rrpdtiniciomandato
,
i_datafimvigencia
,
rrpdtfimmandato
,
i_tipoprograma
)
i_datainiciovigencia
,
)
as
naturezainteresse
i_datafimvigencia
,
FROM
i_tipoprograma
))
par
.
rollresponsaveisprefeitos
as
naturezainteresse
WHERE
from
muncod
in
(
i_muncod
)
par
.
rollresponsaveisprefeitos
where
muncod
in
(
i_muncod
)
and
(
i_datainiciovigencia
between
rrpdtiniciomandato
and
rrpdtfimmandato
or
i_datafimpc
between
rrpdtiniciomandato
and
rrpdtfimmandato
)
)
UNION
select
SELECT
*
FROM
(
distinct
SELECT
rrpid
,
rrpid
,
usucpf
,
rrpdtiniciomandato
,
rrpnomeprefeito
,
rrpdtfimmandato
,
rrpdtiniciomandato
,
usucpf
,
rrpdtfimmandato
,
rrpnomeprefeito
,
naturezainteresse
trim
(
par
.
naturezainteresse_v2
(
from
prefeitos
rrpdtiniciomandato
,
where
rrpdtfimmandato
,
trim
(
naturezainteresse
)
NOT
IN
(
'Ex-dirigente'
)
i_datainiciovigencia
,
order
by
rrpdtiniciomandato
asc
i_datafimvigencia
,
)
i_tipoprograma
))
loop
as
naturezainteresse
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
FROM
if
tem_ex_dirigente
and
exists
(
select
usucpf
from
par
.
get_gestor_ciencia_par
(
responsavel
.
usucpf
,
i_processo
,
i_dopid
,
i_prpid
)
)
par
.
rollresponsaveisprefeitos
where
muncod
in
(
i_muncod
)
then
)
AS
subquery
WHERE
TRIM
(
subquery
.
naturezainteresse
)
IN
(
'Atual Gestor'
,
'Atual Gestor /Responsável /Corresponsável'
,
'Atual Gestor /Corresponsável'
)
_rrpid
:
=
responsavel
.
rrpid
;
_cpf
:
=
responsavel
.
usucpf
;
)
SELECT
DISTINCT
rrpid
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
usucpf
,
rrpnomeprefeito
,
naturezainteresse
FROM
prefeitos
order
by
rrpdtiniciomandato
desc
_nomeprefeito
:
=
responsavel
.
rrpnomeprefeito
;
)
_dtiniciomandato
:
=
responsavel
.
rrpdtiniciomandato
;
LOOP
_dtfimmandato
:
=
responsavel
.
rrpdtfimmandato
;
_naturezainteresse
:
=
trim
(
responsavel
.
naturezainteresse
);
return
next
;
end
if
;
else
_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
;
_naturezainteresse
:
=
trim
(
responsavel
.
naturezainteresse
);
IF
TRIM
(
responsavel
.
naturezainteresse
)
=
'Ex-dirigente'
THEN
return
next
;
_naturezainteresse
:
=
'Responsável'
;
end
if
;
ELSE
end
loop
;
_naturezainteresse
:
=
TRIM
(
responsavel
.
naturezainteresse
);
end
;
$$
END
IF
;
return
next
;
END
LOOP
;
ELSE
FOR
responsavel
IN
(
WITH
secretarios
as
(
\ No newline at end of file
SELECT
rrsid
,
rrsdtiniciomandato
,
rrsdtfimmandato
,
usucpf
,
rrsnomesecretario
,
trim
(
par
.
naturezainteresse_v2
(
rrsdtiniciomandato
,
rrsdtfimmandato
,
i_datainiciovigencia
,
i_datafimvigencia
,
i_tipoprograma
)
)
as
naturezainteresse
FROM
par
.
rollresponsaveissecretarios
WHERE
rrscnpj
in
(
i_cnpj
)
and
(
rrsdtfimmandato
between
i_datainiciovigencia
and
i_datafimpc
or
rrsdtiniciomandato
between
i_datainiciovigencia
and
i_datafimpc
)
UNION
SELECT
*
FROM
(
SELECT
rrsid
,
rrsdtiniciomandato
,
rrsdtfimmandato
,
usucpf
,
rrsnomesecretario
,
trim
(
par
.
naturezainteresse_v2
(
rrsdtiniciomandato
,
rrsdtfimmandato
,
i_datainiciovigencia
,
i_datafimvigencia
,
i_tipoprograma
)
)
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
_rrpid
:
=
responsavel
.
rrsid
;
_cpf
:
=
responsavel
.
usucpf
;
_nomeprefeito
:
=
responsavel
.
rrsnomesecretario
;
_dtiniciomandato
:
=
responsavel
.
rrsdtiniciomandato
;
_dtfimmandato
:
=
responsavel
.
rrsdtfimmandato
;
IF
TRIM
(
responsavel
.
naturezainteresse
)
=
'Ex-dirigente'
THEN
_naturezainteresse
:
=
'Responsável'
;
ELSE
_naturezainteresse
:
=
TRIM
(
responsavel
.
naturezainteresse
);
END
IF
;
return
next
;
END
LOOP
;
END
IF
;
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