/
Historico_Cadastro de Consultas

Historico_Cadastro de Consultas




Definições:


  • A descrição das tags não pode usar simbolos invalidos para variaveis python, exemplo: ( ) $ ...
  • DTI fica responsável por criar as TAGS e cadastrar as CONSULTAS
  • Formato da Tag $TIPO:DESCRICAO$
    1. Exemplos:
      1. $MATRICULA?$
      2. $MATRICULA:Matricula do Servidor?$
      3. $COMPETENCIA:COMPETENCIA INICIO?$
      4. $COMPETENCIA:COMPETENCIA FIM?$
  • A descrição da tag é opcional, e servirá para melhorar o label da pergunta para o usuario
  • A mesma tag pode aparecer mais de uma vez na consulta
  • Implementações futuras:
    • Permitir baixar o relatório em formato de planilha
    • Salvar os ultimos parametros utilizados no relatório por servidor
    • Somente usuarios com perfil mpmt-perfil-cadastro-consultas-admin terá permissão para incluir, alterar ou excluir


Exemplo de consulta:

Consulta:

SELECT matricula,  nome FROM RH_SERVIDOR 

inner join rh_pessoa on rh_servidor.pessoa_fisica_id = rh_pessoa.id

WHERE 

     MATRICULA IN  $MATRICULAS:Matricula dos Servidores?$ 
     
to_char(created_at,'MM/YYYY') >  $COMPETENCIA:Competencia Inicio?$ and
     
to_char(created_at,'MM/YYYY') <  $COMPETENCIA:Competencia Fim ?$  










Consultas a serem cadastradas:


 Relatório de Afastamentos

Relatório com todos os afastamentos por periodo e indicador se o membro é eleitoral



-- relatorio de afastamentos
select rh_servidor.matricula                MATRICULA,
       rh_pessoa.nome                       NOME,
       to_char(a.data_inicio, 'DD/MM/YYYY') DATA_INICIO,
       to_char(a.data_fim, 'DD/MM/YYYY')    DATA_FIM,
       (a.data_fim - a.data_inicio) + 1     TOTAL_DIAS,
       a.situation_unicode                  TIPO,
             rh_servidor_type_by_possession_description(rh_servidor.type_by_possession) TIPO_POSSE_SERVIDOR,
       (
           CASE (
           select distinct TRUE from rh_servidorlotacao
               inner join rh_lotacao on rh_servidorlotacao.lotacao_id = rh_lotacao.orgaogeral_ptr_id
           where rh_lotacao.electoral_zone is true
             and rh_servidorlotacao.designacao is true
             and rh_servidorlotacao.servidor_id = rh_servidor.id
             and ((to_char(rh_servidorlotacao.data_vigencia_inicio, 'YYYYMM') <= ? and
                   (to_char(rh_servidorlotacao.data_vigencia_fim, 'YYYYMM') >= ?)))
       )
           WHEN TRUE THEN 'SIM'
            ELSE ' '
           END
        )
       ELEITORAL
from afastamento_baselicencaafast a
         inner join rh_movpessoal on a.movimentacaopessoal_ptr_id = rh_movpessoal.id
         inner join rh_servidor on rh_movpessoal.servidor_id = rh_servidor.id
         inner join rh_pessoafisica on rh_servidor.pessoa_fisica_id = rh_pessoafisica.pessoa_ptr_id
         inner join rh_pessoa on rh_pessoafisica.pessoa_ptr_id = rh_pessoa.id
where a.estado <> '4'           -- Diferente de cancelado
  and rh_servidor.ativo is true -- somente servidores ativos
  and ((to_char(data_inicio, 'YYYYMM') <= ? and (to_char(data_fim, 'YYYYMM') >= ?)))
  AND rh_servidor.TIPO = 'M'
ORDER BY MATRICULA, data_inicio;



 Férias individuais com saldo disponível


Férias individuais com saldo disponível
-- periodo aquisitivo de férias individuais com saldo disponível
select rs.matricula,
       rh_pessoa.nome,
       dayoff_groupperiod.title,
       dayoff_groupperiod.year_reference ano,
       dayoff_groupperiod.period periodo,
       dayoff_acquisitionperiod.days_not_booked_cache saldo_disponivel
from dayoff_acquisitionperiod
inner join dayoff_groupperiod on dayoff_acquisitionperiod.group_period_id = dayoff_groupperiod.id
inner join dayoff_configuration on dayoff_groupperiod.configuration_id = dayoff_configuration.id and dayoff_configuration.sub_type_of_usufruct = 9001
inner join rh_servidor rs on dayoff_acquisitionperiod.employee_id = rs.id
inner join rh_pessoafisica on rs.pessoa_fisica_id = rh_pessoafisica.pessoa_ptr_id
inner join rh_pessoa on rh_pessoafisica.pessoa_ptr_id = rh_pessoa.id
where
      dayoff_acquisitionperiod.days_not_booked_cache > 0 and
      rs.ativo is true
order by matricula, ano, periodo
;
 consulta de ativos e exonerados

Enviado pelo Elton

select rs2.id , rs2.matricula,rp.nome,rm.data_posse ,
rm.data_exercicio ,rm.data_desligamento,rs2.ativo ,rc.tipo_lei_cargo ,rs2.tipo,
case rs2.type_by_possession
when 'MBR' then 'MEMBRO'
when 'CMS' then 'COMISSIONADO'
when 'MEL' then 'MEMBRO COM CARGO ELETIVO'
when 'MCM' then 'MEMBRO COM CARGO COMISSIONADO'
when 'MEC' then 'MEMBRO COM CARGO ELETIVO E COMISSIONADO'
when 'CTR' then 'CONTRATADO'
when 'EFE' then 'EFETIVO'
when 'ECM' then 'EFETIVO E COMISSIONADO'
when 'EFC' then 'EFETIVO E COM FUNÇÃO'
when 'JCA' then 'JOVEM APRENDIZ'
when 'XXX' then 'DESCONHECIDO'
when 'MBR2' then 'MEMBRO DE 2ª ENTRÂNCIA '
when 'MEL2' then 'MEMBRO DE 2ª ENTRÂNCIA COM CARGO ELETIVO '
when 'MCM2' then 'MEMBRO DE 2ª ENTRÂNCIA COM CARGO COMISSIONADO '
when 'MEC2' then 'MEMBRO DE 2ª ENTRÂNCIA COM CARGO ELETIVO E COMISSIONADO '
when 'REQ' then 'SERVIDOR REQUISITADO'
when 'RFC' then 'SERVIDOR REQUISITADO COM FUNÇÃO'
when 'EXT' then 'EXTERNO SEM VINCULO'
when 'EST' then 'ESTAGIARIO'
when 'TCR' then 'TERCEIRIZADO'
when 'VOL' then 'VOLUNTÁRIO'
when 'APS' then 'APOSENTADO'
when 'RCM' then 'SERVIDOR REQUISITADO COMISSIONADO'
when 'SAP' then 'SERVIDOR EFETIVO APOSENTADO'
when 'MAP' then 'MEMBRO APOSENTADO'
when 'APO' then 'SERVIDOR APOSENTADO'
when 'MAP2' then 'MEMBRO APOSENTADO'
when 'BFP' then 'BENEFICIARIO DE PENSÃO'
else rs2.type_by_possession
end "TIPO PESSOAL",
rs2.type_by_possession,
rm.tipo_movcarreira ,
rm3.onus ,
rc.id ,rc.nome ,rc.descricao ,
rs2.categoria_cache,rs2.situacao_funcional_cache
from Public.rh_movposse rm
left join public.rh_movpessoal rm2 on rm2.id =rm.movimentacaopessoal_ptr_id
left join public.rh_servidor rs2 on rs2.id =rm2.servidor_id
left join public.rh_pessoa rp on rp.id =rs2.pessoa_fisica_id
left join public.rh_quadro rq on rq.id =rm.quadro_id
left join public.rh_cargo rc on rc.id =rq.cargo_id
left join public.rh_especialidade re on re.id =rq.especialidade_id
left join rh_movrequisicao rm3 on rm3.movimentacaopessoal_ptr_id =rm.movimentacaopessoal_ptr_id
--left join rh_declaracaoatividade rd on rd.movimentacaopessoal_ptr_id =rm2.id
--left join rh_declarationactivityretiree rd2 on rd2.movimentacaopessoal_ptr_id =rm2.id
where
--rs2.matricula in ('7617','7302','5151','1360','5116','10028','6050','800828','811111','951158')
--rs2.tipo='M'
--rs2.matricula='170'
rs2.type_by_possession in ('MBR')
--('MBR','MBR2','MEL','MCM','MEC','MEL2','MCM2','MEC2') --MEMBROS
--('RFC','REQ','EXT','RCM') --REQUISITADOS
--('EFE','CMS','ECM','EFC') --efetivos e comissionados
--('MAP','SAP','MAP2','APO') -- aposendados e pensionistas
--rs2.matricula in ('7617','7302','5151','1360','6050')
--rs2.matricula in ('4009','4010','4011','4012','4013','4014','4015','4016','4017','4018','4019','4020','4021','4022','4023','4024','4025','4026','4027','4028','4029','4030',
-- '4031','4032','4033','4034','4035','4036','4037','4038','4039','4040','4041','4042')
--'7185','7192','7193','7301','7302','7395','7443','7445','7492','7493','7571','7689','7690','7709','7775','7823','7856','7857','7858','7871',
--'7876','7898','7909','7910','7921','7943','7944','7945','7952','7970','7978','10028','10048','10091','10115','10168','10173','10169','10406','10407','10449','10490','10491')
-- and
and rs2.ativo ='true'
and rm.data_desligamento isnull
--and RD2.data_encerramento isnull
--and RD.data_encerramento >= '2021-10-26'
--and rm.data_posse >='2021-01-01'
order by 2



 SERVIDORES COM SUPERADMIN



-- SERVIDORES COM SUPERADMIN
select MATRICULA, NOME, USERNAME
from auth_user
INNER JOIN rh_servidor ON auth_user.id = rh_servidor.user_id
INNER JOIN RH_PESSOAFISICA ON rh_servidor.pessoa_fisica_id = rh_pessoafisica.pessoa_ptr_id
INNER JOIN RH_PESSOA ON rh_pessoafisica.pessoa_ptr_id = rh_pessoa.id
where is_superuser is true AND rh_servidor.ativo IS TRUE;
 usufrutos de férias individuais




select rs.matricula,
rh_pessoa.nome,
TO_CHAR(dayoff_usufruct.start_date,'DD/mm/yyyy') DATA_INICIO,
TO_CHAR(dayoff_usufruct.END_date,'DD/mm/yyyy') DATA_fim,
dayoff_usufruct.days,
dayoff_usufruct.status,
case dayoff_usufruct.status
when 1 then 'PROGRAMADO'
when 2 then 'AUTORIZADO'
when 4 then 'HOMOLOGADO'
when 8 then 'ALTERACAO SOLICITADA'
when 16 then 'ALTERADO'
when 32 then 'INTERROMPIDO'
when 64 then 'SUSPENSO'
when 128 then 'FLUINDO'
when 256 then 'USUFRUIDO'
when 512 then 'NAO AUTORIZADO'
when 1024 then 'SUBSTITUTO'
when 2048 then 'CANCELADO'
when 4096 then 'VENDIDO'
END
from dayoff_acquisitionperiod
inner join dayoff_activity on dayoff_acquisitionperiod.id = dayoff_activity.acquisition_period_id
inner join dayoff_usufruct on dayoff_activity.id = dayoff_usufruct.activity_id
inner join dayoff_groupperiod on dayoff_acquisitionperiod.group_period_id = dayoff_groupperiod.id
inner join dayoff_configuration on dayoff_groupperiod.configuration_id = dayoff_configuration.id and dayoff_configuration.sub_type_of_usufruct = 9001
inner join rh_servidor rs on dayoff_acquisitionperiod.employee_id = rs.id
inner join rh_pessoafisica on rs.pessoa_fisica_id = rh_pessoafisica.pessoa_ptr_id
inner join rh_pessoa on rh_pessoafisica.pessoa_ptr_id = rh_pessoa.id
where
rs.ativo is true and
dayoff_usufruct.status NOT IN (4096, 2048) -- venda e cancelados
order by 1,2,3;



 Externos sem vinculo

-- com esta query podes-se consultar os ativos dos seguintes tipo:

--'VOL' = voluntarios 'EXT' externos sem vinculos 'EST' Estagiarios 'TCR' terceirizados 'JCA' Jovem Aprendiz
-- basta filtrar na clausula where da query

select
rs.matricula,
rp.nome,
rh_description_type_by_possession(rs.type_by_possession) "TIPO PESSOAL",
rd.data_exercicio ,
rd.data_encerramento ,
rd.lotacao_id ,
rc.nome as cargo,
case rd.turno
when '4' then 'Integral'
when '3' then 'Noturno'
when '2' then 'Vespertino'
when '1' then 'Matutino'
end TURNO
from rh_servidor rs
inner join rh_pessoafisica rp2 on rp2.pessoa_ptr_id =rs.pessoa_fisica_id
inner join rh_pessoa rp on rp.id =rp2.pessoa_ptr_id
inner join rh_movpessoal rm on rm.servidor_id =rs.id
--inner join rh_movposse rm2 on rm2.movimentacaopessoal_ptr_id =rm.id
inner join rh_declaracaoatividade rd on rd.movimentacaopessoal_ptr_id =rm.id
left join public.rh_quadro rq on rq.id =rd.quadro_id
left join public.rh_cargo rc on rc.id =rq.cargo_id
left join public.rh_especialidade re on re.id =rq.especialidade_id
--inner join rh_localidade rl on rd.lotacao_id =rl.id
where rs.ativo='true'
--and rs.matricula ='5130'
and rs.type_by_possession in ('EXT') -- 'VOL' = voluntarios 'EXT' externos sem vinculos 'EST' Estagiarios 'TCR' terceirizados 'JCA' Jovem Aprendiz
and (rd.data_encerramento >='2021-11-01' or rd.data_encerramento isnull ) --- para achar estagiários ativos
-- and rd.data_encerramento isnull -- para achar os externos sem vinculos
 Ativos nas categorias ('RFC', 'REQ', 'EXT', 'RCM')


--- TODOS OS ATIVOS
-- FILTRANDO NA CLAUSULA WHERE PELO GRUPO DE bY_POSSESSION ENCONTRA-SE OS TIPOS QUE DESEJAR ATIVOS
select rs2.id,
rs2.matricula,
rp.nome,
rm.data_posse,
rm.data_exercicio,
rm.data_desligamento,
rs2.ativo,
rc.tipo_lei_cargo,
rs2.tipo,
rh_description_type_by_possession(RS2.type_by_possession),
rs2.type_by_possession,
rm.tipo_movcarreira,
rm3.onus,
rc.id,
rc.nome as cargo,
rc.descricao as cargo,
rs2.categoria_cache,
rs2.situacao_funcional_cache
from Public.rh_movposse rm
left join public.rh_movpessoal rm2
on rm2.id = rm.movimentacaopessoal_ptr_id -- inverter o inicio da consulta por mov_pessol ao inves de mov_posse
left join public.rh_declaracaoatividade rd3 on rd3.movimentacaopessoal_ptr_id = rm2.id
left join public.rh_servidor rs2 on rs2.id = rm2.servidor_id
left join public.rh_pessoa rp on rp.id = rs2.pessoa_fisica_id
left join public.rh_quadro rq on rq.id = rm.quadro_id
left join public.rh_cargo rc on rc.id = rq.cargo_id
left join public.rh_especialidade re on re.id = rq.especialidade_id
left join rh_movrequisicao rm3
on rm3.movimentacaopessoal_ptr_id = rm2.id and rm2.my_type = 'movimentacaorequisicao'
where
rs2.type_by_possession in ('RFC', 'REQ', 'EXT', 'RCM')
and rs2.ativo = 'true'
and (rm.data_desligamento isnull or rm.data_desligamento >= '2021-11-01')
order by 2



;



Related content

Historico_Integração de outros sistemas com Athenas
Historico_Integração de outros sistemas com Athenas
More like this
Historico_De/para
Historico_De/para
More like this
Historico_Anotações sobre valores de Colunas
Historico_Anotações sobre valores de Colunas
More like this
Historico_Functions Postgres criadas MPMT
Historico_Functions Postgres criadas MPMT
More like this
Historico_Gestão de Faltas
Historico_Gestão de Faltas
More like this
Historico_Integração com mastiff
Historico_Integração com mastiff
More like this