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
a9f6f6fc
authored
Sep 11, 2025
by
RONALDO RODRIGUES DE OLIVEIRA
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Função lista responsáveis por natureza de responsabilidade dia do processo.
parent
d6e307b7
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
125 additions
and
0 deletions
declaracao_omissao/Estados_Distrito_Federal_add/1-function_get_responsaveis_190825.sql
declaracao_omissao/Estados_Distrito_Federal_add/1-function_get_responsaveis_190825.sql
0 → 100644
View file @
a9f6f6fc
-- DROP FUNCTION par.get_responsaveis(integer , varchar, varchar, date, date, date, varchar);
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
;
BEGIN
IF
i_itrid
=
2
THEN
FOR
responsavel
IN
(
WITH
prefeitos
as
(
SELECT
rrpid
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
usucpf
,
rrpnomeprefeito
,
trim
(
par
.
naturezainteresse_v2
(
rrpdtiniciomandato
,
rrpdtfimmandato
,
i_datainiciovigencia
,
i_datafimvigencia
,
i_tipoprograma
)
)
as
naturezainteresse
FROM
par
.
rollresponsaveisprefeitos
WHERE
muncod
in
(
i_muncod
)
and
(
i_datainiciovigencia
between
rrpdtiniciomandato
and
rrpdtfimmandato
or
i_datafimpc
between
rrpdtiniciomandato
and
rrpdtfimmandato
)
UNION
SELECT
*
FROM
(
SELECT
rrpid
,
rrpdtiniciomandato
,
rrpdtfimmandato
,
usucpf
,
rrpnomeprefeito
,
trim
(
par
.
naturezainteresse_v2
(
rrpdtiniciomandato
,
rrpdtfimmandato
,
i_datainiciovigencia
,
i_datafimvigencia
,
i_tipoprograma
))
as
naturezainteresse
FROM
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
)
LOOP
_rrpid
:
=
responsavel
.
rrpid
;
_cpf
:
=
responsavel
.
usucpf
;
_nomeprefeito
:
=
responsavel
.
rrpnomeprefeito
;
_dtiniciomandato
:
=
responsavel
.
rrpdtiniciomandato
;
_dtfimmandato
:
=
responsavel
.
rrpdtfimmandato
;
IF
TRIM
(
responsavel
.
naturezainteresse
)
=
'Ex-dirigente'
THEN
_naturezainteresse
:
=
'Responsável'
;
ELSE
_naturezainteresse
:
=
TRIM
(
responsavel
.
naturezainteresse
);
END
IF
;
return
next
;
END
LOOP
;
ELSE
FOR
responsavel
IN
(
WITH
secretarios
as
(
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