/
Historico_Qualidade Cadastral

Historico_Qualidade Cadastral

Permite cadastrar consultas que fazem varreduras no sistema buscando inconsistencias cadastras. 


Etapa 1 - Cadastros:

    • Titulo: Qualidade Cadastral   
    • Campos:
      • Titulo
      • Descrição
      • SQL - Textarea
    • Somente quem tiver permissão mpmt-perfil-qualidade-cadastral-admin pode alterar as consultas

Etapa 2 - Relatórios:

    • Haverá possibilidade de gerar o relatório por item ou Geral:
      • Por item:
        • Ao clicar duas vezes sobre uma linha, o sistema exibirá tela permitindo selecionar o resultado desejado, xls ou pdf
        • O PDF gerado será sempre em paisagem 
      • Geral
        • Novo botão "Relatorio Completo"
        • Ao clicar no botão o sistema executará consulta por consulta 
        • O resultado de cada consulta será somado 
        • Para no final gerar um xls(O resultado final será sempre xls)

Etapa 3 - Melhorias:


  • Melhorar a exibição de pendências:
    • No cadastro, adiciona uma coluna exibindo quantidade de registros  pendencias
    • Para calcular, deverá executar a consulta informada, e contabilizar o total de registros (count)
  • Melhorar a notificação aos interessados:
    • Adicionar ao cadastro campo para informar o login dos interessados
    • O job deverá ser executado diariamente, se identificar uma pendencia na consulta, deverá então adicionar uma mensagem para o usuario
    • Caso o usuario seja responsável por mais de um cadastro, então o sistema deverá exibir somente um aviso para o mesmo por dia. 
  • Melhoria na verificação da consulta
    • As consultas deverão retornar sempre os mesmos campos
    • Só aceitar consultas sql que retornam os seguintes campos





Rascunho:


Apontamentos Cadastrais

  • Sistema listará exibirá nesse tela todos os apontamentos identificados como inconsistencia cadastral
  • Colunas:
    • Data/Hora - momento da criação do apontamento que deve ser igual ao da verificação cadastral 
    • Tipo do apontamento - Mesmo do cadastro da verificação cadastral 
    • Codigo (Poderá ser Matricula, Código da Lotação, Código do Cargo, .....)
    • Descrição
      • Exemplos:
        • quando servidor: 6560 - João Carreiro - Efetivo - Ativo
        • quando lotação: GAECO - Unidade Cuiabá 
    • Responsável - Choice 
      • GER. MEMBROS - Descrição: Gerência de Membros, 
      • GER. SERVIDORES - Descrição: Gerência de Servidores
      • GER. DESENVOLVIMENTO - Descrição: Gerência de Desenvolvimentos
      • GER INATIVOS - Descrição: Gerência de Inativos
      • GER FOLHA - Descrição: Gerencia de Folha de Pagamento
      • DTI - Descrição: DTI
      • CEAF - Descrição: CEAF
    • id da verificação cadastral (oculto do usuário)
  • Filtros:
    • Por responsável 
    • Por Tipo Apontamento
    • Por Responsável 
  • Ações:
    • Marcar como resolvido - delete no banco de dados do apontamento selecionado 

Serviço diário:

  • O sistema deverá rodar diariamente todas as verificações cadastrais  
  •  Para cada verificação o sistema deverá:
    • Apagar todos os apontamentos para aquela verificicaçaõ
    • Para cada linha que retornar da consulta cadastrada, deverá preencher na tabela de apontamentos



-- qualidade_cadastral
SELECT * FROM (

--- SERVIDORES E MEMBROS ATIVOS SEM LOGIN CONFIGURADO NO ATHENAS
SELECT 'SERVIDOR ATIVO SEM LOGIN' AS SITUACAO,
'A matricula ' || MATRICULA || ' está ativa mas não tem login configurado no sistema' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
500 PRIORIDADE,
'Mat. ' || MATRICULA CODIGO
FROM RH_SERVIDOR
INNER JOIN rh_pessoa ON pessoa_fisica_id = rh_pessoa.ID
WHERE rh_servidor.ativo is true
AND user_id IS NULL
AND type_by_possession NOT IN ('EXT', 'EST', 'BFP', 'APS', 'SAP', 'MAP', 'EXT', 'TCR', 'CTR')

UNION ALL

--SERVIDORES ATIVOS SEM PROVIMENTO ATIVO
select 'SERVIDOR ATIVO SEM PROVIMENTO' AS SITUACAO,
'A matricula ' || MATRICULA || '(' || nome || ') está ativa mas não tem provimento ativo' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
500 PRIORIDADE,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
from rh_servidor
INNER JOIN rh_pessoa ON pessoa_fisica_id = rh_pessoa.ID
inner join rh_movpessoal on rh_servidor.id = rh_movpessoal.servidor_id
left join rh_movposse on rh_movpessoal.id = rh_movposse.movimentacaopessoal_ptr_id
where rh_servidor.ativo is true
and type_by_possession not in ('EST', 'TCR', 'EXT')
group by matricula, nome, type_by_possession, rh_servidor.ativo
having count(rh_movposse.*) < 1


-- login não vinculados a nenhum servidor
-- update auth_user set username = '20211123*' || auth_user.username, is_active = false
-- where id in (
-- select auth_user.id
-- from auth_user
-- left join rh_servidor on auth_user.id = rh_servidor.user_id
-- where matricula is null and is_active
--);
UNION ALL

select 'LOGIN SEM VINCULO COM SERVIDOR' AS SITUACAO,
'O login ' || auth_user.username || ' não tem vinculo com nenhum servidor' DESCRICAO,
'DTI' RESPONSAVEL,
500 prioridade,
'Login ' || auth_user.username CODIGO
from auth_user
left join rh_servidor on auth_user.id = rh_servidor.user_id
where matricula is null and is_active is true

UNION ALL

-- lista usuarios sem perfil padrão
select 'SERVIDOR ATIVO SEM PERMISSÃO PADRÃO' AS SITUACAO,
'Mat. ' || matricula || ' sem a permissão padrão: mpmt-perfil-vdf-padrao' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
750 prioridade,
'Mat. ' || matricula || ' Login ' ||auth_user.username CODIGO
from auth_user
left join auth_user_groups aug on auth_user.id = aug.user_id
left join auth_group ag on aug.group_id = ag.id and ag.name = 'mpmt-perfil-vdf-padrao'
inner join rh_servidor on auth_user.id = rh_servidor.user_id AND rh_servidor.ativo IS TRUE
where ag.name is null
and (select USERNAME ~ '[0-9]') is false -- usuarios com login valido;

union all

-- SERVIDORES ATIVOS COM USUARIO SEM MENU PADRÃO
select
'SERVIDOR ATIVO SEM MENU PADRÃO' AS SITUACAO,
'Mat. ' || matricula || ' sem menu padrão: mpmt-menu-vdf-padrao' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
750 prioridade,
'Mat. ' || matricula || ' Login ' ||auth_user.username CODIGO
from auth_user
inner join rh_servidor rs on auth_user.id = rs.user_id and rs.ativo is true
where auth_user.id not in (
select auth_user.id
from auth_user
inner join engine_controllerpermission_users on auth_user.id = engine_controllerpermission_users.user_id
inner join engine_controllerpermission
on engine_controllerpermission_users.controllerpermission_id = engine_controllerpermission.id
WHERE name like 'mpmt-menu-vdf-padrao%'
-- usuarios com login valido;
) and (select USERNAME ~ '[0-9]') is false

UNION ALL

-- SERVIDORES ATIVOS COM CPF INVALIDO
select
'SERVIDOR ATIVO COM CPF INVÁLIDO' AS SITUACAO,
'Mat. ' || matricula || ' não tem cpf valido cadastrado (CPF: "' || rh_pessoafisica.cpf || '")' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
750 prioridade,
'Mat. ' || matricula CODIGO
FROM rh_servidor
INNER JOIN rh_pessoa ON pessoa_fisica_id = rh_pessoa.ID
INNER JOIN RH_PESSOAFISICA ON rh_servidor.pessoa_fisica_id = rh_pessoafisica.pessoa_ptr_id
where length(cpf) <> 11 OR (select cpf ~ '[a-zA-Z]') is true

union all

SELECT 'DEPENDENTE DE SERVIDOR ATIVO COM CPF INVÁLIDO' AS SITUACAO,
'Dependente ' || dependente.nome || ' da matricula ' || rh_servidor.matricula || ' não tem cpf válido (CPF: "' || RH_PESSOAFISICA.cpf || '")' DESCRICAO,
'DTI' RESPONSAVEL,
500 prioridade,
'Mat. ' || matricula || ' Dep. ' || dependente.nome CODIGO
FROM rh_dependente
INNER JOIN RH_SERVIDOR ON rh_dependente.servidor_id = rh_servidor.id
INNER JOIN RH_PESSOAFISICA ON rh_dependente.pessoa_fisica_id = rh_pessoafisica.pessoa_ptr_id
INNER JOIN RH_PESSOA dependente ON rh_pessoafisica.pessoa_ptr_id = dependente.id
where
rh_servidor.ativo is true and
length(RH_PESSOAFISICA.cpf) <> 11 OR (select RH_PESSOAFISICA.cpf ~ '[a-zA-Z]') is true

union all

--servidores com status ativo mas provimento encerrados, verificar se falta desligar
select
'SERVIDORES ATIVOS COM PROVIMENTO ENCERRADOS' AS SITUACAO,
'Mat. ' || matricula || ' está ativa no sistema mas os provimentos estão encerrados, verificar se falta desligar' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
250 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
from rh_servidor
where rh_servidor.id not in
(-- todos os servidores com provimento ativo
select distinct rh_servidor.id
from rh_servidor
inner join rh_movpessoal on rh_servidor.id = rh_movpessoal.servidor_id
inner join rh_movposse on rh_movpessoal.id = rh_movposse.movimentacaopessoal_ptr_id
where 1 = 1
and rh_movposse.data_desligamento is null
and rh_servidor.ativo is true)
and rh_servidor.ativo is true
and type_by_possession not in ('EXT', 'EST')

union all

select
'SERVIDORES ATIVOS SEM CARGA HORARIA CADASTRADA' AS SITUACAO,
'Mat. ' || matricula || ' não tem carga horaria ativa cadastrada' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
750 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
from rh_servidor
where matricula not in (
select matricula from rh_servidor
left outer join rh_cargahoraria on rh_servidor.id = rh_cargahoraria.servidor_id
where data_fim is null
) and rh_servidor.ativo is true

UNION ALL

--Servidores sem lotação ativa
select
'SERVIDOR ATIVO SEM LOTACAO/TITULARIDADE' AS SITUACAO,
'Mat. ' || matricula || ' não tem lotacao ativa ou titularidade' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
750 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
from rh_servidor
where matricula not in (
select rh_servidor.matricula from rh_servidor
inner join rh_servidorlotacao on rh_servidor.id = rh_servidorlotacao.servidor_id
where designacao is not true and data_vigencia_fim is null
) and rh_servidor.ativo is true and rh_servidor.type_by_possession not IN ('MAP','BFP','MBR','SAP','EXT','TCR')

UNION ALL

--Servidores sem designação ativa
select
'SERVIDOR ATIVO SEM DESIGNACAO' AS SITUACAO,
'Mat. ' || matricula || ' não tem designacao ativa' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
750 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
from rh_servidor
where matricula not in (
select rh_servidor.matricula from rh_servidor
inner join rh_servidorlotacao on rh_servidor.id = rh_servidorlotacao.servidor_id
where designacao is true and data_vigencia_fim is null
) and rh_servidor.ativo is true and rh_servidor.type_by_possession not IN ('MAP','BFP','MBR','SAP','EXT','TCR')

union all

--Pessoas lotadas em lotações inativas
SELECT
'SERVIDOR ATIVO EM LOTACAO INATIVA' AS SITUACAO,
'Mat. ' || matricula || ' está lotado/designado em uma lotação inativa ( ' || rh_orgaogeral.nome || ' )' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
750 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
FROM RH_SERVIDOR
INNER JOIN RH_SERVIDORLOTACAO ON rh_servidor.id = rh_servidorlotacao.servidor_id
INNER JOIN RH_LOTACAO ON rh_servidorlotacao.lotacao_id = rh_lotacao.orgaogeral_ptr_id
INNER JOIN RH_ORGAOGERAL ON rh_lotacao.orgaogeral_ptr_id = rh_orgaogeral.id
WHERE rh_orgaogeral.ativo IS FALSE and rh_servidor.ativo = true

UNION ALL

-- SERVIDOR COM SALDO DE FÉRIAS DIFERENTE DE 30 DIAS
SELECT
'SERVIDOR ATIVO COM SALDO DE FÉRIAS DIFERENTE DE 30' AS SITUACAO,
'Mat. ' || matricula || ' com saldo de férias diferente de 30 dias. (Periodo Aquisitivo ' || dayoff_groupperiod.year_reference ||'/' || dayoff_groupperiod.period || ' - ' || dayoff_acquisitionperiod.days_not_booked_cache || ' dias)' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
750 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
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
inner join rh_servidor on dayoff_acquisitionperiod.employee_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
dayoff_configuration.sub_type_of_usufruct in (9000,9001) and
dayoff_acquisitionperiod.days_not_booked_cache > 0 and dayoff_acquisitionperiod.days_not_booked_cache not in (30,60) and
rh_servidor.ativo is true


union all


-- 'ATIVOS COM LICENÇA PREMIO DIFERENTE DE 90 DIAS'
SELECT
'SERVIDOR ATIVO COM LICENÇA PREMIO DIFERENTE DE 90 DIAS' AS SITUACAO,
'Mat. ' || matricula || ' tem periodo de licença premio com total de dias diferente de 90. (Periodo Aquisitivo ' || dayoff_groupperiod.year_reference ||'/' || dayoff_groupperiod.period || ' - ' || dayoff_acquisitionperiod.days || ' dias)' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END RESPONSAVEL,
750 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
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
inner join rh_servidor on dayoff_acquisitionperiod.employee_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
dayoff_configuration.sub_type_of_usufruct in (9009) and
dayoff_acquisitionperiod.days > 90 and
rh_servidor.ativo is true

union all

-- 'LOTACAO COM CAMPO SUBSTITUTO PREENCHIDO'
SELECT
'LOTACAO COM CAMPO SUBSTITUTO PREENCHIDO' AS SITUACAO,
'Lotação. "' || ro.nome || '" tem o campo subsituto preenchido' DESCRICAO,
'DTI' RESPONSAVEL,
750 prioridade,
'Lotação. ' || ro.nome CODIGO
from rh_lotacao
inner join rh_orgaogeral ro on rh_lotacao.orgaogeral_ptr_id = ro.id
where rh_lotacao.responsible_substituted_id is not null

UNION ALL

---MEMBROS, EFETIVOS, COMISSIONADOS E ESTAGIARIOS ATIVOS SEM EMAIL CONFIGURADO NO ATHENAS
SELECT
'SERVIDOR ATIVO SEM EMAIL' AS SITUACAO,
'Mat. "' || matricula || '" não tem email no sistema Athenas' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END responsavel,
750 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
FROM rh_servidor
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
ATIVO IS TRUE
AND (email_pessoal IS NULL OR email_pessoal = '' OR email_pessoal = ' ')
AND rh_servidor.type_by_possession not IN ('MAP','BFP','MBR','SAP','EXT','TCR','REQ')


UNION ALL

-- MEMBRO INATIVO COM CATEGORIA FUNCIOANL ERRADA - EX. 001106 APARECE COMO SERVIDOR EFETIVO
SELECT
'MEMBRO COM CATEGORIA FUNCIONAL ERRADA NO ATHENAS' AS SITUACAO,
'Mat. "' || matricula || '" está com categoria funcional incorreta no Athenas' DESCRICAO,
'GER.MEMBROS' responsavel,
750 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
FROM rh_servidor
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
1 = 1
AND matricula >= 1000 and matricula < 2000
AND (email_pessoal IS NULL OR email_pessoal = '' OR email_pessoal = ' ')
AND rh_servidor.type_by_possession not IN ('MAP','BFP','MBR','SAP','EXT','TCR','REQ')

UNION ALL

--SERVIDOR ATIVO COM DATA DE NASCIMENTO ERRADO
select
'SERVIDOR ATIVO COM DATA DE NASCIMENTO ERRADO' AS SITUACAO,
'Mat. "' || matricula || '" está com data de nascicmento errada. Data menor que 18 anos' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END responsavel,
750 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO
from rh_servidor
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 ativo is true and ((data_nascimento >= (CURRENT_DATE - 365*18)))
and type_by_possession not in ('BFP')

union all

-- servidores em cargo de chefia com designaçaõ sem responsabilidade
select
'SERVIDOR ATIVO EM CARGO DE CHEFIA COM DESIGNACAO SEM RESPONSABILIDADE' AS SITUACAO,
'Mat. "' || matricula || '" está em cargo de chefia mas na designação não é responsável' DESCRICAO,
CASE
WHEN type_by_possession IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2') THEN 'GER.MEMBROS'
ELSE 'GER.SERVIDORES'
END responsavel,
750 prioridade,
'Mat. ' || matricula || ' Tipo ' || rh_servidor.type_by_possession CODIGO

from rh_servidor
inner join rh_movpessoal on rh_servidor.id = rh_movpessoal.servidor_id
inner join rh_movposse on rh_movpessoal.id = rh_movposse.movimentacaopessoal_ptr_id
inner join rh_servidorlotacao on rh_movposse.movimentacaopessoal_ptr_id = rh_servidorlotacao.movimentacao_posse_id
inner join rh_quadro on rh_movposse.quadro_id = rh_quadro.id
inner join rh_cargo on rh_quadro.cargo_id = rh_cargo.id
where
rh_servidorlotacao.designacao is false
and rh_servidor.ativo is true
and rh_servidorlotacao.ativo is true
and rh_movposse.data_desligamento is null
and rh_cargo.chefia
and rh_servidor.type_by_possession not IN ('MBR', 'MEL', 'MCM', 'MEC', 'MBR2', 'MEL2', 'MCM2', 'MEC2')

union all

-- rh_pessoa com email null
select
'rh_pessoa com email null' AS SITUACAO,
'Id. "' || rh_pessoa.id || '" está com campo email null' DESCRICAO,
'DTI' responsavel,
750 prioridade,
'Id. ' || rh_pessoa.id CODIGO
from rh_pessoa where email is null

) A WHERE RESPONSAVEL IN ('DTI')
order by codigo, prioridade;



-- Consultas previstas: * Serão implementadas aos poucos conforme necessidade
-- Servidores sem superior imediato configurado no Athenas
-- Solicitação do portal aguardando aprovador já desligado do MP
-- Solicitação aguardando aprovador afastado sem substituto informado
-- Substituições futuras vinculadas a designações encerradas
-- Servidores e membros com programações conflitantes
-- servidores e membros com substituições em periodo de usufrutos
-- Quantitativo de Servidores com permissão superadmin
-- servidores com 3 férias acumuladas
-- PERIODOS AQUISITIVOS EM ABERTO E COM SALDO VINCULADO A MATRICULAS INATIVAS
-- FILTRO de DEPENDENTES DE SERVIDORES EXONERADOS A PARTIR DE 22/11/2021 mas que precisa enviar para o ESOCIAL
-- lotacao sem lotação superior configurado
-- servidores desligados com verbas extras ativas





Related content

Historico_700 - Tela Lotações
Historico_700 - Tela Lotações
More like this
Relatórios
More like this
Historico_Gestão Documental
Historico_Gestão Documental
More like this
Historico_DEPARA DAS INFORMAÇÕES
Historico_DEPARA DAS INFORMAÇÕES
More like this
Historico_Regras de substituição no portal
Historico_Regras de substituição no portal
More like this
Historico_Gestor de Serviços
Historico_Gestor de Serviços
More like this