Estudo Sobre os Scripts Utilizados Para o Fechamento da Folha de Pagamento
Data de elaboração | 23/08/2023 |
---|---|
Responsável pelo estudo |
Ádrian Rabelo Mendes (Assessor) |
Equipe do estudo | CAOS |
Alvo |
Sistema Governa |
Origem |
Scripts SQL utilizados pela SEGEP para o fechamento da folha de pagamento |
Objetivo | Para verificar a possibilidade de implementação e execução automatizada desses scripts SQL em funcionalidades do Governa após processamento da folha de pagamento. |
Glossário
API - Application Programming Interface (em português Interface de Programação de Aplicação)
HTTP - Hypertext Transfer Protocol (em português Protocolo de Transferência de Hipertexto)
HTML - Hypertext Markup Language (em português Linguagem de Marcação de Hipertexto)
SQL - Structured Query Language (em português Linguagem de Consulta Estruturada)
REST - Representational State Transfer (em português Transferência de Estado Representacional)
URL - Uniform Resource Locator (em português Localizador Padrão de Recursos)
1. Introdução
Atualmente, o cálculo da folha de pagamento ocorre mensalmente através do sistema Governa. No entanto, há algumas verificações que precisam ocorrer antes do fechamento completo da folha. Essas verificações são realizadas manualmente pela equipe de usuários da SEGEP responsáveis pela folha de pagamento do estado. Verificações estas realizadas através de scripts SQL diretamente no banco de dados do Governa.
1.1 Problema
A execução de scripts no banco de dados do Governa não é somente oneroso ao usuário no cumprimento do fechamento da folha de pagamento, devido ao trabalho manual e exaustivo. É oneroso também a integridade do próprio banco de dados, além da possibilidade de brechas de segurança, LGPD, entre outras situações, devido a essas tarefas serem executadas diretamente no banco de dados ao invés da aplicação. Estes scripts estão listados a seguir:
- ANTES DA ANÁLISE verificando valor da verba 85 que não esta na financeiro mensal
- ANTES DA ANÁLISE verificando abono sem salvar na financeiro_mensal
- ANTES DA ANALISE verificando diferença de consignação
- sp_gerar_auxilio_saude - GERAR APENAS NA PREVIA
- verificar servidores sem verba de vencimento
- verificando saldo negativo
- verificando servidores admitidos 06112018 prevcom
- verificando lotações novas
- verificando afastamentos IPERON em servidor não IPERON
- Checar Afastamento Salario Maternidade Errado
- checando FGTS
- verifica servidores sem vencimento no mês
- VERIFICANDO SERVIDORES COM INSALUBRIDADE E PERICULOSIDADE
- verificando hora extra errada
- Altera verba 709 763 para 303 de quem está na TABSAL PCIVIL
- checando gozo com varias datas de pagamento para mesmo período aquisitivo
- checando quem tem averbação duplicada
- Checando Recebimento Cumulativo das Verbas 165. 2013 e 2015
- Checar SEJUS com verba de adicional noturno errado 719
- Checar SEJUS com verba de adicional noturno errado. 783
- Checar SEJUS com verba de adicional noturno errado. 785
- corrigindo saldo negativo indevido
- Deletando Verbas Indevidas no Detran
- Deletar Auxilio Transporte de Federais
- Deletar férias de servidores afastados aguardando aposentadoria com data de pagamento maior igual ao mês corrente
- Deletar vale transporte para quem está afastado aguardando aposentadoria
- Deletar verbas variáveis para quem está afastado aguardando aposentadoria
- Exclusão de conflito de verbas 709 com 363 303
- Lançando reposição de GAE para servidores da saúde com faltas
- REL. SERVIDORES FEDERAIS A DISPOSIÇÃO DO ESTADO COM INSS
- relação de quem tem a verba 727,1727 com a tabela da SESAU 0020.0728182022-18
- Verifica Duplicidade de Auxilio Saúde
- Verifica GAD Valores Errados
- Verifica Piso do Magistério em Cargos não Professores Exclui a Verba
- Verifica Piso do Magistério em Cargos não Professores Fecha a Verba
- Verifica Plantões Errados da SESAU
- Verifica Servidores não IPERON com Afastamento IPERON
- verificando averbação suspensa com desconto
- Verificando Cedido sem CDSFG
- verificando diferença de consignação
- verificando diferença entra verba 2051 e 2043
- verificando duplicidade de auxilio COVID
- verificando inativos com afastamento
- verificando inativos com auxilio saúde
- verificando inativos com férias
- verificando lançamento de verba de consignação na verba eventual
- verificando licença premio com data de pagamento
- verificando PM e BM em classificação errada
- Verificando quem tem somente auxilio transporte, auxilio saúde, complemento salario mínimo e outros
- VERIFICANDO SERVIDORES COM INSALUBRIDADE E PERICULOSIDADE
- Verificar Averbações em Servidores em Cargo para Pagamento
- VERIFICAR COM ABONO PERMANECIA E CDS
- Verificar GAD Médicos em não médicos
- verificar maternidade INSS sem salvar valor no campo maternidade INSS na financeiro base
- VERIFICAR PAGAMENTO EM DUPLICIDADE DE PERICULOSIDADE
- VERIFICAR SERVIDORES COM FG E CDS COM GAE E HORA EXTRA
- verificar verba exclusão BB
Os detalhes deles podem ser visualizados no Anexo I.
1.2 Proposta de Solução
Para resolver o problema, propõe-se automatizar a execução desses scripts pela aplicação, implementando suas regras de negócio e restringindo seu controle exclusivamente à aplicação.
2. Referencial Teórico
Este capítulo introduz a base teórica deste estudo. São brevemente descritos conceitos de comunicação entre softwares com APIs. Também algumas premissas de arquitetura de software, especificamente da arquitetura monolítica que forma a base estrutural do Governa, e da arquitetura de microsserviços na qual poderá ser implementada a automação dos scripts. Por fim, também são apresentadas as ferramentas e tecnologias que podem ser utilizadas no desenvolvimento dessa solução.
2.1 API
No contexto de APIs, a interface pode ser pensada como um contrato de serviço entre duas aplicações. Esse contrato define como APIs se comunicam e a documentação delas contém informações sobre como os desenvolvedores devem estruturar essa comunicação usando requisições e respostas. Já a aplicação refere-se a qualquer software com uma função distinta.
A arquitetura da API geralmente é explicada em termos de cliente e servidor. A aplicação que envia a solicitação é chamada de cliente e a aplicação que envia a resposta é chamada de servidor.
Há uma diversidade de maneiras pelas quais as APIs podem funcionar, mas vale destacar APIs REST. Essas são as APIs mais populares e flexíveis encontradas na Web atualmente. O cliente envia solicitações ao servidor como dados. O servidor usa essa entrada do cliente para iniciar funções internas e retorna os dados de saída ao cliente.
A principal característica da API REST é a ausência de estado. A ausência de estado significa que os servidores não salvam dados do cliente entre as solicitações. As solicitações do cliente ao servidor são semelhantes aos URLs digitadas no navegador para visitar um site. A resposta do servidor corresponde a dados simples, sem a renderização gráfica típica de uma página da Web.
2.2 Arquitetura de Software
A arquitetura de software especifica como um sistema deve ser organizado e estruturado, compreendendo o conjunto de componentes do sistema, suas relações entre si, relacionamento com outros softwares e os princípios que regem sua evolução. A arquitetura destaca uma série de decisões de projeto e fornece mecanismos para considerar os benefícios de estruturas alternativas do sistema.
Vários estilos de arquitetura encontram-se à disposição dos engenheiros de software que podem ser aplicadas à uma arquitetura específica para um software valendo destacar microsserviços e arquitetura monolítica em termos de desenvolvimento web.
2.1.1 Arquitetura Monolítica
Uma aplicação web típica é executada em um computador remoto, denominado servidor, cuja interface de usuário é acessada por meio de um navegador (browser) no computador cliente. A aplicação é dita ser monolítica (ou monólito), quando toda a sua lógica é executada em uma única máquina, compartilhando memória, arquivos e recursos de processamento.
Apesar das principais linguagens de desenvolvimento de aplicações oferecerem abstrações para fragmentar a complexidade dos sistemas em módulos, ainda são projetadas para a criação de um único executável, no qual toda a modularização utilizada é executada numa mesma máquina compartilhando seus recursos.
Uma aplicação em arquitetura monolítica típica pode ser representada pela Figura 1 a seguir, onde todas as suas funções estão implementadas e são executadas em um único processo.
Figura 1 – Representação de uma aplicação monolítica
É este único executável lógico que manipula solicitações HTTP, executa lógicas de negócio, recupera e atualiza dados do banco de dados, e constrói visualizações HTML a serem enviadas ao navegador.
2.1.2 Arquitetura de Microsserviços
O termo "Arquitetura de Microsserviços" surgiu nos últimos anos para descrever uma maneira particular de projetar aplicativos de software como suítes de serviços independentemente implantáveis. Trata-se de uma abordagem para o desenvolvimento de aplicações através da decomposição de suas funcionalidades em serviços discretos, cada um executando em seu próprio processo e se comunicando com mecanismos leves, tal como uma API de recursos HTTP.
A proposta da arquitetura de microsserviços é possibilitar o desenvolvimento de aplicações de maneira mais flexível, escaláveis e com manutenção mais simples em relação às aplicações em arquiteturas monolíticas. Como a aplicação é criada com pequenos serviços independentes, cada serviço pode funcionar ou falhar individualmente sem comprometer os demais. A Figura 2 representa um esquema de uma aplicação em arquitetura de microsserviços.
Figura 2 – Representação de microsserviços em uma aplicação
Um serviço é desenvolvido para solucionar um problema específico e pode ser implantado, atualizado e escalado de forma independente, mantendo sua disponibilidade e funcionamento. Como os processos da aplicação são executados como serviços que se comunicam por meio de APIs, estes não necessitam ser desenvolvidas em uma linguagem de programação específica.
2.3 Spring Framework
O Spring é um framework que facilita a criação de aplicativos corporativos. Fornece tudo o que o desenvolvedor necessita para adotar a linguagem de programação Java em um ambiente corporativo, e com a flexibilidade de criar muitas tipos de arquiteturas dependendo das necessidades de um aplicativo. É de código aberto e possui uma comunidade amplamente ativa que fornece feedback contínuo com base em uma gama diversificada de casos de uso do mundo real.
O Spring é dividido em módulos. Os aplicativos podem escolher quais módulos precisam. No centro estão os módulos do contêiner principal, incluindo um modelo de configuração e um mecanismo de injeção de dependência. Além disso, fornece suporte para diferentes arquiteturas de aplicativos, incluindo mensagens, dados transacionais e persistência e web.
3. Possível Solução
Embora o Governa seja um sistema monolítico, não há impedimento para uma abordagem híbrida utilizando microsserviços para processamentos específicos, como é o caso da execução dos scripts. Um microsserviço possibilitará a automação destes de forma independente do Governa, permitido que sejam executados de diversas formas distintas e em qualquer momento oportuno. Vale ressaltar a facilidade de manutenção dessa solução, devido ao desacoplamento e a tecnologia mais atualizada. E ainda, a desoneração dos recursos já escassos do Governa, devido as execuções de cálculos pesados.
3.1 Microsserviço de Fechamento da Folha
Como visto anteriormente, os scripts realizam uma série de verificações nas tabelas do governa após o cálculo da folha de pagamento, visando corrigir eventuais erros.
Para o desenvolvimento dessa solução, pode-se construir um microsserviço simples utilizando Spring REST a fim de fornecer uma interface para troca de informações entre o Governa e o microsserviço. Também é possível utilizar um serviço de mensageria para empilhar requisições a fim de manter a disponibilidade integral dessa comunicação. Essa relação pode ser vislumbrada na Figura 3 a seguir:
Figura 3 – Representação da comunicação entre Governa e microsserviços através de um sistema de mensageria
Na maioria dos aspectos, este seria um típico aplicativo Spring Boot simples. No entanto, a complexidade de implementação estará na conversão dos scripts em funcionalidades, devido as suas particularidades, e por fim incrementando todas as regras de negócio presentes nosdos scripts na aplicação.
4. Conclusão
Após uma breve análise dos scripts, observou-se uma premissa geral. Caso as consultas não retornem resultados significa que os dados estão corretos,corretos; havendo retorno, os registros devem sofrer alterações ou exclusão. No mínimo, as duas histórias a seguir serão necessárias para dar início aos trabalhos.
História |
O quê: Implementar, no Governa, funcionalidade para chamada à API externa Por quê: Para possibilitar a comunicação entre o Governa e o microsserviço |
Regras e Validações | -- |
Pontuação |
História |
O quê: Criar projeto do microsserviço, configurar e adicionar ao gitlab da SETIC Por quê: Para desenvolvimento, manutenção e versionamento do código-fonte |
Regras e Validações |
|
Pontuação |
Essas histórias possibilitarão que o Governa realize chamadas à APIs e ao início do desenvolvimento do microsserviço. Ainda será necessária a criação de uma história para cada script, visto que cada um possui suas particularidades e precisam ser compreendidos para correta implementação.
5. Referências
Visão geral de API :: Amazon AWS
SOMMERVILLE, I. Engenharia de Software. 9ª edição. São Paulo: Pearson. 2011.
PRESSMAN, R. S. Engenharia de Software uma abordagem profissional. 8ª edição. São Paulo: AMGH, 2016.
FOWLER, M; LEWIS, J. Microservices. martinfowler.com; 2014.
Visão geral do Spring Framework :: Spring Framework
ANEXO I
Scripts SQL utilizados pela SEGEP para fechamento da folha de pagamento. Os scripts seguintes (itens 1, 2, 3 e 4) são executados na ordem em que se apresentam uma única vez.
1- ANTES DA ANÁLISE verificando valor da verba 85 que não esta na financeiro mensal
use governa
---executar antes da análise
declare
@mesref int = 202305
select ltc.codigo, vba.valor, bse.auxilio_doenca_valor, srv.matricula, bse.id_pensionista_vitalicio,bse.abono_salario_familia_valor, vba.valor, bse.id_vinculo_empregaticio, bse.id_classificacao_funcional,
bse.abono_salario_familia_tipo
--update rh.financeiro_mensal set auxilio_doenca_valor = vba.valor
from rh.financeiro_mensal bse, rh.servidor_mensal mns, rh.financeiro_mensal_verba vba, rh.lotacao ltc, rh.lotacao_mensal lms, rh.verba inc, rh.verba_rotina rot, rh.servidor srv
where bse.id_servidor_mensal = mns.id
and mns.mes_referencia = 202305
and bse.id = vba.id_financeiro_mensal
and mns.mes_referencia = lms.mes_referencia
and bse.id_lotacao_mensal = lms.id
and ltc.id = lms.id_lotacao
and vba.id_verba_rotina = rot.id
and inc.id = rot.id_verba
and srv.id = mns.id_servidor
--and id_pensionista_vitalicio is not null
and rot.rotina in ('FOL')
and rot.rotina = bse.rotina
and inc.codigo in (85,86)
and bse.auxilio_doenca_valor <> vba.valor
select ltc.codigo,vba.valor, srv.matricula, bse.id_pensionista_vitalicio,bse.abono_salario_familia_valor, bse.salario_maternidade_valor, bse.id_vinculo_empregaticio, bse.id_classificacao_funcional,
bse.abono_salario_familia_tipo
--update rh.financeiro_mensal set salario_maternidade_valor = vba.valor
from rh.financeiro_mensal bse, rh.servidor_mensal mns, rh.financeiro_mensal_verba vba, rh.lotacao ltc, rh.lotacao_mensal lms, rh.verba inc, rh.verba_rotina rot, rh.servidor srv
where bse.id_servidor_mensal = mns.id
and mns.mes_referencia = 202305
and bse.id = vba.id_financeiro_mensal
and mns.mes_referencia = lms.mes_referencia
and bse.id_lotacao_mensal = lms.id
and ltc.id = lms.id_lotacao
and vba.id_verba_rotina = rot.id
and inc.id = rot.id_verba
and srv.id = mns.id_servidor
--and id_pensionista_vitalicio is not null
and rot.rotina in ('FOL')
and inc.codigo in (81)--10,82)
and rot.rotina = bse.rotina
and bse.salario_maternidade_valor <> vba.valor
select ltc.codigo,vba.valor, srv.matricula, bse.id_pensionista_vitalicio,bse.abono_salario_familia_valor, bse.salario_maternidade_valor, bse.id_vinculo_empregaticio, bse.id_classificacao_funcional,
bse.abono_salario_familia_tipo
--update rh.financeiro_mensal set salario_maternidade_valor = salario_maternidade_valor + vba.valor
--update rh.financeiro_mensal set salario_maternidade_valor = vba.valor
from rh.financeiro_mensal bse, rh.servidor_mensal mns, rh.financeiro_mensal_verba vba, rh.lotacao ltc, rh.lotacao_mensal lms, rh.verba inc, rh.verba_rotina rot, rh.servidor srv
where bse.id_servidor_mensal = mns.id
and mns.mes_referencia = 202305
and bse.id = vba.id_financeiro_mensal
and mns.mes_referencia = lms.mes_referencia
and bse.id_lotacao_mensal = lms.id
and ltc.id = lms.id_lotacao
and vba.id_verba_rotina = rot.id
and inc.id = rot.id_verba
and srv.id = mns.id_servidor
--and id_pensionista_vitalicio is not null
and rot.rotina in ('FOL')
and inc.codigo in (9)--10,82)
and bse.rotina = rot.rotina
and bse.salario_maternidade_valor <> vba.valor
select ltc.codigo,vba.valor, srv.matricula, bse.id_pensionista_vitalicio,bse.abono_salario_familia_valor, bse.salario_maternidade_valor, bse.id_vinculo_empregaticio, bse.id_classificacao_funcional,
bse.abono_salario_familia_tipo
--update rh.financeiro_mensal set salario_maternidade_valor = salario_maternidade_valor + vba.valor
--update rh.financeiro_mensal set salario_maternidade_valor = vba.valor
from rh.financeiro_mensal bse, rh.servidor_mensal mns, rh.financeiro_mensal_verba vba, rh.lotacao ltc, rh.lotacao_mensal lms, rh.verba inc, rh.verba_rotina rot, rh.servidor srv
where bse.id_servidor_mensal = mns.id
and mns.mes_referencia = 202305
and bse.id = vba.id_financeiro_mensal
and mns.mes_referencia = lms.mes_referencia
and bse.id_lotacao_mensal = lms.id
and ltc.id = lms.id_lotacao
and vba.id_verba_rotina = rot.id
and inc.id = rot.id_verba
and srv.id = mns.id_servidor
--and id_pensionista_vitalicio is not null
and rot.rotina in ('FOL')
and inc.codigo in (9)--10,82)
and bse.salario_maternidade_valor <> vba.valor
2 - ANTES DA ANÁLISE verificando abono sem salvar na financeiro_mensal
use governa
--executar antes da analise
declare
@mesref int = 202305
select srv.matricula, bse.abono_salario_familia_valor, vba.valor, bse.id_vinculo_empregaticio, bse.id_classificacao_funcional,
bse.abono_salario_familia_tipo
--delete rh.financeiro_mensal_verba
--update rh.financeiro_mensal set abono_salario_familia_valor = vba.valor, abono_salario_familia_tipo = 'SAF'
from rh.financeiro_mensal bse, rh.servidor_mensal mns, rh.financeiro_mensal_verba vba, rh.lotacao ltc, rh.lotacao_mensal lms, rh.verba inc, rh.verba_rotina rot, rh.servidor srv
where bse.id_servidor_mensal = mns.id
and mns.mes_referencia = @mesref
and bse.id = vba.id_financeiro_mensal
and mns.mes_referencia = lms.mes_referencia
and bse.id_lotacao_mensal = lms.id
and ltc.id = lms.id_lotacao
and vba.id_verba_rotina = rot.id
and inc.id = rot.id_verba
and srv.id = mns.id_servidor
and rot.rotina in ('FOL')
and inc.codigo in (51)
AND vba.valor <> bse.abono_salario_familia_valor
and abono_salario_familia_tipo <> 'SAF'
select srv.matricula, bse.abono_salario_familia_valor, vba.valor, bse.id_vinculo_empregaticio, bse.id_classificacao_funcional,
bse.abono_salario_familia_tipo, ltc.codigo
--delete rh.financeiro_mensal_verba
--update rh.financeiro_mensal set abono_salario_familia_valor = vba.valor, abono_salario_familia_tipo = 'SAF'
from rh.financeiro_mensal bse, rh.servidor_mensal mns, rh.financeiro_mensal_verba vba, rh.lotacao ltc, rh.lotacao_mensal lms, rh.verba inc, rh.verba_rotina rot, rh.servidor srv
where bse.id_servidor_mensal = mns.id
and mns.mes_referencia = @mesref
and bse.id = vba.id_financeiro_mensal
and mns.mes_referencia = lms.mes_referencia
and bse.id_lotacao_mensal = lms.id
and ltc.id = lms.id_lotacao
and vba.id_verba_rotina = rot.id
and inc.id = rot.id_verba
and srv.id = mns.id_servidor
and rot.rotina in ('FOL')
and inc.codigo in (53)
AND vba.valor <> bse.abono_salario_familia_valor
And abono_salario_familia_tipo <> 'ABF'
3 - ANTES DA ANALISE verificando diferença de consignação
use governa
--executar antes da análise
declare
@mesref int = 202305
drop table #financeiro_csg
select srv.matricula, inc.codigo, sum(avb.valor) 'valor', avb.id into #financeiro_csg
from rh.financeiro_mensal_averbacao avb,
rh.financeiro_mensal bse,
rh.averbacao aver,
rh.verba inc,
rh.servidor_mensal mns,
rh.servidor srv,
rh.lotacao ltc,
rh.lotacao_mensal lms
where avb.id_financeiro_mensal = bse.id
and avb.id_averbacao = aver.id
and aver.id_verba = inc.id
and bse.id_servidor_mensal = mns.id
and bse.mes_referencia = mns.mes_referencia
and mns.mes_referencia = avb.mes_referencia
and aver.id_servidor = srv.id
and ltc.id = lms.id_lotacao
and lms.mes_referencia = mns.mes_referencia
and lms.id = bse.id_lotacao_mensal
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
group by srv.matricula, inc.codigo,avb.id
drop table ##ver
select srv.matricula, inc.codigo, SUM(vba.valor) 'valor_folha' into ##ver
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.id in (select id_verba from rh.param_verba_consignacao where compulsorio = 0)
group by srv.matricula, inc.codigo
select * from #financeiro_csg csg, ##ver ver
where csg.matricula = ver.matricula
and csg.codigo = ver.codigo
and csg.valor <> ver.valor_folha
and csg.valor - ver.valor_folha > 0.01
select * from #financeiro_csg csg left join ##ver ver
on csg.matricula = ver.matricula
and csg.codigo = ver.codigo
where ver.matricula is null
/* quando tiver analise critica duplicada
select *
--delete rh.ANALISE_CRITICA_DETALHE
From rh.ANALISE_CRITICA_DETALHE ana, rh.averbacao avb, rh.servidor srv
where mes_referencia = 202108
and ana.id_averbacao = avb.id
and avb.id_servidor = srv.id
and srv.matricula in (300003039)
and ana.id = 50372092
*/
4 - sp_gerar_auxilio_saude - GERAR APENAS NA PREVIA
USE [Governa]
GO
/****** Object: StoredProcedure [rh].[sp_gerar_auxilio_saude] Script Date: 25/10/2018 07:25:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--CREATE PROCEDURE [rh].[sp_gerar_auxilio_saude]
--verificar cadastro de servidor afastado com consignacao e outra matricula exemplo matricula 300156490 matricula nova
DECLARE
@MesReferencia VARCHAR(6) = '202305'
,@MenorMatricula VARCHAR(9) = '100000000'
,@MenorLotacao VARCHAR(6) = '001'
,@MenorVerba VARCHAR(6) = '5000'
,@AuxilioSaude VARCHAR(6) = '2060'
,@Condicional VARCHAR(6) = '2260'
,@MoedaAuxilio int = '357'
,@MoedaCondicona int = '371'
,@Rotina VARCHAR(3) = 'FOL'
,@LotacaoDefenso VARCHAR(6) = '110'
--AS
DECLARE
@ID_VERBA_ROTINA_AUXILIO_SAUDE INT
,@ID_VERBA_ROTINA_AUXILIO_SAUDE_CONDICIONAL INT
-- PEGA A VERBA rotina DO AUXILIO SAÚDE
SET @ID_VERBA_ROTINA_AUXILIO_SAUDE = (SELECT rot.ID FROM rh.verba_rotina rot, rh.verba vba
WHERE rot.rotina = @Rotina AND vba.codigo = Convert(int,@AuxilioSaude)
AND rot.id_verba = vba.id)
-- PEGA A VERBA ROTINA DO AUXILIO SAÚDE CONDICIONAL
SET @ID_VERBA_ROTINA_AUXILIO_SAUDE_CONDICIONAL = (SELECT rot.ID FROM rh.verba_rotina rot, rh.verba vba
WHERE rot.rotina = @Rotina AND vba.codigo = Convert(int,@Condicional)
AND rot.id_verba = vba.id)
-- CARREGA TODOS OS SERVIDORES DO MÊS
SELECT DISTINCT
'ServidorId' = ser.id
,'ServidorMensalId' = sMensal.id
,'Matricula' = ser.matricula
,'Cpf' = pes.cpf
,'CargoId' = sMensal.id_cargo
,'ClassificacaoId' = sMensal.id_classificacao_funcional
,'Situacao' = sMensal.situacao
,'CargoCodigo' = carg.codigo
,'GrauSalarialId' = isnull(sMensal.id_grau_salarial,'391')
,'LotacaoId' = lot.id
,'LotacaoCodigo' = lot.codigo
INTO #Servidores
FROM rh.servidor ser
,Admin.pessoa_fisica pes
,rh.servidor_mensal sMensal
,rh.cargo carg
,rh.servidor_local sLoc
,rh.local_trabalho loc
,rh.lotacao lot
WHERE ser.id_pessoa = pes.id
AND sMensal.id_servidor = ser.id
AND carg.id = sMensal.id_cargo
AND sLoc.id_servidor_mensal = sMensal.id
AND loc.id = sLoc.id_local_trabalho
AND lot.id = loc.id_lotacao
AND sMensal.situacao IN ('AFA','ATV')
and carg.descricao not like 'cargo p%'
and carg.descricao not like '%estag%'
and carg.codigo not in (51318)
AND sMensal.mes_referencia = Convert(int,@MesReferencia)
and sMensal.id_classificacao_funcional not in (select clffnc from dbflh.dbo.TbClfAuxSau)
and lot.codigo not in (1892,1896) --acrescentado essa linha em 26/04/2022, solicitado por Vanessa
SELECT
'Matricula' = ser.matricula
,'Cpf' = ser.cpf
INTO #temp1
FROM #Servidores ser
,rh.averbacao avb
,rh.verba vba
WHERE avb.id_servidor = ser.servidorId
AND vba.id = avb.id_verba
AND ser.matricula > Convert(int,@MenorMatricula)
AND avb.situacao IN ('ATV','RED')
and ser.ServidorId not in (select id_servidor from rh.servidor_afastamento where remunerado = 0 and fim >= GETDATE())
--verificar cadastro de servidor afastado com consignacao e outra matricula exemplo matricula 300156490,300156638,300147014 matricula nova
-- AND vba.codigo IN (SELECT CodVba FROM DBTEMPS..TbVbaAuxSau)
and vba.id in (select id_verba from rh.param_verba_consignacao where id_tipo_facultativo in (3))
AND ser.matricula NOT IN (SELECT mtcfnc FROM dbtemps..tbmtcfnnaoauxsau) --tabela de matriculas que não deverao receber aux saude
AND ser.ClassificacaoId NOT IN (SELECT ClfFnc FROM dbtemps..TbClfAuxSau)
AND ser.cargoCodigo NOT IN (SELECT codFun FROM dbtemps..TbCargoNaoAuxSau)
AND ser.LotacaoCodigo NOT IN (SELECT codltc FROM dbtemps..TbLotNaoAuxSau)
--select *
--delete [192.168.10.14].dbflh.dbo.tbmtcfnnaoauxsau
--FROM [192.168.10.14].dbflh.dbo.tbmtcfnnaoauxsau where mtcfnc in (100085395,100085597,100088244,100089133,100067890)
-- CASO TENHA MAIS DE UMA MATRICULA (POR CPF), SELECIONA A MAIOR MATRICULA E LANCA A VERBA.
SELECT
'Matricula' = MAX(ser.matricula)
INTO #MatriculaEfetivas
FROM #Servidores ser
WHERE ser.matricula > Convert(int,@MenorMatricula)
AND ser.situacao = 'ATV'
AND ser.matricula NOT IN (SELECT clffnc FROM dbtemps..TbClfAuxSau)
AND ser.cargoCodigo NOT IN (SELECT codFun FROM dbtemps..TbCargoNaoAuxSau)
AND ser.LotacaoCodigo NOT IN (SELECT codltc FROM dbtemps..TbLotNaoAuxSau)
AND ser.matricula NOT IN (SELECT mtcfnc FROM dbtemps..tbmtcfnnaoauxsau)
AND ser.GrauSalarialId NOT IN (SELECT id FROM rh.grau_salarial WHERE grau in ('9900',''))
GROUP BY ser.cpf
HAVING COUNT(ser.matricula) >= 1
SELECT
'Matricula' = ser.matricula
,'Cpf' = ser.cpf
INTO #temp2
FROM #Servidores ser
WHERE ser.cpf NOT IN (SELECT Cpf FROM #temp1)
AND ser.matricula IN (SELECT Matricula FROM #MatriculaEfetivas)
-- MATRICULAS QUE TEM CDS
SELECT 'Matricula' = Max(ser.matricula)
INTO #MatriculasCDS
FROM #Servidores ser
WHERE ser.matricula > Convert(int,@MenorMatricula)
AND ser.grauSalarialId IN (SELECT id FROM rh.grau_salarial WHERE grau in ('9900',''))
AND ser.situacao = 'ATV'
AND ser.cargoId NOT IN (SELECT codFun FROM dbtemps..TbCargoNaoAuxSau)
AND ser.matricula NOT IN (SELECT clffnc FROM dbtemps..TbClfAuxSau)
AND ser.matricula NOT IN (SELECT mtcfnc FROM dbtemps..tbmtcfnnaoauxsau)
AND ser.LotacaoCodigo NOT IN (SELECT codltc FROM dbtemps..TbLotNaoAuxSau)
GROUP BY ser.cpf
HAVING COUNT(ser.matricula) >= 1
INSERT INTO #temp2
SELECT
'Matricula' = ser.matricula
,'Cpf' = ser.cpf
FROM #Servidores ser
WHERE ser.cpf NOT IN (SELECT Cpf FROM #temp1)
AND ser.cpf NOT IN (SELECT Cpf FROM #temp2)
AND ser.matricula IN (SELECT Matricula FROM #MatriculasCDS)
-- INSERIR MATRICULAS AFASTADAS COM ONUS PARA O ESTADO, LICENÇA MATERNIDADE E AUXILIO DOENÇA
INSERT INTO #TEMP2
SELECT
'Matricula' = MIN(ser.matricula)
,'Cpf' = ser.cpf
FROM #Servidores ser
,rh.servidor_afastamento afa
,rh.motivo_afastamento cauAfa
WHERE afa.id_servidor = ser.servidorId
AND afa.id_motivo_afastamento = cauAfa.id
AND ser.Cpf NOT IN (SELECT Cpf FROM #temp1)
AND ser.Cpf NOT IN (SELECT Cpf FROM #temp2)
AND ser.cargoCodigo NOT IN (SELECT codFun FROM dbtemps..TbCargoNaoAuxSau)
AND ser.classificacaoId NOT IN (SELECT ClfFnc FROM dbtemps..TbClfAuxSau)
AND ser.matricula NOT IN (SELECT mtcfnc FROM dbtemps..tbmtcfnnaoauxsau)
AND ser.matricula > Convert(int,@MenorMatricula)
AND ser.situacao = 'AFA'
AND cauAfa.id IN (21,22,27,2,29,34,37,38,36,35,34,33)
AND ser.LotacaoCodigo NOT IN (SELECT codltc FROM dbtemps..TbLotNaoAuxSau)
GROUP BY ser.cpf
-- RETIRA DA TABELA OS LANCAMENTOS EFETUADOS NA VERBAS EVENTUAIS
BEGIN
DELETE FROM #temp1
WHERE Cpf IN (SELECT ser.cpf
FROM rh.verba_eventual vba
,#Servidores ser
,rh.verba_rotina vRot
,rh.verba vINc
WHERE mes_referencia = Convert(int,@MesReferencia)
AND vba.id_servidor = ser.servidorId
AND vRot.id = vba.id_verba_rotina
AND vRot.rotina = @Rotina
AND vINc.id = vRot.id_verba
AND vINc.codigo IN (Convert(int,@AuxilioSaude),Convert(int,@Condicional)))
DELETE FROM #temp2
WHERE Cpf IN (SELECT ser.cpf
FROM rh.verba_eventual vba
,#Servidores ser
,rh.verba_rotina vRot
,rh.verba vINc
WHERE mes_referencia = Convert(int,@MesReferencia)
AND vba.id_servidor = ser.servidorId
AND vRot.id = vba.id_verba_rotina
AND vRot.rotina = @Rotina
AND vINc.id = vRot.id_verba
AND vINc.codigo IN (Convert(int,@AuxilioSaude), Convert(int,@Condicional)))
END
-- RETIRA DA TABELA OS LANCAMENTOS EFETUADOS NA VERBAS PERIODICA
BEGIN
DELETE #temp1
WHERE Cpf IN (SELECT ser.cpf
FROM rh.verba_periodica vPer
,#Servidores ser
,rh.verba vba
WHERE INicio <= CONVERT(DATETIME, (CONVERT(CHAR(06) , Convert(int,@MesReferencia)) + '01'))
AND fim >= CONVERT(DATETIME,(CONVERT(CHAR(06),Convert(int,@MesReferencia)) + '28'))
AND ser.servidorId = vPer.id_servidor
AND vPer.id_verba = vba.id
AND vba.codigo IN(Convert(int,@AuxilioSaude),Convert(int,@Condicional)))
DELETE #temp2
WHERE Cpf IN (SELECT ser.cpf
FROM rh.verba_periodica vPer
,#Servidores ser
,rh.verba vba
WHERE Inicio <= CONVERT(DATETIME, (CONVERT(CHAR(06) , Convert(int,@MesReferencia)) + '01'))
AND fim >= CONVERT(DATETIME,(CONVERT(CHAR(06),Convert(int,@MesReferencia)) + '28'))
AND ser.servidorId = vPer.id_servidor
AND vPer.id_verba = vba.id
AND vba.codigo IN(Convert(int,@AuxilioSaude),Convert(int,@Condicional)))
END
-- RETIRA DA TABELA OS LANCAMENTOS EFETUADOS NA VERBAS PERIODICA SEM DATA DE FIM
BEGIN
DELETE #temp1
WHERE Cpf IN (SELECT ser.cpf
FROM rh.verba_periodica vPer
,#Servidores ser
,rh.verba vba
WHERE Inicio <= CONVERT(DATETIME, (CONVERT(CHAR(06) , Convert(int,@MesReferencia)) + '01'))
AND fim is null
AND ser.servidorId = vPer.id_servidor
AND vPer.id_verba = vba.id
AND vba.codigo IN(Convert(int,@AuxilioSaude),Convert(int,@Condicional)))
DELETE #temp2
WHERE Cpf IN (SELECT ser.cpf
FROM rh.verba_periodica vPer
,#Servidores ser
,rh.verba vba
WHERE Inicio <= CONVERT(DATETIME, (CONVERT(CHAR(06) , Convert(int,@MesReferencia)) + '01'))
AND fim is null
AND ser.servidorId = vPer.id_servidor
AND vPer.id_verba = vba.id
AND vba.codigo IN(Convert(int,@AuxilioSaude),Convert(int,@Condicional)))
END
-- INSERE AUXILIO SAUDE CONDICIONAL PARA VERBAS VARIAVEIS
BEGIN
INSERT INTO RH.VERBA_EVENTUAL
SELECT NEXT VALUE FOR rh.s_verba_eventual, Convert(int,@MesReferencia), ser.servidorId
,@ID_VERBA_ROTINA_AUXILIO_SAUDE_CONDICIONAL, mMensal.valor_moeda, 1.00, 30.00, NULL, NULL, ser.Matricula,null,null,null,null,null
FROM #temp1 a
,rh.moeda moe
,rh.moeda_mensal mMensal
,#Servidores ser
WHERE ser.matricula = a.matricula
AND moe.id = mMensal.id_moeda
AND mMensal.mes_referencia = Convert(int,@MesReferencia)
AND moe.codigo = @MoedaCondicona
and ser.ServidorId not in (select id_servidor from rh.verba_eventual eve where eve.id_servidor = ser.ServidorId and eve.mes_referencia = @MesReferencia and eve.id_verba_rotina = @ID_VERBA_ROTINA_AUXILIO_SAUDE_CONDICIONAL)
END
BEGIN
INSERT INTO RH.VERBA_EVENTUAL
SELECT NEXT VALUE FOR rh.s_verba_eventual, Convert(int,@MesReferencia), ser.servidorId
,@ID_VERBA_ROTINA_AUXILIO_SAUDE, mMensal.valor_moeda, 1.00, 30.00, NULL, NULL, ser.Matricula,null,null,null,null,null
FROM #temp2 a
,rh.moeda moe
,rh.moeda_mensal mMensal
,#Servidores ser
WHERE ser.matricula = a.matricula
AND moe.id = mMensal.id_moeda
AND mMensal.mes_referencia = Convert(int,@MesReferencia)
AND moe.codigo = @MoedaAuxilio
and ser.ServidorId not in (select id_servidor from rh.verba_eventual eve where eve.id_servidor = ser.ServidorId and eve.mes_referencia = @MesReferencia and eve.id_verba_rotina = @ID_VERBA_ROTINA_AUXILIO_SAUDE)
and ser.ServidorId not in (select id_servidor from rh.verba_eventual eve where eve.id_servidor = ser.ServidorId and eve.mes_referencia = @MesReferencia and eve.id_verba_rotina = @ID_VERBA_ROTINA_AUXILIO_SAUDE_CONDICIONAL)
END
-- ATUALIZANDO VALOR DO VALE PARA DEFENSORIA PUBLICA PARA 100 REAIS
BEGIN
UPDATE RH.VERBA_EVENTUAL
SET valor = 100.00
FROM RH.VERBA_EVENTUAL B
,RH.VERBA A
,RH.verba_rotina C
,#Servidores ser
WHERE A.ID = C.id_verba
AND C.id = B.id_verba_rotina
AND ser.ServidorId = b.id_servidor
AND ser.LotacaoCodigo in (@LotacaoDefenso)
AND C.id = @ID_VERBA_ROTINA_AUXILIO_SAUDE
AND b.mes_referencia = Convert(int,@MesReferencia)
AND valor = 50.0
END
-- ATUALIZANDO VALOR DO VALE PARA DEFENSORIA PUBLICA PARA 200 REAIS
BEGIN
UPDATE RH.VERBA_EVENTUAL
SET valor = 200.00
FROM RH.VERBA_EVENTUAL B
,RH.VERBA A
,RH.verba_rotina C
,#Servidores ser
WHERE A.ID = C.id_verba
AND C.id = B.id_verba_rotina
AND ser.ServidorId = b.id_servidor
AND ser.LotacaoCodigo in (@LotacaoDefenso)
AND c.id = @ID_VERBA_ROTINA_AUXILIO_SAUDE_CONDICIONAL
AND B.mes_referencia = Convert(int,@MesReferencia)
AND valor = 150.00
END
DROP TABLE #temp1
DROP TABLE #temp2
DROP TABLE #MatriculaEfetivas
DROP TABLE #MatriculasCDS
DROP TABLE #Servidores
GO
Os demais scripts a seguir podem ser executados independentemente da ordem, até que não retorne mais registros com erro.
5 - verificar servidores sem verba de vencimento
use governa
declare
@mesref int = 202304,
@mesant int = 202305
drop table #sem
select mns.matricula, mns.id_cargo into #sem
from rh.servidor_mensal mns, rh.grau_salarial gra
where mes_referencia = @mesref
and id_verba_vencimento is null
and isnull(mns.id_grau_salarial,0) = gra.id
and gra.grau not in ('9900','AL/PM')
and mns.situacao not in ('DSL')
drop table #retornar
select mns.matricula, mns.id_cargo, mns.id_verba_vencimento into #retornar
from rh.servidor_mensal mns, rh.grau_salarial gra, #sem sem
where mes_referencia = @mesant
and id_verba_vencimento is not null
and isnull(mns.id_grau_salarial,0) = gra.id
and mns.matricula = sem.matricula
and mns.id_cargo = sem.id_cargo
select mns.matricula, mns.id_verba_vencimento, rto.id_verba_vencimento, ltc.codigo, lms.descricao
--update rh.servidor_mensal set id_verba_vencimento = rto.id_verba_vencimento
from rh.servidor_mensal mns, rh.grau_salarial gra, #retornar rto, rh.lotacao ltc, rh.lotacao_mensal lms
where mns.mes_referencia = 202305
and mns.id_verba_vencimento is null
and isnull(mns.id_grau_salarial,0) = gra.id
and mns.matricula = rto.matricula
and mns.id_cargo = rto.id_cargo
and mns.id_lotacao_mensal = lms.id
and lms.id_lotacao = ltc.id
and lms.mes_referencia = mns.mes_referencia
--and ltc.codigo not in (822)
--order by ltc.codigo
6 - verificando saldo negativo
use governa
declare
@mesref int = 202305
select srv.matricula, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.servidor srv,
rh.servidor_mensal mns,
rh.verba inc,
rh.verba_rotina rot,
rh.lotacao ltc,
rh.lotacao_mensal lms
where bse.id = vba.id_financeiro_mensal
and bse.id_servidor_mensal = mns.id
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and mns.id_servidor = srv.id
and ltc.id = lms.id_lotacao
and lms.mes_referencia = mns.mes_referencia
and bse.id_lotacao_mensal = lms.id
and mns.mes_referencia = @mesref
and inc.codigo in (400)
and bse.rotina = 'FOL'
order by ltc.codigo
--select *
----update rh.servidor_mensal set situacao = 'ATV'
--from rh.servidor srv, rh.servidor_mensal mns
--where srv.id = mns.id_servidor
--and mes_referencia = 202110
--and srv.matricula in (300117397,300062142)
7 - verificando servidores admitidos 06112018 prevcom
use Governa
declare
@mesref int = 202305
select matricula, cargoId,convert(char(10),admissao,103) 'Admissão',cargoDescricao , classificacaoFuncionalId, classificacao_funcional
from FinanceiroMensal
where mesreferencia = @mesref
and admissao >= '20181106'
and classificacaoFuncionalId in (4,65)
and cargoId not in (1896,1895,1891,1877,1876,1231,1250,1962,1221,2384,3341,2204,2011,1939,2552,487,2113,3565,1963,3566)
and grauSalarial <> '9900'
and matricula >= 300000000
and matricula not in (300156208,300168976,300170916,300169929,300171739,300168958,300188247)
order by cargoDescricao
select bse.matricula, bse.admissao, SUM(vba.verbaValor)'Total_Verbas_Contribuicao'
from FinanceiroMensal bse, FinanceiroMensalVerba vba, rh.verba inc, rh.verba_rotina rot
where bse.mesreferencia = @mesref
and bse.admissao >= '20181106'
and bse.classificacaoFuncionalId in (83)
and bse.cargoId not in (1896,1895,1891,1877,1876,1231,1250,1962,1221,2384,3341,2204,2011,1939)
and bse.financeiroMensalId = vba.idFinanceiroMensal
and vba.verbaId = inc.id
and inc.id = rot.id_verba
and bse.rotina = vba.rotina
and bse.rotina = rot.rotina
and rot.rotina = 'FOL'
and rot.incide_rpps = 1
and inc.classificacao <> 'DIF'
and inc.codigo < 5000
and bse.servidorId not in (select id_servidor from rh.verba_periodica where id_verba = 7646)
and bse.matricula not in (300161214,300169053,300172954,300176406,300181912,300182823,300182453,300188247)
group by bse.matricula, bse.admissao
having SUM(vba.verbaValor) > 7507.49
8 - verificando lotações novas
use governa
declare
@mesref int = 202305,
@mesant int = 202302
select distinct lotacaoCodigo, lotacaoMensalDescricao
from FinanceiroMensal
where mesReferencia = @mesref
and lotacaoCodigo not in (select distinct lotacaoCodigo from FinanceiroMensal
where mesReferencia = @mesant)
order by lotacaoCodigo
select matricula,lotacaoCodigo, lotacaoMensalDescricao from FinanceiroMensal
where lotacaoCodigo in (select distinct lotacaoCodigo
from FinanceiroMensal
where mesReferencia = @mesref
and lotacaoCodigo not in (select distinct lotacaoCodigo from FinanceiroMensal
where mesReferencia = @mesant))
and mesReferencia = @mesref
order by lotacaoCodigo
9 - verificando afastamentos IPERON em servidor não IPERON
use governa
declare
@mesref int = 202305
select srv.matricula, clf.descricao ,mot.descricao
From rh.servidor_afastamento afa,
rh.servidor srv,
rh.motivo_afastamento mot,
rh.servidor_mensal mns,
rh.param_previdencia par,
rh.classificacao_funcional clf
where afa.id_servidor = srv.id
and afa.id_motivo_afastamento = mot.id
and afa.fim >= SUBSTRING(convert(char(6),@mesref), 1, 6) + '01'
and afa.id_motivo_afastamento in (27,29,34,38)
and srv.id = mns.id_servidor
and mns.mes_referencia = @mesref
and mns.mes_referencia = par.mes_referencia
and par.id_classificacao_funcional = mns.id_classificacao_funcional
and par.id_vinculo_empregaticio = mns.id_vinculo_empregaticio
and clf.id = par.id_classificacao_funcional
and par.tipo <> 'OUT'
and mns.situacao <> 'DSL'
10 - Checar Afastamento Salário Maternidade Errado
use governa
declare
@mesref int = 202305
drop table #maternidade
select srv.matricula into #maternidade
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
rh.param_previdencia par
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and inc.codigo in (81,82)
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and mns.mes_referencia = @mesref
and mns.mes_referencia = par.mes_referencia
and mns.id_vinculo_empregaticio = par.id_vinculo_empregaticio
and mns.id_classificacao_funcional = par.id_classificacao_funcional
and par.id_orgao_previdenciario <> 1
insert into #maternidade
select srv.matricula
from rh.servidor_mensal mns,
rh.servidor srv,
rh.param_previdencia par,
rh.servidor_afastamento afa,
rh.verba inc,
rh.verba_rotina rot
where mns.id_servidor = srv.id
and afa.id_servidor = srv.id
and afa.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and inc.codigo = 81
and ((afa.fim is null) or (afa.fim > getdate()))
and mns.mes_referencia = par.mes_referencia
and mns.id_vinculo_empregaticio = par.id_vinculo_empregaticio
and mns.id_classificacao_funcional = par.id_classificacao_funcional
and par.id_orgao_previdenciario <> 1
and mns.mes_referencia = @mesref
and mns.situacao <> 'DSL'
select srv.matricula
from rh.servidor_mensal mns,
rh.servidor srv,
rh.param_previdencia par,
rh.servidor_afastamento afa,
rh.motivo_afastamento mtv,
rh.verba inc,
rh.verba_rotina rot
where mns.id_servidor = srv.id
and afa.id_servidor = srv.id
and afa.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and ((afa.fim is null) or (afa.fim > getdate()))
and mns.mes_referencia = par.mes_referencia
and mns.id_vinculo_empregaticio = par.id_vinculo_empregaticio
and mns.id_classificacao_funcional = par.id_classificacao_funcional
and srv.matricula in (select matricula from #maternidade)
and par.id_orgao_previdenciario <> 1
and mns.mes_referencia = @mesref
and afa.id_motivo_afastamento = mtv.id
and mtv.id = 27
and mns.situacao <> 'DSL'
union
select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
rh.param_previdencia par
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and inc.codigo in (81,82,9)
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and mns.mes_referencia = @mesref
and mns.mes_referencia = par.mes_referencia
and mns.id_vinculo_empregaticio = par.id_vinculo_empregaticio
and mns.id_classificacao_funcional = par.id_classificacao_funcional
and ((par.id_orgao_previdenciario <> 1) and (par.id_orgao_previdenciario <> 2))
and mns.situacao <> 'DSL'
union
select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
rh.param_previdencia par
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and inc.codigo in (9)
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and mns.mes_referencia = @mesref
and mns.mes_referencia = par.mes_referencia
and mns.id_vinculo_empregaticio = par.id_vinculo_empregaticio
and mns.id_classificacao_funcional = par.id_classificacao_funcional
and par.id_orgao_previdenciario = 1
and mns.situacao <> 'DSL'
union
select srv.matricula
from rh.servidor_afastamento afa, rh.servidor srv, rh.servidor_mensal mns
where id_motivo_afastamento in (27,38)
and afa.id_servidor in (select id_servidor from rh.servidor_afastamento where id_motivo_afastamento in (2,37) and ((fim is null) or (fim > getdate())))
and ((fim is null) or (fim > getdate()))
and afa.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.mes_referencia = @mesref
and mns.situacao <> 'DSL'
union
select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
rh.param_previdencia par
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and inc.codigo in (81)
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and mns.mes_referencia = @mesref
and mns.mes_referencia = par.mes_referencia
and mns.id_vinculo_empregaticio = par.id_vinculo_empregaticio
and mns.id_classificacao_funcional = par.id_classificacao_funcional
and par.id_orgao_previdenciario = 2
drop table #maternidade
11 - checando FGTS
use governa
declare
@mesref int = 202305
begin
print 'Não INSS com FGTS'
select fis.cpf, srv.matricula, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.servidor srv,
rh.servidor_mensal mns,
rh.lotacao ltc,
rh.lotacao_mensal lms,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and srv.id_pessoa = fis.id
and mns.id_servidor = srv.id
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and ltc.id = lms.id_lotacao
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and isnull(bse.fgts_servidor_valor,0) <> .0000
and isnull(bse.previ_tipo,'0') <> 'INS'
end
begin
print 'Celetista sem FGTS'
select fis.cpf, srv.matricula, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.servidor srv,
rh.servidor_mensal mns,
rh.lotacao ltc,
rh.lotacao_mensal lms,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and srv.id_pessoa = fis.id
and mns.id_servidor = srv.id
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and ltc.id = lms.id_lotacao
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and bse.id_vinculo_empregaticio = 2
and bse.id_classificacao_funcional in (1,14)
and isnull(bse.fgts_servidor_valor,0) <> .0000
end
begin
print 'celetista sem FGTS'
select srv.matricula, fis.cpf, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.servidor srv,
rh.servidor_mensal mns,
rh.lotacao ltc,
rh.lotacao_mensal lms,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and srv.id_pessoa = fis.id
and mns.id_servidor = srv.id
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and ltc.id = lms.id_lotacao
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and bse.id_vinculo_empregaticio = 1
and bse.id_classificacao_funcional NOT in (5,6,31,33,27,12)
and isnull(bse.fgts_servidor_valor,0) = .0000
and mns.processa_fgts = 0
end
begin
print 'Nao Celetista com FGTS'
select fis.cpf, bse.matricula, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.servidor srv,
rh.servidor_mensal mns,
rh.lotacao ltc,
rh.lotacao_mensal lms,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and srv.id_pessoa = fis.id
and mns.id_servidor = srv.id
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and ltc.id = lms.id_lotacao
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and bse.id_vinculo_empregaticio = 2
and bse.id_classificacao_funcional NOT in (1,14)
and isnull(bse.fgts_servidor_valor,0) <> .0000
end
begin
print 'Celetista sem FGTS'
select srv.matricula,fis.cpf, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.servidor srv,
rh.servidor_mensal mns,
rh.lotacao ltc,
rh.lotacao_mensal lms,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and srv.id_pessoa = fis.id
and mns.id_servidor = srv.id
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and ltc.id = lms.id_lotacao
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and bse.id_vinculo_empregaticio = 2
and bse.id_classificacao_funcional in (1,14)
and isnull(bse.fgts_servidor_valor,0) = .0000
end
begin
print 'Base de FGTS Diferente da base Previdencia'
select srv.matricula, fis.cpf, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, bse.previ_folha_base, bse.fgts_folha_base, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.servidor srv,
rh.servidor_mensal mns,
rh.lotacao ltc,
rh.lotacao_mensal lms,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and srv.id_pessoa = fis.id
and mns.id_servidor = srv.id
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and ltc.id = lms.id_lotacao
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and isnull(bse.fgts_folha_base,0) <> isnull(bse.previ_folha_base,0)
and isnull(bse.fgts_servidor_valor,0) <> 0
end
begin
print 'Sem valor de previdencia na base e com verba de previdencia'
select srv.matricula, fis.cpf, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, bse.previ_folha_base, bse.fgts_folha_base, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor srv,
rh.servidor_mensal mns,
rh.lotacao ltc,
rh.lotacao_mensal lms,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and srv.id_pessoa = fis.id
and mns.id_servidor = srv.id
and bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and inc.id = rot.id_verba
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and ltc.id = lms.id_lotacao
and inc.codigo in (6004,6002)
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and isnull(bse.previ_folha_valor,0) = 0
end
begin
print 'Valor do FGTS diferente'
select srv.matricula, fis.cpf, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, bse.previ_folha_base, bse.fgts_folha_base, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor srv,
rh.servidor_mensal mns,
rh.lotacao ltc,
rh.lotacao_mensal lms,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and srv.id_pessoa = fis.id
and mns.id_servidor = srv.id
and bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and inc.id = rot.id_verba
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and ltc.id = lms.id_lotacao
and inc.codigo in (6004)
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and round((bse.fgts_folha_base*8)/100,2) - bse.fgts_servidor_valor >=0.02
end
begin
print 'Celetista com Classificacao Diferente'
select fis.cpf, bse.matricula, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.servidor srv,
rh.servidor_mensal mns,
rh.lotacao ltc,
rh.lotacao_mensal lms,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and srv.id_pessoa = fis.id
and mns.id_servidor = srv.id
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and ltc.id = lms.id_lotacao
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and bse.id_vinculo_empregaticio = 1
and bse.id_classificacao_funcional NOT in (1,4,13,14,30,35)
and isnull(bse.fgts_servidor_valor,0) <> .0000
end
begin
print 'Servidor com ocorrencia 05'
select fis.cpf, bse.matricula, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, ltc.codigo, lms.descricao_reduzida_lotacao
from rh.financeiro_mensal bse,
rh.servidor srv,
rh.servidor_mensal mns,
rh.lotacao ltc,
rh.lotacao_mensal lms,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and srv.id_pessoa = fis.id
and mns.id_servidor = srv.id
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and ltc.id = lms.id_lotacao
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and mns.ocorrencia_especial_sefip in ('05','5')
--colocar ainda para verificar verba fixa 9005
end
--print 'Servidor com ocorrencia 05'
--select fis.cpf, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor
--from rh.financeiro_mensal bse,
-- rh.servidor srv,
-- rh.servidor_mensal mns,
-- admin.pessoa_fisica fis
--where bse.id_servidor_mensal = mns.id
-- and srv.id_pessoa = fis.id
-- and mns.id_servidor = srv.id
-- and mns.mes_referencia = 201904
-- and bse.rotina = 'FOL'
-- and mns.ocorrencia_especial_sefip in ('05','5')
--colocar ainda para verificar verba fixa 6004
--union
--select 'mtcfnc' = bse.mtcfnc, 'Nomfnc' = 'Nome'
--from tbrhpssmns mns,
-- tbrhfinbse bse
--where mns.mesref = @MesRef
-- and mns.mesref = bse.mesref
-- and mns.mtcfnc = bse.mtcfnc
-- and bse.tiprotcal = 4
-- and mns.CodOcoSefip in ('05','5')
-- and mns.CalFgts = 'S'
--group by bse.mtcfnc,bse.numseqpns,bse.codltc,BseCalFgtsFin ,bse.vlrfgtsfin
--select fis.cpf, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor
--from rh.financeiro_mensal bse,
-- rh.servidor srv,
-- rh.servidor_mensal mns,
-- admin.pessoa_fisica fis
--where bse.id_servidor_mensal = mns.id
-- and srv.id_pessoa = fis.id
-- and mns.id_servidor = srv.id
-- and mns.mes_referencia = 201904
-- and bse.rotina = 'FOL'
-- and mns.ocorrencia_especial_sefip in ('05','5')
--colocar ainda para verificar verba fixa 6004
--union
--select 'mtcfnc' = bse.mtcfnc, 'Nomfnc' = 'Nome'
--from tbrhpssmns mns,
-- tbrhfinbse bse
--where mns.mesref = @MesRef
-- and mns.mesref = bse.mesref
-- and mns.mtcfnc = bse.mtcfnc
-- and bse.tiprotcal = 4
-- and ((mns.CodOcoSefip is null) or (mns.CodOcoSefip = ''))
-- and mns.MtcFnc in (select MtcFnc from TbRhVbaFix where CodVba = 9005 and ((DatFimVbaFix >= GETDATE()) or (DatFimVbaFix is null)))
--group by bse.mtcfnc,bse.numseqpns,bse.codltc ,BseCalFgtsFin,bse.vlrfgtsfin
--select srv.matricula, fis.cpf, bse.salario_bruto_valor 'Valor Bruto', previ_tipo, fgts_servidor_valor, bse.previ_folha_base, bse.fgts_folha_base
--from rh.financeiro_mensal bse,
-- rh.servidor srv,
-- rh.servidor_mensal mns,
-- admin.pessoa_fisica fis
--where bse.id_servidor_mensal = mns.id
-- and srv.id_pessoa = fis.id
-- and mns.id_servidor = srv.id
-- and mns.mes_referencia = 201904
-- and bse.rotina = 'FOL'
-- and round(bse.fgts_folha_base*0.08,2) <> bse.fgts_servidor_valor
12 - verifica servidores sem vencimento no mês
-- verifica servidores sem vencimento no mês
use governa
select mns.matricula, mns.id_verba_vencimento, ltc.codigo, lms.descricao, mns.id_cargo, mns.id_classificacao_funcional
from rh.servidor_mensal mns, rh.grau_salarial gra, rh.lotacao ltc, rh.lotacao_mensal lms, rh.financeiro_mensal fmn
where mns.mes_referencia = 202305
and mns.id_verba_vencimento is null
and isnull(mns.id_grau_salarial,0) = gra.id
and mns.id_cargo not in (1877,1935,1896,2552,1939,2213,2204,2011,1876)
and mns.id_classificacao_funcional not in (2,17,16,21,13)
and mns.id_lotacao_mensal = lms.id
--and mns.id_verba_vencimento = 314
and fmn.id_servidor_mensal = mns.id
and lms.id_lotacao = ltc.id
and lms.mes_referencia = mns.mes_referencia
and ltc.codigo not in (104)
13 - VERIFICANDO SERVIDORES COM INSALUBRIDADE E PERICULOSIDADE
use governa
declare
@mesref int = 202305
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.descricao like '%INSALU%'
and inc.codigo < 5000
and srv.matricula in (select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.descricao like '%pericu%'
and inc.codigo < 5000)
14 - verificando hora extra errada
use governa
declare
@mesref int = 202305
--verifica servidor com verba de medico 20h
select srv.matricula, pes.nome
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_eventual vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.cargo fun,
rh.cargo_mensal crm
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and vra.mes_referencia = mns.mes_referencia
and mns.mes_referencia = crm.mes_referencia
and pes.id = srv.id_pessoa
and rot.rotina = 'FOL'
and vba.codigo in (1059,1060)
and mns.id_cargo = crm.id_cargo
and crm.id_cargo = fun.id
and fun.codigo not in (642)
and vra.mes_referencia = @mesref
--verifica medico 20h com verba errada
select srv.matricula, pes.nome, fun.descricao, vba.codigo as verba
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_eventual vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.cargo fun,
rh.cargo_mensal crm
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and vra.mes_referencia = mns.mes_referencia
and mns.mes_referencia = crm.mes_referencia
and pes.id = srv.id_pessoa
and rot.rotina = 'FOL'
and vba.codigo in (1057,1058)
and mns.id_cargo = crm.id_cargo
and crm.id_cargo = fun.id
and fun.codigo in (642)
and vra.mes_referencia = @mesref
15 - Altera verba 709 763 para 303 de quem está na TABSAL PCIVIL
use governa
declare
@mesref int = 202305
select srv.matricula, ltc.codigo, inc.codigo, evt.valor
--update rh.verba_eventual set id_verba_rotina = 638
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_eventual evt,
rh.verba_rotina vms,
rh.verba inc,
rh.cargo crg,
rh.cargo_mensal crm,
rh.nivel_salarial niv
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba_rotina = vms.id
and vms.id_verba = inc.id
and evt.mes_referencia = mns.mes_referencia
and mns.id_cargo = crg.id
and crg.id = crm.id_cargo
and mns.mes_referencia = crm.mes_referencia
and crm.id_nivel_salarial = niv.id
and niv.nivel = 'PCIVIL'
and inc.codigo in (709,363)
and vms.rotina = 'FOL'
and mns.mes_referencia = 202305
--order by ltc.codigo
--select * from rh.verba_rotina rot, rh.verba inc where rot.id_verba = inc.id and rot.rotina = 'FOL' and inc.codigo = 303
16 - checando gozo com varias datas de pagamento para mesmo período aquisitivo
use governa
declare
@mesref int = 202305
select srv.matricula, fer.inicio, fer.fim, mns.id_cargo,crg.descricao, count(distinct data_pagamento) 'Qde_data' into #temp
from rh.servidor_ferias fer, rh.servidor_ferias_gozo goz, rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg
where fer.id = goz.id_servidor_ferias
and fer.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.mes_referencia = @mesref
and goz.data_pagamento is not null
and goz.data_pagamento >= SUBSTRING(convert(char(6),@mesref), 1, 6) + '01'
and mns.id_cargo not in (select fca.id_cargo from rh.param_ferias_especiais_cargo fca, rh.param_ferias_especiais esp where fca.id_param_ferias_especiais = esp.id and esp.quantidade_pagamento = 2)
group by srv.matricula, fer.inicio, fer.fim, mns.id_cargo,crg.descricao
having count(distinct data_pagamento) > 1
select tmp.matricula, pes.nome, tmp.descricao, tmp.inicio, tmp.fim, lms.codigo, lms.descricao, goz.data_pagamento
from #temp tmp, rh.servidor srv, admin.pessoa pes, rh.servidor_mensal mns, rh.lotacao_mensal lms, rh.servidor_ferias_gozo goz, rh.servidor_ferias fer
where srv.id_pessoa = pes.id
and srv.matricula = tmp.matricula
and goz.id_servidor_ferias = fer.id
and fer.inicio = tmp.inicio
and fer.fim = tmp.fim
and fer.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id_lotacao_mensal = lms.id
and mns.mes_referencia = lms.mes_referencia
and mns.mes_referencia = @mesref
and goz.data_pagamento >= SUBSTRING(convert(char(6),@mesref), 1, 6) + '01'
order by goz.data_pagamento
drop table #temp
17 - checando quem tem averbação duplicada
-- Confere quem tem averbação duplicada
use governa
select avb.codigo, count(*) 'qde' into #temp
from rh.averbacao avb, rh.servidor srv
where avb.id_servidor = srv.id
group by avb.codigo
having count(*) > 1
select tmp.codigo, max(id) 'deletar' into #deletar
from #temp tmp, rh.averbacao avb
where tmp.codigo = avb.codigo
group by tmp.codigo
--PRIMEIRO APAGA O FINANCEIRO DA AVERBAÇÃO
select *
--delete rh.financeiro_mensal_averbacao
from rh.financeiro_mensal_averbacao fma, #deletar del
where mes_referencia = 202305
and del.deletar = fma.id_averbacao
--SEGUNDO APAGA NA TABELA DE AVERBAÇÃO
select *
--delete rh.averbacao
From #deletar del, rh.averbacao avb, rh.servidor srv
where del.deletar = avb.id
and srv.id = avb.id_servidor
--drop table #temp
--drop table #deletar
-- CHECANDO QUEM ESTÁ COM AVERBAÇÃO DE PLANO DE SAÚDE ZERADA
select matricula,*
--update rh.averbacao set situacao = 'SUS'
from rh.averbacao ave, rh.servidor srv
where srv.id = ave.id_servidor
and situacao = 'atv'
and valor_parcela = 0.00
and id_verba in (2019,2009,2012,1913,2160,2159,1736,1518,1715,7548,2075,1568,2077,2036,2039,7692,1504,2037,2038,7642,7674,1488,1874,1689,1622,1572,2015,1499,1753,1752,1757)
18 - Checando Recebimento Cumulativo das Verbas 165. 2013 e 2015
use governa
declare
@mesref int = 202305
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 165
and srv.matricula in (select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo in (2013, 2015))
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 2013
and srv.matricula in (select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo in (2015))
19 - Checar SEJUS com verba de adicional noturno errado 719
use governa
declare
@mesref int = 202305
select srv.matricula, ltc.codigo, inc.codigo, evt.valor
--update rh.verba_eventual set id_verba_rotina = 1389
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_eventual evt,
rh.verba_rotina vms,
rh.verba inc,
rh.cargo crg,
rh.cargo_mensal crm,
rh.nivel_salarial niv
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba_rotina = vms.id
and vms.id_verba = inc.id
and evt.mes_referencia = mns.mes_referencia
and mns.id_cargo = crg.id
and crg.id = crm.id_cargo
and mns.mes_referencia = crm.mes_referencia
and crm.id_nivel_salarial = niv.id
and inc.codigo in (709,363,303)
and vms.rotina = 'FOL'
and mns.mes_referencia = 202305
and srv.matricula in (300117240,300116567,300117236,300087537,300088222,300116555,300117152,300118201,300088168,300097844,300087534,300093063,
300117156,300093240,300117209,300117115,300117156,300097551,300098884,300117142,300097767,300117117,300116391,300117663,
300097802,300099905,300117128,300116396,300084204,300088740,300098848,300098865,300093102,300137150)
order by ltc.codigo
select codigo, rot.id from rh.verba inc, rh.verba_rotina rot
where inc.id = rot.id_verba
and codigo = 719
and rotina = 'FOL'
20 - Checar SEJUS com verba de adicional noturno errado. 783
use governa
declare
@mesref int = 202305
select srv.matricula, ltc.codigo, inc.codigo, evt.valor
--update rh.verba_eventual set id_verba_rotina = 1546
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_eventual evt,
rh.verba_rotina vms,
rh.verba inc,
rh.cargo crg,
rh.cargo_mensal crm,
rh.nivel_salarial niv
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba_rotina = vms.id
and vms.id_verba = inc.id
and evt.mes_referencia = mns.mes_referencia
and mns.id_cargo = crg.id
and crg.id = crm.id_cargo
and mns.mes_referencia = crm.mes_referencia
and crm.id_nivel_salarial = niv.id
and inc.codigo in (785,719,709,363,303)
and vms.rotina = 'FOL'
and mns.mes_referencia = 202305
and srv.matricula in (300099974,300118201)
order by ltc.codigo
select codigo, rot.id from rh.verba inc, rh.verba_rotina rot
where inc.id = rot.id_verba
and codigo = 783
and rotina = 'FOL'
21 - Checar SEJUS com verba de adicional noturno errado. 785
use governa
declare
@mesref int = 202305
select srv.matricula, ltc.codigo, inc.codigo, evt.valor
--update rh.verba_eventual set id_verba_rotina = 1549
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_eventual evt,
rh.verba_rotina vms,
rh.verba inc,
rh.cargo crg,
rh.cargo_mensal crm,
rh.nivel_salarial niv
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba_rotina = vms.id
and vms.id_verba = inc.id
and evt.mes_referencia = mns.mes_referencia
and mns.id_cargo = crg.id
and crg.id = crm.id_cargo
and mns.mes_referencia = crm.mes_referencia
and crm.id_nivel_salarial = niv.id
and inc.codigo in (719,709,363,303,1041)
and vms.rotina = 'FOL'
and mns.mes_referencia = 202305
and srv.matricula in (300117132,300088287)
order by ltc.codigo
select codigo, rot.id from rh.verba inc, rh.verba_rotina rot
where inc.id = rot.id_verba
and codigo = 785
and rotina = 'FOL'
22 - corrigindo saldo negativo indevido
use governa
select *
--delete rh.financeiro_mensal_verba
From rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba_rotina rot,
rh.verba inc
where bse.id = vba.id_financeiro_mensal
and bse.mes_referencia = vba.mes_referencia
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and inc.codigo = 400
and bse.rotina = 'FOL'
and bse.matricula = 300131803--300139269--300103675
and bse.mes_referencia = 202305
--drop table #bruto
select sum(vba.valor) 'Bruto' into #bruto
From rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba_rotina rot,
rh.verba inc
where bse.id = vba.id_financeiro_mensal
and bse.mes_referencia = vba.mes_referencia
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and inc.codigo < 5000
and bse.rotina = 'FOL'
and bse.matricula = 300131803--300139269--300103675
and bse.mes_referencia = 202305
select *
From rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba_rotina rot,
rh.verba inc
where bse.id = vba.id_financeiro_mensal
and bse.mes_referencia = vba.mes_referencia
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and inc.codigo < 5000
and bse.rotina = 'FOL'
and bse.matricula = 300131803--300139269--300103675
and bse.mes_referencia = 202305
/*select * From #bruto
select * from #desconto*/
--drop table #desconto
select sum(vba.valor) 'Desconto' into #desconto
From rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba_rotina rot,
rh.verba inc
where bse.id = vba.id_financeiro_mensal
and bse.mes_referencia = vba.mes_referencia
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and inc.codigo >= 5000
and bse.rotina = 'FOL'
and bse.matricula = 300131803--300139269--300103675
and bse.mes_referencia = 202305
select salario_bruto_valor, desconto_total_valor
--update rh.financeiro_mensal set salario_bruto_valor = bruto, desconto_total_valor = desconto
From rh.financeiro_mensal bse, #bruto, #desconto
where bse.rotina = 'FOL'
and bse.matricula = 300131803--300139269--300103675
and bse.mes_referencia = 202305
select salarioBrutoValor, descontoTotalValor
--update financeiromensal set salarioBrutoValor = bruto, descontoTotalValor = desconto
From financeiromensal bse, #bruto, #desconto
where bse.rotina = 'FOL'
and bse.matricula = 300131803--300139269--300103675
and bse.mesreferencia = 202305
select *
--delete FinanceiroMensalVerba
from FinanceiroMensalVerba
where mesReferencia = 202305
and rotina = 'FOL'
and codigoVerba = 400
and matricula = 300131803--300139269--300103675
23 - Deletando Verbas Indevidas no Detran
use governa
declare
@mesref int = 202305
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis,
rh.lotacao_mensal lms,
rh.lotacao ltc
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and inc.codigo in (4150,4152,4154,4156,4157)
and mns.mes_referencia = @mesref
and bse.id_lotacao_mensal = lms.id
and lms.mes_referencia = mns.mes_referencia
and lms.id_lotacao = ltc.id
and ltc.codigo in (806)
24 - Deletar Auxilio Transporte de Federais
use governa
declare
@mesref int = 202305
drop table #federais
select srv.matricula into #federais
from rh.financeiro_mensal bse,
rh.servidor_mensal mns,
rh.cargo crg,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and bse.id_cargo = crg.id
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
and ((mns.id_classificacao_funcional in (17,21,25,26)) or (crg.codigo in (35346,35344)))
and mns.situacao in ('ATV', 'AFA')
select srv.matricula
--update rh.servidor_mensal set id_percurso = null
from rh.financeiro_mensal bse,
rh.servidor_mensal mns,
rh.cargo crg,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and bse.id_cargo = crg.id
and mns.mes_referencia = 202305
and bse.rotina = 'FOL'
and mns.id_percurso is not null
and ((mns.id_classificacao_funcional in (17,21,25,26)) or (crg.codigo in (35346,35344)))
and mns.situacao in ('ATV', 'AFA')
select srv.matricula, pes.nome
--delete rh.verba_periodica
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (575)
and srv.matricula in (select matricula from #federais)
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
select *
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = 202305
and srv.matricula in (select matricula from #federais)
and vba.codigo in (575)
and rot.rotina = 'FOL'
select srv.matricula
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = 202305
and vba.codigo in (2060,2260)
and srv.matricula in (select matricula from #federais)
and rot.rotina = 'FOL'
order by srv.matricula
select srv.matricula, pes.nome
--delete rh.verba_periodica
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060,2260)
and srv.matricula in (select matricula from #federais)
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
25 - Deletar férias de servidores afastados aguardando aposentadoria com data de pagamento maior igual ao mês corrente
use governa
declare
@mesref int = 202305
drop table #deletar
select srv.matricula, ltc.codigo, fer.id 'Id_Ferias', fer.inicio 'Aq_inicio', fer.fim 'Aq_Fim', goz.id 'Id_gozo',
goz.inicio 'Goz_Inicio', goz.fim 'Goz_fim', goz.data_pagamento, fer.tipo_ferias
into #deletar
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.servidor_ferias fer,
rh.servidor_ferias_gozo goz,
rh.servidor_afastamento afa
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and fer.id_servidor = srv.id
and fer.id = goz.id_servidor_ferias
and ltc.codigo in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814,815,816,817,818)
and goz.data_pagamento >= SUBSTRING(convert(char(6),@mesref), 1, 6) + '01'
and goz.data_pagamento < '5001-01-01'
and afa.id_servidor = srv.id
and afa.id_motivo_afastamento in (33,36)
and afa.fim >= getdate()
and mns.mes_referencia = @mesref
order by ltc.codigo
--select * from rh.motivo_afastamento
select *
--delete rh.servidor_ferias_gozo
from rh.servidor_ferias_gozo goz, #deletar del
where goz.id_servidor_ferias = del.Id_Ferias
select *
--delete rh.servidor_ferias
from rh.servidor_ferias fer, #deletar del
where fer.id = del.Id_Ferias
drop table #deletar_afastados
select srv.matricula, ltc.codigo, fer.id 'Id_Ferias', fer.inicio 'Aq_inicio', fer.fim 'Aq_Fim', goz.id 'Id_gozo',
goz.inicio 'Goz_Inicio', goz.fim 'Goz_fim', goz.data_pagamento, fer.tipo_ferias
into #deletar_afastados
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.servidor_ferias fer,
rh.servidor_ferias_gozo goz,
rh.servidor_afastamento afa
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and fer.id_servidor = srv.id
and fer.id = goz.id_servidor_ferias
and afa.id_servidor = srv.id
and afa.id_motivo_afastamento in (33,36)
and afa.fim >= getdate()
and goz.data_pagamento >= SUBSTRING(convert(char(6),@mesref), 1, 6) + '01'
and goz.data_pagamento < '5001-01-01'
and mns.mes_referencia = @mesref
and ltc.codigo not in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814,815,816,817,818)
order by ltc.codigo
select *
--delete rh.servidor_ferias_gozo
from rh.servidor_ferias_gozo goz, #deletar_afastados del
where goz.id_servidor_ferias = del.Id_Ferias
select *
--delete rh.servidor_ferias
from rh.servidor_ferias fer, #deletar_afastados del
where fer.id = del.Id_Ferias
26 - Deletar vale transporte para quem está afastado aguardando aposentadoria
use governa
declare
@mesref int = 202305
select srv.matricula, ltc.codigo
--update rh.servidor_mensal set id_percurso = null
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.servidor_afastamento afa
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and ltc.codigo not in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814,815,816,817,818,819,825)
and mns.id_percurso is not null
and afa.id_servidor = srv.id
and afa.id_motivo_afastamento = 33
and afa.fim >= getdate()
and mns.mes_referencia = 202305
--order by ltc.codigo
27 - Deletar verbas variáveis para quem está afastado aguardando aposentadoria
use governa
declare
@mesref int = 202305
select srv.matricula, ltc.codigo
--delete rh.verba_eventual
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.servidor_afastamento afa,
rh.verba_eventual eve,
rh.verba_rotina rot,
rh.verba inc
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and ltc.codigo not in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814,815,816,817,818)
and eve.id_servidor = srv.id
and eve.mes_referencia = mns.mes_referencia
and eve.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and inc.codigo in (363,364,692,575,704,714,565,990,2035,727,924,928)
and afa.id_servidor = srv.id
and afa.id_motivo_afastamento = 33
and afa.fim >= getdate()
and mns.mes_referencia = 202305
order by ltc.codigo
28 - Exclusão de conflito de verbas 709 com 363 303
use governa
declare
@mesref int = 202305
select *
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = @mesref
and vba.codigo in (709)
and rot.rotina = 'FOL'
and srv.matricula in (select srv.matricula
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (363,303)
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref)
select *
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = @mesref
and vba.codigo in (704)
and rot.rotina = 'FOL'
and srv.matricula in (select srv.matricula
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (1053)
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref)
select a.matricula,v.codigo,v.descricao, a.valor, a.quantidade
-- delete rh.verba_eventual
from rh.verba_eventual a,
rh.verba v,
rh.verba_rotina rot
where a.id_verba_rotina = rot.id
and rot.id_verba = v.id
and rot.rotina = 'FOL'
and a.mes_referencia = 202305
and v.codigo in (4992)
and a.matricula in (select a.matricula
from rh.verba_eventual a,
rh.verba v,
rh.verba_rotina rot
where a.id_verba_rotina = rot.id
and rot.id_verba = v.id
and rot.rotina = 'FOL'
and a.mes_referencia = 202305
and v.codigo in (4986))
29 - Lançando reposição de gae para servidores da saúde com faltas
use governa
declare
@mesref int = 202305
select *--srv.matricula, pes.nome,
--insert into rh.verba_eventual select next value for rh.s_verba_eventual,mns.mes_referencia, srv.id, 3788, 0.00, 1.00, 30, null, null, srv.matricula,null,null,null,null,null
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.verba_eventual var,
rh.cargo fun,
rh.cargo_mensal crm
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and mns.id_cargo = fun.id
and fun.id = crm.id_cargo
and vba.codigo in (727)
and crm.id_nivel_salarial in (select id from rh.nivel_salarial where nivel like 'Sau%')
and mns.id_servidor not in (select id_servidor from rh.verba_eventual eve where eve.id_servidor = mns.id_servidor and eve.mes_referencia = mns.mes_referencia and id_verba_rotina = 3788)
and ((vra.fim is null) or (vra.fim >= getdate()))
and var.mes_referencia = mns.mes_referencia
and crm.mes_referencia = mns.mes_referencia
and var.id_servidor = srv.id
and var.id_verba_rotina = 4187 --id verba 6001
and bse.rotina = rot.rotina
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
30 - REL. SERVIDORES FEDERAIS A DISPOSIÇÃO DO ESTADO COM INSS
use governa
---REL. SERVIDORES FEDERAIS A DISPOSIÇÃO DO ESTADO COM INSS..........
select fin.mes_referencia,lms.codigo,lms.descricao_reduzida_lotacao,srv.matricula,pes.nome,cf.descricao,vr.codigo,fver.valor,fin.salario_bruto_valor
from admin.pessoa_fisica fis,
admin.pessoa pes,
rh.financeiro_mensal fin,
rh.lotacao_mensal lms,
rh.lotacao ltc,
rh.servidor srv,
rh.servidor_mensal srm,
rh.nivel_salarial nvl,
rh.grau_salarial gra,
rh.financeiro_mensal_verba fver,
rh.verba vr,
rh.verba_rotina b,
rh.cargo crg,
rh.cargo_mensal cms,
rh.classificacao_funcional cf
where lms.id = fin.id_lotacao_mensal
and fin.mes_referencia = lms.mes_referencia
and lms.id_lotacao = ltc.id
and fin.mes_referencia = srm.mes_referencia
and srv.id = srm.id_servidor
and fis.id = pes.id
and pes.id = srv.id_pessoa
and srm.id = fin.id_servidor_mensal
and gra.id_nivel_salarial = nvl.id
and srm.id_grau_salarial =gra.id
and fin.mes_referencia = fver.mes_referencia
and lms.mes_referencia = fver.mes_referencia
and b.rotina = fin.rotina
and vr.id = b.id_verba
and b.id = fver.id_verba_rotina
and fin.id = fver.id_financeiro_mensal
and crg.id = cms.id_cargo
and cms.mes_referencia = srm.mes_referencia
and cms.id_cargo = srm.id_cargo
and cf.id = srm.id_classificacao_funcional
--and cms.id_nivel_salarial = nvl.id
and fin.mes_referencia = 202211
and fin.rotina = 'FOL'
---and ltc.codigo = 806
and cf.id in (21,17,18,19,20) --(federal a disposição do estado)
--and srv.matricula = 300151569
and vr.codigo in (6004)
order by lms.codigo,srv.matricula
--select * from rh.classificacao_funcional
31 - relação de quem tem a verba 727,1727 com a tabela da sesau 0020.0728182022-18
use governa
---relação de quem tem a verba 727,1727 com a tabela da sesau--( essas vebas foram incorporadas no vencimento)
select fin.mes_referencia,lms.codigo,lms.descricao_reduzida_lotacao,srv.matricula,pes.nome,srv.admissao,crg.descricao,gra.grau,vr.codigo,fis.cpf,
vr.descricao,fver.valor,clf.descricao,srm.situacao
--select *
from admin.pessoa_fisica fis,
admin.pessoa pes,
rh.financeiro_mensal fin,
rh.lotacao_mensal lms,
rh.lotacao ltc,
rh.servidor srv,
rh.servidor_mensal srm,
rh.nivel_salarial nvl,
rh.grau_salarial gra,
rh.financeiro_mensal_verba fver,
rh.verba vr,
rh.verba_rotina b,
rh.cargo crg,
rh.cargo_mensal cms,
rh.classificacao_funcional clf
where lms.id = fin.id_lotacao_mensal
and fin.mes_referencia = lms.mes_referencia
and lms.id_lotacao = ltc.id
and fin.mes_referencia = srm.mes_referencia
and srv.id = srm.id_servidor
and fis.id = pes.id
and pes.id = srv.id_pessoa
and srm.id = fin.id_servidor_mensal
and gra.id_nivel_salarial = nvl.id
and isnull(srm.id_grau_salarial,'9900') = gra.id
and fin.mes_referencia = fver.mes_referencia
and lms.mes_referencia = fver.mes_referencia
and b.rotina = fin.rotina
and vr.id = b.id_verba
and b.id = fver.id_verba_rotina
and fin.id = fver.id_financeiro_mensal
and crg.id = cms.id_cargo
and cms.mes_referencia = srm.mes_referencia
and cms.id_cargo = srm.id_cargo
and srm.id_classificacao_funcional = clf.id
and fin.mes_referencia = 202305
and fin.rotina = 'FOL'
and nvl.nivel in ('SABOL','SAU001','SAU002','SAU003','SAU004','SAU005','SAU006')
and vr.codigo in (727,1727)
order by lms.codigo
32 - Verifica Duplicidade de Auxilio Saúde
use governa
declare
@mesref int = 202305
--drop table #temp1
select srv.matricula, inc.codigo, fis.cpf
into #temp1
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 2060
select srv.matricula, inc.codigo, fis.cpf
into #temp3
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 2060
select srv.matricula, inc.codigo, fis.cpf
into #temp2
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 2260
select srv.matricula, inc.codigo, fis.cpf
into #temp4
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 2260
select srv.matricula, inc.codigo, fis.cpf
into #cedidos
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 4492
select srv.matricula, inc.codigo, fis.cpf
into #auxilio_sedec
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 2028
select tmp1.matricula into #temp5
from #temp1 tmp1,
#temp2 tmp2
where tmp1.cpf = tmp2.cpf
--verificando auxilio sesdec com auxilo normal em outra matricula
select tmp1.matricula into #temp_sedec
from #temp1 tmp1,
#auxilio_sedec sec
where tmp1.cpf = sec.cpf
and tmp1.matricula <> sec.matricula
select tmp2.matricula into #temp_sedec_2
from #temp2 tmp2,
#auxilio_sedec sec
where tmp2.cpf = sec.cpf
and tmp2.matricula <> sec.matricula
--verificando duplicidade na mesma matricula
select tmp1.matricula into #temp_duplicida_na_mesma_matricula
from #temp1 tmp1,
#temp2 tmp2
where tmp1.matricula = tmp2.matricula
insert into #temp5
select tmp1.matricula
from #temp1 tmp1,
#temp3 tmp3
where tmp1.cpf = tmp3.cpf
and tmp3.matricula <> tmp1.matricula
select tmp1.cpf, MAX(tmp1.matricula)'matricula' into #deletar
from #temp2 tmp1,
#temp4 tmp3
where tmp1.cpf = tmp3.cpf
and tmp3.matricula <> tmp1.matricula
group by tmp1.cpf
select srv.matricula, bse.salario_bruto_valor
into #temp6
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and bse.salario_bruto_valor in (50.000,150.000)
and mns.mes_referencia = @mesref
and inc.codigo = 2260
select srv.matricula , vba.codigo
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = 202305
and srv.matricula in (select matricula from #deletar)
and vba.codigo in (2260)
and rot.rotina = 'FOL'
select srv.matricula , vba.codigo
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = 202305
and srv.matricula in (select matricula from #temp_duplicida_na_mesma_matricula)
and vba.codigo in (2060)
and rot.rotina = 'FOL'
select srv.matricula , vba.codigo
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = 202305
and srv.matricula in (select matricula from #temp_sedec)
and vba.codigo in (2060)
and rot.rotina = 'FOL'
select srv.matricula , vba.codigo
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = 202305
and srv.matricula in (select matricula from #temp_sedec_2)
and vba.codigo in (2260)
and rot.rotina = 'FOL'
select srv.matricula, pes.nome , inicio
--delete rh.verba_periodica
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2260)
and srv.matricula in (select matricula from #deletar)
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
select srv.matricula, pes.nome , inicio
--delete rh.verba_periodica
--update rh.verba_periodica set fim = '20230430'
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060)
and srv.matricula in (select matricula from #temp_duplicida_na_mesma_matricula)
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
select srv.matricula, pes.nome , inicio
--delete rh.verba_periodica
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060)
and srv.matricula in (select matricula from #temp_sedec)
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
select srv.matricula, pes.nome , inicio
--delete rh.verba_periodica
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2260)
and srv.matricula in (select matricula from #temp_sedec_2)
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
select srv.matricula
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = 202305
and srv.matricula in (select matricula from #temp5)
and vba.codigo in (2060,2061)
and rot.rotina = 'FOL'
--cedido com auxilio de cedidos
select srv.matricula
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = 202305
and srv.matricula in (select matricula from #cedidos)
and vba.codigo in (2060,2061,2260)
and rot.rotina = 'FOL'
--cedido com auxilio de cedidos
select srv.matricula, pes.nome
--delete rh.verba_periodica
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060,2061,2260)
and srv.matricula in (select matricula from #cedidos)
and vra.inicio = left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
--cedido com auxilio de sedec
select srv.matricula
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = 202305
and srv.matricula in (select matricula from #auxilio_sedec)
and vba.codigo in (2060,2061,2260)
and rot.rotina = 'FOL'
--cedido com auxilio de cedidos
select srv.matricula, pes.nome
--delete rh.verba_periodica
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060,2061,2260)
and srv.matricula in (select matricula from #auxilio_sedec)
and vra.inicio = left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
select srv.matricula, pes.nome
--delete rh.verba_periodica
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060)
and srv.matricula in (select matricula from #temp5)
and vra.inicio = left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
select bse.matricula, pes.nome, vra.inicio, vra.fim
--update rh.verba_periodica set fim = '2021-12-30'
--update TbRhVbaFix set fim = dateadd(day,-1,(dateadd(month,1,convert(char(08),dateadd(mm,-1,convert(varchar(10),(@mesref*100)+1)),126)+'01')))
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060)
and srv.matricula in (select matricula from #temp5)
and vra.inicio <> left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and bse.rotina = rot.rotina
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
select *
--delete rh.verba_eventual
from rh.verba vba, rh.verba_rotina rot, rh.verba_eventual vra, rh.servidor srv
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and mes_referencia = 202305
and srv.matricula in (select matricula from #temp6)
and vba.codigo in (2260,2060)
and rot.rotina = 'FOL'
select srv.matricula, pes.nome
--update rh.verba_periodica set fim = '2021-12-30'
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060,2260)
and srv.matricula in (select matricula from #temp6)
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
/*
drop table #temp1
drop table #temp2
drop table #temp3
drop table #temp4
drop table #temp5
drop table #temp6
drop table #deletar
drop table #cedidos
drop table #temp_sedec
drop table #temp_sedec_2
drop table #auxilio_sedec
drop table #deletar
drop table #temp_duplicida_na_mesma_matricula
*/
33 - Verifica GAD Valores Errados
use governa
declare
@mesref int = 202305
select srv.matricula, pes.nome , vba.codigo, vra.valor
--delete rh.verba_eventual
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_eventual vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.cargo fun,
rh.cargo_mensal crm
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and vra.mes_referencia = mns.mes_referencia
and mns.mes_referencia = crm.mes_referencia
and pes.id = srv.id_pessoa
and rot.rotina = 'FOL'
and mns.id_cargo = crm.id_cargo
and crm.id_cargo = fun.id
and vba.codigo in (752)
and fun.codigo in (612,641)
and vra.valor > 2922.52
and vra.mes_referencia = 202305
select srv.matricula, pes.nome , vra.valor
--update rh.verba_eventual set valor = 1380.24
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_eventual vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.cargo fun,
rh.cargo_mensal crm
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and vra.mes_referencia = mns.mes_referencia
and mns.mes_referencia = crm.mes_referencia
and pes.id = srv.id_pessoa
and rot.rotina = 'FOL'
and mns.id_cargo = crm.id_cargo
and crm.id_cargo = fun.id
and vba.codigo in (752)
and fun.codigo in (642)
and vra.valor > 1461.26
and vra.mes_referencia = 202305
34 - Verifica Piso do Magistério em Cargos não Professores Exclui a Verba
use governa
declare
@mesref int = 202305
select srv.matricula, pes.nome
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.cargo fun,
rh.cargo_mensal crm
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and mns.id_cargo = fun.id
and mns.mes_referencia = crm.mes_referencia
and fun.id = crm.id_cargo
and vba.codigo in (57,58,390,392,394,395,396,397,398,579)
and vra.inicio = left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and mns.id not in (select mn1.id from rh.servidor_local srl, rh.local_trabalho lcl, rh.lotacao ltc, rh.servidor_mensal mn1
where srl.id_local_trabalho = lcl.id and lcl.id_lotacao = ltc.id and srl.id_servidor_mensal = mn1.id and mn1.mes_referencia = mns.mes_referencia and ltc.codigo in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814))
and ((vra.fim is null) or (vra.fim >= getdate()))
and fun.codigo not in (533,534,535,536,537,538,547,548,549,550,551,552,9532,9533,9633,30179)
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref
35 - Verifica Piso do Magistério em Cargos não Professores Fecha a Verba
use governa
declare
@mesref int = 202305
select srv.matricula, pes.nome, vra.inicio, vra.fim
--update rh.verba_periodica set fim = '20191230'
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.cargo fun,
rh.cargo_mensal crm
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and mns.id_cargo = fun.id
and mns.mes_referencia = crm.mes_referencia
and fun.id = crm.id_cargo
and vba.codigo in (57,58,390,392,394,395,396,397,398,579)
and vra.inicio <> left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and mns.id not in (select mn1.id from rh.servidor_local srl, rh.local_trabalho lcl, rh.lotacao ltc, rh.servidor_mensal mn1
where srl.id_local_trabalho = lcl.id and lcl.id_lotacao = ltc.id and srl.id_servidor_mensal = mn1.id and mn1.mes_referencia = mns.mes_referencia and ltc.codigo in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814))
and ((vra.fim is null) or (vra.fim >= getdate()))
and fun.codigo not in (533,534,535,536,537,538,547,548,549,550,551,552,9532,9533,9633,30179)
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref
36 - Verifica Plantões Errados da SESAU
use governa
declare
@mesref int = 202305
--select inc.codigo, rot.id from rh.verba inc, rh.verba_rotina rot where inc.id = rot.id_verba and inc.codigo = 4140 and rotina = 'FOL'
select srv.matricula, *
--update rh.verba_eventual set id_verba_rotina = 3426 --verba 4140
from rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.cargo crg,
rh.cargo_mensal cms,
rh.nivel_salarial niv,
rh.verba_eventual eve,
rh.verba inc,
rh.verba_rotina rot
where srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and crg.id = mns.id_cargo
and crg.id = cms.id_cargo
and cms.id_nivel_salarial = niv.id
and eve.id_servidor = mns.id_servidor
and eve.id_verba_rotina = rot.id
and mns.mes_referencia = eve.mes_referencia
and cms.mes_referencia = mns.mes_referencia
and bse.rotina ='FOL'
and mns.mes_referencia = 202305
and inc.codigo in (4141,4142,4128)
and niv.nivel in ('SAU001')
and crg.codigo not in (35365)
--select inc.codigo, rot.id from rh.verba inc, rh.verba_rotina rot where inc.id = rot.id_verba and inc.codigo = 4141 and rotina = 'FOL'
select srv.matricula, *
--update rh.verba_eventual set id_verba_rotina = 3430 --verba 4141
from rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.cargo crg,
rh.cargo_mensal cms,
rh.nivel_salarial niv,
rh.verba_eventual eve,
rh.verba inc,
rh.verba_rotina rot
where srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and crg.id = mns.id_cargo
and crg.id = cms.id_cargo
and cms.id_nivel_salarial = niv.id
and eve.id_servidor = mns.id_servidor
and eve.id_verba_rotina = rot.id
and mns.mes_referencia = eve.mes_referencia
and cms.mes_referencia = mns.mes_referencia
and bse.rotina ='FOL'
and mns.mes_referencia = 202305
and inc.codigo in (4140,4142,4128)
and niv.nivel in ('SAU002')
and crg.codigo not in (35365)
-- select inc.codigo, rot.id from rh.verba inc, rh.verba_rotina rot where inc.id = rot.id_verba and inc.codigo = 4142 and rotina = 'FOL'
select srv.matricula, *
--update rh.verba_eventual set id_verba_rotina = 3434 --verba 4142
from rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.cargo crg,
rh.cargo_mensal cms,
rh.nivel_salarial niv,
rh.verba_eventual eve,
rh.verba inc,
rh.verba_rotina rot
where srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and crg.id = mns.id_cargo
and crg.id = cms.id_cargo
and cms.id_nivel_salarial = niv.id
and eve.id_servidor = mns.id_servidor
and eve.id_verba_rotina = rot.id
and mns.mes_referencia = eve.mes_referencia
and cms.mes_referencia = mns.mes_referencia
and bse.rotina ='FOL'
and mns.mes_referencia = 202305
and inc.codigo in (4140,4141,4128)
and niv.nivel in ('SAU003')
and crg.codigo not in (35365)
-- select inc.codigo, rot.id from rh.verba inc, rh.verba_rotina rot where inc.id = rot.id_verba and inc.codigo = 4128 and rotina = 'FOL'
select srv.matricula, *
--update rh.verba_eventual set id_verba_rotina = 3407 --verba 4128
from rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.cargo crg,
rh.cargo_mensal cms,
rh.nivel_salarial niv,
rh.verba_eventual eve,
rh.verba inc,
rh.verba_rotina rot
where srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and crg.id = mns.id_cargo
and crg.id = cms.id_cargo
and cms.id_nivel_salarial = niv.id
and eve.id_servidor = mns.id_servidor
and eve.id_verba_rotina = rot.id
and mns.mes_referencia = eve.mes_referencia
and cms.mes_referencia = mns.mes_referencia
and bse.rotina ='FOL'
and mns.mes_referencia = 202305
and inc.codigo in (4140,4141,4142)
and niv.nivel in ('MEDI20', 'MEDI40','MEDICO')
and crg.codigo not in (35365)
select srv.matricula, *
--delete rh.verba_eventual
from rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.cargo crg,
rh.cargo_mensal cms,
rh.nivel_salarial niv,
rh.verba_eventual eve,
rh.verba inc,
rh.verba_rotina rot
where srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and crg.id = mns.id_cargo
and crg.id = cms.id_cargo
and cms.id_nivel_salarial = niv.id
and eve.id_servidor = mns.id_servidor
and eve.id_verba_rotina = rot.id
and mns.mes_referencia = eve.mes_referencia
and cms.mes_referencia = mns.mes_referencia
and bse.rotina ='FOL'
and mns.mes_referencia = 202305
and inc.codigo in (4140,4141,4142,4128,4130)
and niv.nivel not in ('SAU001','SAU002','SAU003','MEDI20', 'MEDI40','MEDICO','BUCO')
and crg.codigo not in (35365,35345)
37 - Verifica Servidores não Iperon com Afastamento Iperon
use governa
declare
@mesref int = 202305
select srv.matricula,cla.descricao, mot.descricao
from rh.financeiro_mensal bse,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
rh.param_previdencia par,
rh.servidor_afastamento afa,
rh.motivo_afastamento mot,
rh.classificacao_funcional cla
where rot.id_verba = inc.id
and rot.rotina = 'FOL'
and inc.codigo in (85,86)
and afa.id_servidor = srv.id
and afa.fim >= SUBSTRING(convert(char(6),@mesref), 1, 6) + '01'
and afa.id_verba_rotina = rot.id
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and mns.mes_referencia = @mesref
and mns.mes_referencia = par.mes_referencia
and mns.id_vinculo_empregaticio = par.id_vinculo_empregaticio
and mns.id_classificacao_funcional = par.id_classificacao_funcional
and par.id_orgao_previdenciario <> 1
and afa.id_motivo_afastamento = mot.id
and bse.id_classificacao_funcional = cla.id
38 - verificando averbação suspensa com desconto
use governa
declare
@mesref int = 202305
select * from rh.averbacao
where situacao in ('QUI','SUS')
and id in (select isnull(id_averbacao,0) from rh.ANALISE_CRITICA_DETALHE where mes_referencia = @mesref)
select srv.matricula, avb.id_verba, inc.codigo
from rh.averbacao avb, rh.servidor srv, rh.verba inc
where situacao in ('QUI','SUS')
and avb.id_servidor = srv.id
and avb.id_verba = inc.id
and avb.id_verba in (select verbaId from FinanceiroMensalVerba vba where mesReferencia = @mesref and vba.matricula = srv.matricula and rotina = 'FOL')
and id_verba in (select rot.id_verba from rh.verba_eventual eve, rh.verba_rotina rot
where mes_referencia = @mesref
and eve.id_verba_rotina = rot.id
and eve.id_servidor = avb.id_servidor
and rot.rotina = 'FOL')
--suspensa com desconto
select vba.matricula, vba.codigoVerba, inc.descricao, vba.verbaValor
--delete rh.ANALISE_CRITICA_DETALHE
from rh.ANALISE_CRITICA_DETALHE ana, rh.verba_eventual eve, rh.verba inc, rh.verba_rotina rot, financeiromensalverba vba
where ana.mes_referencia = 202305
and ana.id_verba_eventual = eve.id
and ana.mes_referencia = eve.mes_referencia
and rot.id = eve.id_verba_rotina
and rot.id_verba = inc.id
and inc.id = vba.verbaid
and ana.mes_referencia = vba.mesreferencia
and eve.matricula = vba.matricula
and rot.rotina = 'FOL'
select mns.matricula, mns.situacao, eve.*, inc.codigo , mns.id_servidor
from rh.verba_eventual eve, rh.verba inc, rh.verba_rotina rot, rh.servidor_mensal mns
where eve.mes_referencia = @mesref
and eve.id_verba_rotina = rot.id
and inc.id = rot.id_verba
and rot.rotina = 'FOL'
and inc.codigo in (5149,7345,7311,7343,7230,5387)
and eve.mes_referencia = mns.mes_referencia
and eve.matricula = mns.matricula
and eve.matricula in (select matricula from FinanceiroMensal bse where bse.mesReferencia = mns.mes_referencia and bse.matricula = mns.matricula and isnull(bse.pensionistaVitalicioId,0) = ISNULL(eve.id_pensionista_vitalicio,0) and rotina = 'FOL')
and eve.matricula not in (select vba.matricula from FinanceiroMensalVerba vba where inc.codigo = vba.codigoVerba and vba.matricula = eve.matricula and vba.mesReferencia = eve.mes_referencia and rotina = 'FOL')
and eve.id not in (select isnull(id_verba_eventual,0) from rh.ANALISE_CRITICA_DETALHE ana where ana.mes_referencia = eve.mes_referencia)
--verificando desconto de verba de cartao
select *
from rh.param_verba_consignacao csg,rh.verba_eventual eve, rh.verba inc, rh.verba_rotina rot, financeiromensalverba vba
where eve.mes_referencia = 202305
and rot.id = eve.id_verba_rotina
and rot.id_verba = inc.id
and inc.id = vba.verbaid
and eve.mes_referencia = vba.mesreferencia
and eve.matricula = vba.matricula
and inc.id = csg.id_verba
and csg.compulsorio = 0
and rot.rotina = 'FOL'
39 - Verificando Cedido sem CDSFG
USE [Governa]
GO
/****** Object: StoredProcedure [dbo].[pcdcst14] Script Date: 08/11/2018 20:09:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
--ALTER Procedure [dbo].[pcdcst14]
declare
@Mesref int = 202305
--As
drop table #cds
select srv.matricula, CPF into #cds
from rh.verba_periodica vfx,
rh.servidor srv,
rh.servidor_mensal mns,
dbtemps.dbo.verbascds cds,
rh.cargo fun,
rh.cargo_mensal crm,
rh.verba inc,
admin.pessoa_fisica fis
where vfx.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id_cargo = fun.id
and fun.id = crm.id_cargo
and mns.mes_referencia = crm.mes_referencia
and crm.id_nivel_salarial not in (select id from rh.nivel_salarial where nivel like 'Sau%')
and ((vfx.fim is null) or (vfx.fim >= getdate()))
and mns.situacao in ('ATV', 'AFA')
and cds.codigo = inc.codigo
and srv.id_pessoa = fis.id
and vfx.id_verba = inc.id
and mns.mes_referencia = @Mesref
select srv.matricula, pes.nome , vba.codigo
--delete rh.verba_eventual
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_eventual vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and vra.mes_referencia = mns.mes_referencia
and pes.id = srv.id_pessoa
and bse.rotina = rot.rotina
and rot.rotina = 'FOL'
and vba.codigo in (2060,2260)
and mns.id_classificacao_funcional not in (4,2,1,65,5,14,76,83,84,94)
and srv.matricula not in (select matricula from #cds)
and srv.matricula not in (select srv.matricula from rh.verba_periodica per, rh.verba inc, rh.servidor srv where fim is null and per.id_verba = inc.id and per.id_servidor = srv.id and inc.codigo in (select codigo from dbtemps.dbo.verbasfgecds))
and vra.mes_referencia = 202305
order by 3
--select * from rh.classificacao_funcional
select srv.matricula, pes.nome , vra.inicio
--update rh.verba_periodica set fim = '2023-04-30'
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060,2260)
and mns.id_classificacao_funcional not in (4,2,1,65,5,14,76,83,84,94)
and srv.matricula not in (select matricula from #cds)
and srv.matricula not in (select srv.matricula from rh.verba_periodica per, rh.verba inc, rh.servidor srv where fim is null and per.id_verba = inc.id and per.id_servidor = srv.id and inc.codigo in (select codigo from dbtemps.dbo.verbasfgecds))
and vra.inicio <> left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = 202305
select srv.matricula, pes.nome , inicio
--delete rh.verba_periodica
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060,2260)
and mns.id_classificacao_funcional not in (4,2,1,65,5,14,76,83,84,94)
and srv.matricula not in (select matricula from #cds)
and srv.matricula not in (select srv.matricula from rh.verba_periodica per, rh.verba inc, rh.servidor srv where fim is null and per.id_verba = inc.id and per.id_servidor = srv.id and inc.codigo in (select codigo from dbtemps.dbo.verbasfgecds))
and vra.inicio = left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and mns.mes_referencia = 202305
and rot.rotina = 'FOL'
--drop table #cds
40 - verificando diferença de consignação
use governa
--executar antes da análise
declare
@mesref int = 202104
drop table #financeiro_csg
select srv.matricula, inc.codigo, sum(avb.valor) 'valor', avb.id into #financeiro_csg
from rh.financeiro_mensal_averbacao avb,
rh.financeiro_mensal bse,
rh.averbacao aver,
rh.verba inc,
rh.servidor_mensal mns,
rh.servidor srv,
rh.lotacao ltc,
rh.lotacao_mensal lms
where avb.id_financeiro_mensal = bse.id
and avb.id_averbacao = aver.id
and aver.id_verba = inc.id
and bse.id_servidor_mensal = mns.id
and bse.mes_referencia = mns.mes_referencia
and mns.mes_referencia = avb.mes_referencia
and aver.id_servidor = srv.id
and ltc.id = lms.id_lotacao
and lms.mes_referencia = mns.mes_referencia
and lms.id = bse.id_lotacao_mensal
and mns.mes_referencia = @mesref
and bse.rotina = 'FOL'
group by srv.matricula, inc.codigo,avb.id
drop table ##ver
select srv.matricula, inc.codigo, SUM(vba.valor) 'valor_folha' into ##ver
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.id in (select id_verba from rh.param_verba_consignacao where compulsorio = 0)
group by srv.matricula, inc.codigo
select * from #financeiro_csg csg, ##ver ver
where csg.matricula = ver.matricula
and csg.codigo = ver.codigo
and csg.valor <> ver.valor_folha
and csg.valor - ver.valor_folha > 0.01
select * from #financeiro_csg csg left join ##ver ver
on csg.matricula = ver.matricula
and csg.codigo = ver.codigo
where ver.matricula is null
41 - verificando diferenca entra verba 2051 e 2043
use governa
declare
@mesref int = 202305
select vb1.matricula, vb1.codigoVerba, vb1.verbaValor, vb2.codigoVerba, vb2.verbaValor, vb1.verbaValor-vb2.verbaValor, vb2.verbaId, eve.quantidade,eve.valor
--update rh.verba_eventual set valor = vb1.verbavalor
from FinanceiroMensalVerba vb1, FinanceiroMensalVerba vb2, rh.verba_eventual eve, FinanceiroMensal bse
where vb1.matricula = vb2.matricula
and vb1.mesReferencia = vb2.mesReferencia
and vb1.mesReferencia = 202304
and vb1.codigoVerba = 2051
and vb2.codigoVerba = 2043
and vb1.verbaValor <> vb2.verbaValor
and vb2.verbaValor-vb1.verbaValor >= 0.01
and eve.id_verba_rotina = 6657
and vb2.idFinanceiroMensal = bse.financeiroMensalId
and eve.id_servidor = bse.servidorId
and eve.mes_referencia = vb2.mesReferencia
and eve.quantidade = 1.00
and eve.valor = 0
order by eve.valor
select vb1.matricula, vb1.codigoVerba, vb1.verbaValor, vb2.codigoVerba, vb2.verbaValor, vb1.verbaValor-vb2.verbaValor, vb2.verbaId, eve.quantidade,eve.valor
from FinanceiroMensalVerba vb1, FinanceiroMensalVerba vb2, rh.verba_eventual eve, FinanceiroMensal bse
where vb1.matricula = vb2.matricula
and vb1.mesReferencia = vb2.mesReferencia
and vb1.mesReferencia = @mesref
and vb1.codigoVerba = 2051
and vb2.codigoVerba = 2043
and vb1.verbaValor <> vb2.verbaValor
and vb2.verbaValor-vb1.verbaValor >= 0.01
and eve.id_verba_rotina = 6657
and vb2.idFinanceiroMensal = bse.financeiroMensalId
and eve.id_servidor = bse.servidorId
and eve.mes_referencia = vb2.mesReferencia
and eve.quantidade = 1.00
and eve.valor <> 0
and eve.valor <> vb1.verbaValor
order by eve.valor
42 - verificando duplicidade de auxilio covid
use governa
--drop table #quantidade
declare
@mesref int = 202305
select bse.servidorCPF, count(bse.matricula) 'Qde' into #quantidade
from FinanceiroMensal bse, FinanceiroMensalVerba vba
where bse.matricula = vba.matricula
and isnull(vba.idPensionistaVitalicio,0) = isnull(bse.pensionistaVitalicioId,0)
and bse.mesReferencia = vba.mesReferencia
and bse.rotina = vba.rotina
and bse.mesReferencia = @mesref
and vba.codigoVerba = 4992
group by bse.servidorCPF
having count(bse.matricula) >= 2
--drop table #retirar
select bse.servidorCPF, max(bse.matricula) 'Maior_Matricula' into #retirar
From #quantidade qde,
FinanceiroMensal bse,
FinanceiroMensalVerba vba
where qde.servidorCPF = bse.servidorCPF
and bse.matricula = vba.matricula
and bse.rotina = vba.rotina
and bse.mesReferencia = vba.mesReferencia
and vba.codigoVerba = 4992
and bse.mesReferencia = @mesref
and bse.rotina = 'FOL'
group by bse.servidorCPF
select *
--delete rh.verba_eventual
from #retirar ret, rh.verba_eventual eve
where ret.Maior_Matricula = eve.matricula
and eve.mes_referencia = 202305
and eve.id_verba_rotina = 7418
--retirar mes anterior
--drop table #quantidade_mes_anterior
select bse.servidorCPF, count(bse.matricula) 'Qde' into #quantidade_mes_anterior
from FinanceiroMensal bse, FinanceiroMensalVerba vba
where bse.matricula = vba.matricula
and isnull(vba.idPensionistaVitalicio,0) = isnull(bse.pensionistaVitalicioId,0)
and bse.mesReferencia = vba.mesReferencia
and bse.rotina = vba.rotina
and bse.mesReferencia = 202305
and vba.codigoVerba = 4993
and bse.rotina = 'FOL'
group by bse.servidorCPF
having count(bse.matricula) >= 2
--drop table #retirar_mes_anterior
select bse.servidorCPF, max(bse.matricula) 'Maior_Matricula' into #retirar_mes_anterior
From #quantidade_mes_anterior qde,
FinanceiroMensal bse,
FinanceiroMensalVerba vba
where qde.servidorCPF = bse.servidorCPF
and bse.matricula = vba.matricula
and bse.rotina = vba.rotina
and bse.mesReferencia = vba.mesReferencia
and vba.codigoVerba = 4993
and bse.mesReferencia = 202305
and bse.rotina = 'FOL'
group by bse.servidorCPF
select *
--delete rh.verba_eventual
from #retirar_mes_anterior ret, rh.verba_eventual eve
where ret.Maior_Matricula = eve.matricula
and eve.mes_referencia = 202305
and eve.id_verba_rotina = 7444
43 - verificando inativos com afastamento
use governa
declare
@mesref int = 202305
select srv.matricula, afa.inicio, afa.fim
--update rh.servidor_afastamento set fim = '20230430'
--delete rh.servidor_afastamento
from rh.servidor_afastamento afa,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
rh.lotacao ltc,
rh.lotacao_mensal lms,
rh.motivo_afastamento mot
where afa.id_servidor = srv.id
and srv.id = mns.id_servidor
and bse.id_servidor_mensal = mns.id
and bse.mes_referencia = mns.mes_referencia
and bse.id_lotacao_mensal = lms.id
and lms.id_lotacao = ltc.id
and lms.mes_referencia = mns.mes_referencia
and afa.id_motivo_afastamento = mot.id
and bse.mes_referencia = 202305
and afa.inicio < SUBSTRING(convert(char(6),202305), 1, 6) + '01'
and afa.fim > = getdate()
and afa.id_motivo_afastamento not in (15)
and ltc.codigo in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814,815,816,817,818,819,825)
order by afa.inicio
select srv.matricula--distinct mot.id, mot.descricao, ltc.codigo, lms.descricao_reduzida_lotacao
--delete rh.servidor_afastamento
from rh.servidor_afastamento afa,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
rh.lotacao ltc,
rh.lotacao_mensal lms,
rh.motivo_afastamento mot
where afa.id_servidor = srv.id
and srv.id = mns.id_servidor
and bse.id_servidor_mensal = mns.id
and bse.mes_referencia = mns.mes_referencia
and bse.id_lotacao_mensal = lms.id
and lms.id_lotacao = ltc.id
and lms.mes_referencia = mns.mes_referencia
and afa.id_motivo_afastamento = mot.id
and bse.mes_referencia = 202305
and afa.inicio >= SUBSTRING(convert(char(6),202305), 1, 6) + '01'
and afa.fim > = getdate()
and afa.id_motivo_afastamento not in (15)
and ltc.codigo in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814,815,816,817,818,819,825)
44 - verificando inativos com auxilio saúde
use governa
declare
@mesref int = 202305
select srv.matricula, ltc.codigo, inc.codigo, evt.valor
--delete rh.verba_eventual
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_eventual evt,
rh.verba_rotina vms,
rh.verba inc
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba_rotina = vms.id
and vms.id_verba = inc.id
and evt.mes_referencia = mns.mes_referencia
and inc.codigo in (2260,2060,2061)
and vms.rotina = 'FOL'
and ltc.codigo in (270,271,290,800,801,802,803,790,791,792,793,809,810,811,812,813,814,815,816,817,818,819,825)
and mns.mes_referencia = 202305
order by ltc.codigo
select srv.matricula, ltc.codigo, inc.codigo, evt.valor , evt.inicio
--delete rh.verba_periodica
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_periodica evt,
rh.verba_rotina vms,
rh.verba inc
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba = inc.id
and vms.id_verba = inc.id
and inc.codigo in (2260,2060,2061)
and vms.rotina = 'FOL'
and ltc.codigo in (270,271,290,800,801,802,803,790,791,792,793,809,810,811,812,813,814,815,816,817,818,819,825)
and mns.mes_referencia = 202305
and ((evt.fim is null) or (evt.fim >= getdate()))
and evt.inicio >= SUBSTRING(convert(char(6),202305), 1, 6) + '01'
order by ltc.codigo
select srv.matricula, ltc.codigo, inc.codigo, evt.valor , evt.inicio
--update rh.verba_periodica set fim = '20230431'
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_periodica evt,
rh.verba_rotina vms,
rh.verba inc
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba = inc.id
and vms.id_verba = inc.id
and inc.codigo in (2260,2060,2061)
and vms.rotina = 'FOL'
and ltc.codigo in (270,271,290,800,801,802,803,790,791,792,793,809,810,811,812,813,814,815,816,817,818,819,825)
and mns.mes_referencia = 202305
and ((evt.fim is null) or (evt.fim >= getdate()))
and evt.inicio < SUBSTRING(convert(char(6),202305), 1, 6) + '01'
order by ltc.codigo
select srv.matricula, ltc.codigo, inc.codigo, evt.valor
--delete rh.verba_eventual
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_eventual evt,
rh.verba_rotina vms,
rh.verba inc
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba_rotina = vms.id
and vms.id_verba = inc.id
and evt.mes_referencia = mns.mes_referencia
and inc.codigo in (2260,2060,2061)
and vms.rotina = 'FOL'
and mns.id_classificacao_funcional in (select clffnc from dbflh.dbo.TbClfAuxSau)
and mns.mes_referencia = 202305
order by ltc.codigo
select srv.matricula, ltc.codigo, inc.codigo, evt.valor
--delete rh.verba_periodica
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_periodica evt,
rh.verba_rotina vms,
rh.verba inc
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba = inc.id
and vms.id_verba = inc.id
and inc.codigo in (2260,2060,2061)
and vms.rotina = 'FOL'
and mns.id_classificacao_funcional in (select clffnc from dbflh.dbo.TbClfAuxSau)
and mns.mes_referencia = 202305
and ((evt.fim is null) or (evt.fim >= getdate()))
order by ltc.codigo
select srv.matricula, ltc.codigo, inc.codigo, evt.valor
--delete rh.verba_eventual
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_eventual evt,
rh.verba_rotina vms,
rh.verba inc
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba_rotina = vms.id
and vms.id_verba = inc.id
and evt.mes_referencia = mns.mes_referencia
and inc.codigo in (2260,2060,2061)
and vms.rotina = 'FOL'
and mns.id_cargo = 3341
and mns.mes_referencia = 202305
order by ltc.codigo
select srv.matricula, ltc.codigo, inc.codigo, evt.valor
--delete rh.verba_periodica
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_periodica evt,
rh.verba_rotina vms,
rh.verba inc
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba = inc.id
and vms.id_verba = inc.id
and inc.codigo in (2260,2060,2061)
and vms.rotina = 'FOL'
and mns.id_cargo = 3341
and mns.mes_referencia = 202305
and ((evt.fim is null) or (evt.fim >= getdate()))
order by ltc.codigo
45 - verificando inativos com férias
use governa
declare
@mesref int = 202305
drop table #deletar
select srv.matricula, ltc.codigo, fer.id 'Id_Ferias', fer.inicio 'Aq_inicio', fer.fim 'Aq_Fim', goz.id 'Id_gozo',
goz.inicio 'Goz_Inicio', goz.fim 'Goz_fim', goz.data_pagamento, fer.tipo_ferias
into #deletar
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.servidor_ferias fer,
rh.servidor_ferias_gozo goz
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and fer.id_servidor = srv.id
and fer.id = goz.id_servidor_ferias
and ltc.codigo in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814,815,816,817,818,819,825)
and goz.data_pagamento >= SUBSTRING(convert(char(6),@mesref), 1, 6) + '01'
and goz.data_pagamento < '5001-01-01'
and mns.mes_referencia = @mesref
order by ltc.codigo
select *
--delete rh.servidor_ferias_gozo
from rh.servidor_ferias_gozo goz, #deletar del
where goz.id_servidor_ferias = del.Id_Ferias
select *
--delete rh.servidor_ferias
from rh.servidor_ferias fer, #deletar del
where fer.id = del.Id_Ferias
46 - verificando lançamento de verba de consignação na verba eventual
use governa
declare
@mesref int = 202305
select distinct inc.codigo, inc.descricao
from rh.verba_eventual eve, rh.verba_rotina rot, rh.verba inc
where mes_referencia = @mesref
and eve.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.id_verba in (select id_verba from rh.param_verba_consignacao where compulsorio = 0 and id_tipo_facultativo not in (7))
47 - verificando licença premio com data de pagamento
use governa
declare
@mesref int = 202305
select *
--update rh.servidor_ferias_gozo set data_pagamento = null
from rh.servidor_ferias fer, rh.servidor_ferias_gozo goz
where fer.id = goz.id_servidor_ferias
and fer.tipo_ferias = 'PRE'
and data_pagamento is not null
and data_pagamento >= SUBSTRING(convert(char(6),@mesref), 1, 6) + '01'
48 - verificando PM e BM em classificação errada
use governa
declare
@mesref int = 202305
select matricula, lotacaoCodigo, classificacaoFuncionalId, classificacao_funcional,lotacaoMensalDescricao
from FinanceiroMensal
where mesReferencia = @mesref
and nivelSalarial in ('PM','BM')
and grauSalarial <> '9900'
and classificacaoFuncionalId not in (56,11,85,84,87,86,104,105,106,107,108,109,110,111,112)
49 - Verificando quem tem somente auxilio transporte, auxilio saúde, complemento salario mínimo e outros
use governa
declare
@mesref int = 202305
drop table #vba_51_53
drop table #vba_2060_2260
drop table #vba_575_588
drop table #brutosomaverbas
drop table #vba_4992
select srv.matricula into #vba_51_53
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.servidor srv,
rh.servidor_mensal mns,
rh.verba inc,
rh.verba_rotina rot
where bse.id = vba.id_financeiro_mensal
and bse.id_servidor_mensal = mns.id
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and mns.id_servidor = srv.id
and mns.mes_referencia = @mesref
and inc.codigo in (51,53)
and bse.rotina = 'FOL'
and bse.salario_bruto_valor = vba.valor
select srv.matricula into #vba_2060_2260
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.servidor srv,
rh.servidor_mensal mns,
rh.verba inc,
rh.verba_rotina rot
where bse.id = vba.id_financeiro_mensal
and bse.id_servidor_mensal = mns.id
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and mns.id_servidor = srv.id
and mns.mes_referencia = @mesref
and inc.codigo in (2060,2260)
and bse.rotina = 'FOL'
and bse.salario_bruto_valor = vba.valor
select srv.matricula into #vba_575_588
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.servidor srv,
rh.servidor_mensal mns,
rh.verba inc,
rh.verba_rotina rot
where bse.id = vba.id_financeiro_mensal
and bse.id_servidor_mensal = mns.id
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and mns.id_servidor = srv.id
and mns.mes_referencia = 202305
and inc.codigo in (575,588,1575,3575,4912)
and bse.rotina = 'FOL'
and bse.salario_bruto_valor = vba.valor
select srv.matricula into #vba_4992
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.servidor srv,
rh.servidor_mensal mns,
rh.verba inc,
rh.verba_rotina rot
where bse.id = vba.id_financeiro_mensal
and bse.id_servidor_mensal = mns.id
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and mns.id_servidor = srv.id
and mns.mes_referencia = @mesref
and inc.codigo in (4992)
and bse.rotina = 'FOL'
and bse.salario_bruto_valor = vba.valor
--drop table #brutosomaverbas
select srv.matricula, bse.salario_bruto_valor, sum(vba.valor) 'Valor' into #brutosomaverbas
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.servidor srv,
rh.servidor_mensal mns,
rh.verba inc,
rh.verba_rotina rot
where bse.id = vba.id_financeiro_mensal
and bse.id_servidor_mensal = mns.id
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and mns.id_servidor = srv.id
and mns.mes_referencia = @mesref
and inc.codigo in (400,575,588,2060,2260,53,51,4999,1575,3575,4912) --,4992,4993)
and bse.rotina = 'FOL'
and srv.matricula not in (300152265,300152444,300152509,300152525,300152589,300152611,300152992,300153010,300153030,300153095,300153110,300153164,300153264,300153270,300153382,300153591,300153778,
300153786,300153994,300153265,300152107,300152353,300153569,300153265,300153936,300152537,300153592,300153667,300153278,300153036,300153270,300153297,300152551,300153710,300153083,300152243,300154121)
group by srv.matricula, bse.salario_bruto_valor
having bse.salario_bruto_valor = sum(vba.valor)
select * from #brutosomaverbas
select srv.matricula
--update rh.servidor_mensal set processa_abono_salario_familia = 0
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and bse.rotina = 'FOL'
and crg.codigo = 35365
and mns.processa_abono_salario_familia = 1
and mns.mes_referencia = 202305
--order by srv.matricula
select srv.matricula
--update rh.servidor_mensal set id_percurso = null
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, #vba_575_588 trp
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.matricula = trp.matricula
and bse.rotina = 'FOL'
and mns.id_percurso is not null
and mns.mes_referencia = 202305
select srv.matricula, eve.id_verba_rotina
--delete rh.verba_eventual
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, #vba_2060_2260 vba, rh.verba_eventual eve
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.matricula = vba.matricula
and srv.id = eve.id_servidor
and mns.mes_referencia = eve.mes_referencia
and bse.rotina = 'FOL'
and mns.mes_referencia = 202305
and eve.id_verba_rotina in (3189,3342)
--order by srv.matricula
/*
--COVID para FEDERAIS
select srv.matricula, eve.id_verba_rotina
--delete rh.verba_eventual
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, #vba_4992 vba, rh.verba_eventual eve
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.matricula = vba.matricula
and srv.id = eve.id_servidor
and mns.mes_referencia = eve.mes_referencia
and bse.rotina = 'FOL'
and mns.mes_referencia = 202305
and eve.id_verba_rotina in (7418)
--order by srv.matricula
*/
select srv.matricula
--update rh.verba_periodica set fim = '20230430'
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, #vba_2060_2260 vba, rh.verba_periodica eve, rh.verba inc
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.matricula = vba.matricula
and srv.id = eve.id_servidor
and eve.id_verba = inc.id
and inc.codigo in (2060,2260)
and ((eve.fim is null) or (eve.fim >= getdate()))
and eve.inicio < left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and bse.rotina = 'FOL'
and mns.mes_referencia = 202305
and srv.matricula not in (300152265,300152444,300152509,300152525,300152589,300152611,300152992,300153010,300153030,300153095,300153110,300153164,300153264,300153270,300153382,300153591,300153778,
300153786,300153994,300152107,300152353,300153569,300153265,300153936,300152537,300153592,300153667,300153278,300153036,300153270,300153297,300152551,300153710,300153083,300152243,300154121)
select srv.matricula
--delete rh.verba_periodica
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, #vba_2060_2260 vba, rh.verba_periodica eve, rh.verba inc
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.matricula = vba.matricula
and srv.id = eve.id_servidor
and eve.id_verba = inc.id
and inc.codigo in (2060,2260)
and ((eve.fim is null) or (eve.fim >= getdate()))
and eve.inicio >= left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and bse.rotina = 'FOL'
and mns.mes_referencia = 202305
and srv.matricula not in (300152992,300153164,300153382,300152611,300152509,300153778,300153095,300153591,300152444,300153264,300153030,300153786,300152265,300153010,300153265,300153569,
300153265,300153936,300152537,300153592,300153667,300153278,300153036,300153270,300153297,300152551,300153710,300153083,300152243,300154121)
select srv.matricula
--update rh.servidor_mensal set processa_abono_salario_familia = 0
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and bse.rotina = 'FOL'
and srv.matricula in (select matricula from #vba_51_53)
and mns.processa_abono_salario_familia = 1
and mns.mes_referencia = 202305
select srv.matricula
--update rh.servidor_mensal set processa_abono_salario_familia = 0
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, #brutosomaverbas bru
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and bse.rotina = 'FOL'
and srv.matricula = bru.matricula
and mns.processa_abono_salario_familia = 1
and mns.mes_referencia = 202305
select srv.matricula , eve.id_verba_rotina
--delete rh.verba_eventual
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, #brutosomaverbas vba, rh.verba_eventual eve
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.matricula = vba.matricula
and srv.id = eve.id_servidor
and mns.mes_referencia = eve.mes_referencia
and bse.rotina = 'FOL'
and mns.mes_referencia = 202305
and eve.id_verba_rotina in (145,148,817,1082,1117,2582,3189,3342,3373,3626,3654,7418,7444)
--order by srv.matricula
select srv.matricula, eve.inicio
--update rh.verba_periodica set fim = '2023-04-30'
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, #brutosomaverbas vba, rh.verba_periodica eve, rh.verba inc
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.matricula = vba.matricula
and srv.id = eve.id_servidor
and eve.id_verba = inc.id
and inc.codigo in (400,575,588,2060,2260,53,51,4999,1575,3575,4912,7418)
and ((eve.fim is null) or (eve.fim >= getdate()))
and eve.inicio < left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and bse.rotina = 'FOL'
and mns.mes_referencia = 202305
select srv.matricula
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, #brutosomaverbas vba, rh.verba_periodica eve, rh.verba inc
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.matricula = vba.matricula
and srv.id = eve.id_servidor
and eve.id_verba = inc.id
and inc.codigo in (2060,2260)
and ((eve.fim is null) or (eve.fim >= getdate()))
and eve.inicio >= left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and bse.rotina = 'FOL'
and mns.mes_referencia = 202305
and srv.matricula not in (300152265,300152444,300152509,300152525,300152589,300152611,300152992,300153010,300153030,300153095,300153110,300153164,300153264,300153270,300153382,
300153591,300153778,300153786,300153994,300153569,300153265,300153936,300152537,300153592,300153667,300153278,300153036,300153270,300153297,300152551,300153710,300153083,300152243,300154121)
select srv.matricula
--update rh.servidor_mensal set id_percurso = null
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, #brutosomaverbas trp
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.matricula = trp.matricula
and bse.rotina = 'FOL'
and mns.id_percurso is not null
and mns.mes_referencia = 202305
select srv.matricula
--update rh.servidor_mensal set id_percurso = null
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and crg.codigo = 35365
and bse.rotina = 'FOL'
and mns.id_percurso is not null
and mns.mes_referencia = 202305
--matriculas na tabela para nao receber auxilio saude
select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.servidor srv,
rh.servidor_mensal mns,
rh.verba inc,
rh.verba_rotina rot
where bse.id = vba.id_financeiro_mensal
and bse.id_servidor_mensal = mns.id
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and mns.id_servidor = srv.id
and mns.mes_referencia = 202305
and inc.codigo in (2060,2061,2260)
and bse.rotina = 'FOL'
and bse.matricula in (select mtcfnc from dbtemps..tbmtcfnnaoauxsau)
select srv.matricula, eve.inicio
--update rh.verba_periodica set fim = '2023-04-30'
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse,rh.verba_periodica eve, rh.verba inc
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.id = eve.id_servidor
and eve.id_verba = inc.id
and inc.codigo in (2060,2061,2260)
and ((eve.fim is null) or (eve.fim >= getdate()))
and eve.inicio < left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and bse.rotina = 'FOL'
and bse.matricula in (select mtcfnc from dbtemps..tbmtcfnnaoauxsau)
and mns.mes_referencia = 202305
select srv.matricula, eve.inicio
--delete rh.verba_periodica
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse,rh.verba_periodica eve, rh.verba inc
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.id = eve.id_servidor
and eve.id_verba = inc.id
and inc.codigo in (2060,2061,2260)
and ((eve.fim is null) or (eve.fim >= getdate()))
and eve.inicio >= left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and bse.rotina = 'FOL'
and bse.matricula in (select mtcfnc from dbtemps..tbmtcfnnaoauxsau)
and mns.mes_referencia = 202305
select srv.matricula
--delete rh.verba_eventual
from rh.servidor srv, rh.servidor_mensal mns, rh.cargo crg, rh.financeiro_mensal bse, rh.verba_eventual eve, rh.verba_rotina rot, rh.verba inc
where srv.id = mns.id_servidor
and mns.id_cargo = crg.id
and mns.id = bse.id_servidor_mensal
and srv.id = eve.id_servidor
and mns.mes_referencia = eve.mes_referencia
and bse.rotina = 'FOL'
and mns.mes_referencia = 202305
and eve.id_verba_rotina = rot.id
and bse.rotina = rot.rotina
and rot.id_verba = inc.id
and inc.codigo in (2060,2061,2260)
and bse.matricula in (select mtcfnc from dbtemps..tbmtcfnnaoauxsau)
--order by srv.matricula
select *
From FinanceiroMensal bse,
FinanceiroMensalVerba vba,
rh.verba_eventual eve,
rh.verba_rotina rot
where bse.servidorId = eve.id_servidor
and bse.mesReferencia = eve.mes_referencia
and vba.idFinanceiroMensal = bse.financeiroMensalId
and vba.mesReferencia = bse.mesReferencia
and vba.matricula = bse.matricula
and isnull(vba.idPensionistaVitalicio,0) = isnull(bse.pensionistaVitalicioId,0)
and vba.rotina = bse.rotina
and vba.verbaId = rot.id_verba
and vba.rotina = rot.rotina
and bse.rotina = 'FOL'
and bse.mesReferencia = 202305
and rot.id = eve.id_verba_rotina
and vba.codigoVerba in (2060,2061,2260)
and bse.lotacaoCodigo in (select CodLtc from dbtemps..TbLotNaoAuxSau)
select *
From FinanceiroMensal bse,
FinanceiroMensalVerba vba,
rh.verba_periodica per
where bse.servidorId = per.id_servidor
and vba.idFinanceiroMensal = bse.financeiroMensalId
and vba.mesReferencia = bse.mesReferencia
and vba.matricula = bse.matricula
and isnull(vba.idPensionistaVitalicio,0) = isnull(bse.pensionistaVitalicioId,0)
and vba.rotina = bse.rotina
and vba.verbaId = per.id_verba
and bse.rotina = 'FOL'
and bse.mesReferencia = @mesref
and vba.codigoVerba in (2060,2061,2260)
and bse.lotacaoCodigo not in (822)
and bse.lotacaoCodigo in (select CodLtc from dbtemps..TbLotNaoAuxSau)
and per.inicio >= left(rtrim(convert(char(6),bse.mesReferencia)),4)+ '-' + right(rtrim(convert(char(6),bse.mesReferencia)),2) + '-01'
select *
From FinanceiroMensal bse,
FinanceiroMensalVerba vba,
rh.verba_periodica per
where bse.servidorId = per.id_servidor
and vba.idFinanceiroMensal = bse.financeiroMensalId
and vba.mesReferencia = bse.mesReferencia
and vba.matricula = bse.matricula
and isnull(vba.idPensionistaVitalicio,0) = isnull(bse.pensionistaParenteId,0)
and vba.rotina = bse.rotina
and vba.verbaId = per.id_verba
and bse.rotina = 'FOL'
and bse.mesReferencia = @mesref
and vba.codigoVerba in (2060,2061,2260)
and bse.lotacaoCodigo in (select CodLtc from dbtemps..TbLotNaoAuxSau)
and bse.lotacaoCodigo not in (822)
and per.inicio < left(rtrim(convert(char(6),bse.mesReferencia)),4)+ '-' + right(rtrim(convert(char(6),bse.mesReferencia)),2) + '-01'
50 - VERIFICANDO SERVIDORES COM INSALUBRIDADE E PERICULOSIDADE
use governa
declare
@mesref int = 202104
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.descricao like '%INSALU%'
and inc.codigo < 5000
and srv.matricula in (select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.descricao like '%pericu%'
and inc.codigo < 5000)
51 - Verificar Averbações em Servidores em Cargo para Pagamento
use governa
declare
@mesref int = 202305
select srv.matricula, CPF
--update rh.averbacao set situacao = 'SUS'
from rh.servidor srv,
rh.servidor_mensal mns,
rh.cargo fun,
rh.cargo_mensal crm,
rh.verba inc,
admin.pessoa_fisica fis,
rh.averbacao avb
where srv.id = mns.id_servidor
and mns.id_cargo = fun.id
and fun.id = crm.id_cargo
and mns.mes_referencia = crm.mes_referencia
and fun.codigo in (35345,35365,35434,35484,50053,50088,50144,50153)--(35345,35365,35484)
--and mns.situacao in ('ATV','AFA')
and srv.id_pessoa = fis.id
and inc.id = avb.id_verba
and avb.id_servidor = srv.id
and avb.situacao in ('ATV','RED')
and avb.id_pensao_vitalicia is null
and mns.mes_referencia = 202305
52 - VERIFICAR COM ABONO PERMANECIA E CDS
use governa
declare
@mesref int = 202305
drop table #delete
drop table #cds
select srv.matricula, CPF into #cds
from rh.verba_periodica vfx,
rh.servidor srv,
rh.servidor_mensal mns,
dbtemps.dbo.verbascds cds,
rh.cargo fun,
rh.cargo_mensal crm,
rh.verba inc,
admin.pessoa_fisica fis
where vfx.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id_cargo = fun.id
and fun.id = crm.id_cargo
and mns.mes_referencia = crm.mes_referencia
and ((vfx.fim is null) or (vfx.fim >= getdate()))
and mns.situacao in ('ATV', 'AFA')
and cds.codigo = inc.codigo
and srv.id_pessoa = fis.id
and vfx.id_verba = inc.id
and mns.mes_referencia = @mesref
select srv.matricula, pes.nome into #delete
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2035)
and srv.matricula in (select matricula from #cds)
and ((vra.fim is null) or (vra.fim >= getdate()))
and mns.id not in (select mns.id from rh.servidor_local srl, rh.local_trabalho lcl, rh.lotacao ltc, rh.servidor_mensal mn1
where srl.id_local_trabalho = lcl.id and lcl.id_lotacao = ltc.id and srl.id_servidor_mensal = mn1.id and mn1.mes_referencia = mns.mes_referencia and ltc.codigo = 799)
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref
select srv.matricula, pes.nome
--update rh.verba_periodica set fim = '2018-10-30'
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2035)
and srv.matricula in (select matricula from #delete)
and vba.codigo in (select codigo from dbtemps.dbo.verbascds)
and vra.inicio <> left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref
select srv.matricula, pes.nome
--delete rh.verba_periodica
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2035)
and srv.matricula in (select matricula from #delete)
and vba.codigo in (select codigo from dbtemps.dbo.verbascds)
and vra.inicio = left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref
53 - Verificar GAD Médicos em não médicos
use governa
declare
@mesref int = 202305
select srv.matricula, pes.nome
--delete rh.verba_eventual
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_eventual vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.cargo fun,
rh.cargo_mensal crm
where vba.id = rot.id_verba
and rot.id = vra.id_verba_rotina
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and vra.mes_referencia = mns.mes_referencia
and mns.mes_referencia = crm.mes_referencia
and pes.id = srv.id_pessoa
and rot.rotina = 'FOL'
and vba.codigo in (752,753)
and mns.id_cargo = crm.id_cargo
and crm.id_cargo = fun.id
and fun.codigo not in (612,634,635,641,642,643,744,35365)
--and mns.id not in (select mn1.id from rh.servidor_local srl, rh.local_trabalho lcl, rh.lotacao ltc, rh.servidor_mensal mn1
-- where srl.id_local_trabalho = lcl.id and lcl.id_lotacao = ltc.id and srl.id_servidor_mensal = mn1.id and mn1.mes_referencia = mns.mes_referencia and ltc.codigo in (80,800,230,54,40,41,42,43,44,45,46,47,48,49,50,51,52,140,180))
and vra.mes_referencia = 202305
54 - verificar maternidade INSS sem salvar valor no campo maternidade INSS na financeiro base
use Governa
declare
@mesref int = 202305
select *
--update FinanceiroMensal set previdenciatipo = 'INS', salariomaternidadevalorins = bse.salarioMaternidadeValor
from FinanceiroMensal bse
where mesReferencia= 202305
and previdenciaTipo is null
and salarioMaternidadeValor <> 0
and matricula in (select matricula from FinanceiroMensalVerba vba where vba.mesReferencia = bse.mesReferencia and bse.matricula = vba.matricula and bse.rotina = vba.rotina and codigoVerba = 9)
select *
--update rh.financeiro_mensal set previ_tipo = 'INS'
from rh.financeiro_mensal bse
where mes_referencia= 202305
and previ_tipo is null
and salario_maternidade_valor <> 0
and matricula in (select matricula from FinanceiroMensalVerba vba where vba.mesReferencia = bse.mes_referencia and bse.matricula = vba.matricula and bse.rotina = vba.rotina and codigoVerba = 9)
55 - VERIFICAR PAGAMENTO EM DUPLICIDADE DE PERICULOSIDADE
use governa
declare
@mesref int = 202305
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 128
and srv.matricula in (select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo in (132,364,692,698,700,701))
union
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 132
and srv.matricula in (select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo in (364,692,698,700,701))
union
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 364
and srv.matricula in (select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo in (692,698,700,701))
union
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 692
and srv.matricula in (select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo in (698,700,701))
union
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 698
and srv.matricula in (select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo in (700,701))
union
select srv.matricula, bse.salario_bruto_valor
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo = 700
and srv.matricula in (select srv.matricula
from rh.financeiro_mensal bse,
rh.financeiro_mensal_verba vba,
rh.verba inc,
rh.verba_rotina rot,
rh.servidor_mensal mns,
rh.servidor srv,
admin.pessoa_fisica fis
where bse.id = vba.id_financeiro_mensal
and vba.id_verba_rotina = rot.id
and rot.id_verba = inc.id
and rot.rotina = 'FOL'
and bse.id_servidor_mensal = mns.id
and mns.id_servidor = srv.id
and srv.id_pessoa = fis.id
and mns.mes_referencia = @mesref
and inc.codigo in (701))
56 - VERIFICAR SERVIDORES COM FG E CDS COM GAE E HORA EXTRA
use governa
declare
@mesref int = 202305
drop table #cds
select srv.matricula, CPF into #cds
from rh.verba_periodica vfx,
rh.servidor srv,
rh.servidor_mensal mns,
dbtemps.dbo.verbascds cds,
rh.cargo fun,
rh.cargo_mensal crm,
rh.verba inc,
admin.pessoa_fisica fis
where vfx.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id_cargo = fun.id
and fun.id = crm.id_cargo
and mns.mes_referencia = crm.mes_referencia
and crm.id_nivel_salarial not in (select id from rh.nivel_salarial where nivel like 'Sau%')
and ((vfx.fim is null) or (vfx.fim >= getdate()))
and mns.situacao in ('ATV', 'AFA')
and cds.codigo = inc.codigo
and srv.id_pessoa = fis.id
and vfx.id_verba = inc.id
and mns.mes_referencia = @mesref
select srv.matricula, ltc.codigo, inc.codigo, evt.valor
--delete rh.verba_eventual
from rh.servidor srv,
rh.servidor_mensal mns,
rh.servidor_local lcl,
rh.local_trabalho loc,
rh.lotacao ltc,
rh.verba_eventual evt,
rh.verba_rotina vms,
rh.verba inc,
rh.cargo crg,
rh.cargo_mensal crm,
rh.nivel_salarial niv,
admin.pessoa_fisica fis
where srv.id = mns.id_servidor
and mns.id = lcl.id_servidor_mensal
and lcl.id_local_trabalho = loc.id
and loc.id_lotacao = ltc.id
and evt.id_servidor = srv.id
and evt.id_verba_rotina = vms.id
and vms.id_verba = inc.id
and evt.mes_referencia = mns.mes_referencia
and mns.id_cargo = crg.id
and crg.id = crm.id_cargo
and mns.mes_referencia = crm.mes_referencia
and crm.id_nivel_salarial = niv.id
and inc.codigo in (727,1041,4128,4130,4140,4141,4142,226,227,300,303,363,424,707,709,712,713,909,910,1240,1241,1242,1314,1363,1364)--Adicional Noturno
and vms.rotina = 'FOL'
and mns.mes_referencia = 202305
and srv.id_pessoa = fis.id
and fis.cpf in (select cpf from #cds)
and srv.matricula not in (300148733,300148209,300148957,300148619,300149140)
order by ltc.codigo
select srv.matricula, pes.nome
--update rh.verba_periodica set fim = '2018-12-30'
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.lotacao ltc,
rh.lotacao_mensal lms,
rh.cargo crg,
rh.cargo_mensal cms,
rh.nivel_salarial niv
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060,2260)
and vba.codigo in (1041,4128,4130,4140,4141,4142,226,227,303,424,707,709,712,713,909,910,1240,1241,1242,1314,1363,1364,4642)--Adicional Noturno
and srv.matricula not in (select matricula from #cds)
and bse.id_lotacao_mensal = lms.id
and lms.id_lotacao = ltc.id
and mns.id_cargo = crg.id
and crg.id = cms.id_cargo
and cms.id_nivel_salarial = niv.id
and niv.nivel like 'Sau%'
and ltc.codigo not in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814)
and vra.inicio = left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref
--and srv.matricula not in (300072590)
select srv.matricula, pes.nome
--update rh.verba_periodica set fim = '2018-10-30'
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.lotacao ltc,
rh.lotacao_mensal lms,
rh.cargo crg,
rh.cargo_mensal cms,
rh.nivel_salarial niv
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060,2260)
and vba.codigo in (1041,4128,4130,4140,4141,4142,226,227,303,424,707,709,712,713,909,910,1240,1241,1242,1314,1363,1364,4642)--Adicional Noturno
and srv.matricula not in (select matricula from #cds)
and bse.id_lotacao_mensal = lms.id
and lms.id_lotacao = ltc.id
and crg.id = cms.id_cargo
and cms.id_nivel_salarial = niv.id
and niv.nivel like 'Sau%'
and ltc.codigo not in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814)
and vra.inicio <> left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref
--and srv.matricula not in (300072590)
select srv.matricula, pes.nome
--update rh.verba_periodica set fim = '2018-10-30'
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.lotacao ltc,
rh.lotacao_mensal lms,
rh.cargo crg,
rh.cargo_mensal cms,
rh.nivel_salarial niv
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060,2260)
and vba.codigo in (727,1041,4128,4130,4140,4141,4142,226,227,303,424,707,709,712,713,909,910,1240,1241,1242,1314,1363,1364,4642)--Adicional Noturno
and srv.matricula not in (select matricula from #cds)
and bse.id_lotacao_mensal = lms.id
and lms.id_lotacao = ltc.id
and mns.id_cargo = crg.id
and crg.id = cms.id_cargo
and cms.id_nivel_salarial = niv.id
and niv.nivel not like 'Sau%'
and ltc.codigo not in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814)
and vra.inicio = left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref
--and srv.matricula not in (300072590)
select srv.matricula, pes.nome
--update rh.verba_periodica set fim = '2018-10-30'
from rh.verba vba,
rh.verba_rotina rot,
rh.verba_periodica vra,
rh.servidor srv,
rh.servidor_mensal mns,
rh.financeiro_mensal bse,
admin.pessoa pes,
rh.lotacao ltc,
rh.lotacao_mensal lms,
rh.cargo crg,
rh.cargo_mensal cms,
rh.nivel_salarial niv
where vba.id = rot.id_verba
and vba.id = vra.id_verba
and vra.id_servidor = srv.id
and srv.id = mns.id_servidor
and mns.id = bse.id_servidor_mensal
and pes.id = srv.id_pessoa
and vba.codigo in (2060,2260)
and vba.codigo in (727,1041,4128,4130,4140,4141,4142,226,227,303,424,707,709,712,713,909,910,1240,1241,1242,1314,1363,1364,4642)--Adicional Noturno
and srv.matricula not in (select matricula from #cds)
and bse.id_lotacao_mensal = lms.id
and lms.id_lotacao = ltc.id
and crg.id = cms.id_cargo
and cms.id_nivel_salarial = niv.id
and niv.nivel not like 'Sau%'
and ltc.codigo not in (290,800,801,802,803,790,791,792,793,809,810,811,812,813,814)
and vra.inicio <> left(rtrim(convert(char(6),mns.mes_referencia)),4)+ '-' + right(rtrim(convert(char(6),mns.mes_referencia)),2) + '-01'
and ((vra.fim is null) or (vra.fim >= getdate()))
and rot.rotina = 'FOL'
and mns.mes_referencia = @mesref
--and srv.matricula not in (300072590)
57 - verificar verba exclusão BB
use governa
--insert into rh.VERBA_EXCLUSAO_CARTA_REMESSA
select next value for rh.S_VRBA_EXCLUSAO_CARTA_REMESSA,
id_verba, 'PCB' from rh.VERBA_CONSIGNACAO where id_verba not in (1516,1594,1662,2050,2051)
and id_verba not in (select id_verba from rh.VERBA_EXCLUSAO_CARTA_REMESSA
where modelo_carta_remessa = 'PCB')