434 - Média de Férias (Dif.)
⚙️ Metadados
- Código: 434
- Tipo: Provento
- INSS: FEG
- FGTS: FEG
- IRRF: FEG
- Natureza eSocial: 1020 - Férias
- DSR: Não
- Médias: Não
- Impacto Financeiro: Não
- Impacto Contábil: Sim
- Sequência: 4004
🧮 Regra Geral
-
Lógica de Cálculo: A verba 434 calcula diferenças de médias de férias, gerando um provento quando o valor recalculado é superior ao valor já pago.
- Verificações Iniciais e Customizações Hardcoded:
- Se
VG_ImpatriadoSemINSSfortrue, o cálculo é interrompido (return null).
- Se
- Validação de Lançamento e Cliente “salesforce”:
- Se houver
LancamentocomValorTotalpositivo emAdiantamentoComplementar:- Para clientes diferentes de “salesforce”, lança um erro (
SysFunc_Panico).
- Para clientes diferentes de “salesforce”, lança um erro (
- Se houver
- Cálculo Principal de Diferenças de Médias de Férias Gozadas:
- Ativado se
VG_TemDiferencaFeriasPrimPerGozoouVG_TemDiferencaFeriasSegPerGozofortrue. - Itera sobre os períodos de férias (
PeriodoFeriasBO) que se enquadram naSolicitacao.DataReferencia. - Para cada período, recupera o
HoleriteBOde origem e o percentual de DSR (PRC_DSR) da verba 342. - Identifica o
num_periodo_rateioe itera sobre as verbas 340 (Média Férias Gozadas) do holerite de origem. - Para cada verba 340 (
hv):- Recupera a lógica de cálculo (
DesCalc) dehv.MemoriaCalculo.Valores. - Caso contrário,
NovoValoré calculado viaSysFunc_ExecutarFormula(DesCalc). - Calcula
HV434.ValorTotal = Func_ArredondamentoPadrao(NovoValor - hv.ValorTotal). - Se
HV434.ValorTotalfor menor ou igual a zero, ou valores muito pequenos (+0.01M,+0.02M), a verba não é gerada. - Gera a verba 435 (DSR da diferença):
- Para clientes “veibras” ou “brabus” e
DesCalcsendo uma data, o DSR é calculado de forma específica:ValorTotal = Func_ArredondamentoPadrao(TotalVerbOrigem / 6M / 30M * VG_DiasFeriasNoMesReferencia). - Para os demais,
ValorTotal = Func_ArredondamentoPadrao(HV434.ValorTotal * PRC_DSR / 100).
- Para clientes “veibras” ou “brabus” e
- Recupera a lógica de cálculo (
- Ao final deste bloco,
HoleriteVerbaé definido comonull.
- Ativado se
- Customização CPF
12182323821(TIAutomotive):- Para o CPF
12182323821na referência01/03/2022, chamaSysFunc_ReceberLancamentoFuturo.
- Para o CPF
- Verificações Iniciais e Customizações Hardcoded:
-
Fórmula matemática:
ValorTotal_Verba434 = Func_ArredondamentoPadrao(NovoValor - hv.ValorTotal)ValorTotal_Verba435_Geral = Func_ArredondamentoPadrao(HV434.ValorTotal * PRC_DSR / 100)
-
Variáveis Utilizadas:
Empregado.CPFSolicitacao.DataReferenciaLancamento.ValorTotalVG_ImpatriadoSemINSSSolicitacao.TipoFolhaSolicitacao.ClienteVG_DiasFeriasNoMesReferenciaVG_TemDiferencaFeriasPrimPerGozoVG_TemDiferencaFeriasSegPerGozoPRC_DSRDesCalcNovoValorhv(HoleriteVerbaBO de origem).
-
Condições Especiais: Múltiplos
ifs para CPFs específicos, clientes específicos, datas de referência, tipo de folha, existência e valor de lançamentos, e flags de controle de diferenças de férias.
🔔 Eventos/Gatilhos
- Condição de Ativação: Média de Férias (Dif.)
- Quando a verba é calculada:
- Principalmente em Folha Regular (IdProcesso 1), quando há necessidade de calcular diferenças de médias de férias gozadas (indicado por
VG_TemDiferencaFeriasPrimPerGozoouVG_TemDiferencaFeriasSegPerGozo). - Pode ser calculada em
AdiantamentoComplementarpara clientes específicos como “salesforce”. - Ativada por condições específicas de CPF, cliente e data, conforme as customizações hardcoded.
- Principalmente em Folha Regular (IdProcesso 1), quando há necessidade de calcular diferenças de médias de férias gozadas (indicado por
🔗 Dependências
- Verbas Relacionadas:
- 1151: Verba de origem de média para customização de CPF
7832069929. - 340: Verba de “Média Férias Gozadas” (base para o cálculo da diferença).
- 5: Verba de “Comissão” ou similar (usada no cálculo da média para “minipreco” e “efi”).
- 342: Verba de “DSR Média Férias Gozadas” (fornece o percentual de DSR).
- 435: Verba de “DSR Média Férias (Dif.)” (gerada por esta verba).
- 55, 205: Verbas de DSR (usadas no cálculo específico de DSR para “veibras” e “brabus”).
- 1151: Verba de origem de média para customização de CPF
- Tipo de Relação:
- Dependência: A verba 434 depende dos valores e percentuais das verbas 340, 5, 342, 55 e 205.
- Geração: A verba 434 gera a verba 435.
- Fluxo de Cálculo: A verba 434 é processada após o cálculo das médias de férias gozadas e seus respectivos DSRs, buscando diferenças. Após seu cálculo, ela dispara o cálculo da verba 435.
🧩 Funções
CriarVerbaHoleriteVerbaBO: Instancia uma nova verba de holerite.SysFunc_NovaData: Cria um objetoDateTime.Func_ValidarExistenciaLancamento: Valida a existência de um lançamento.SysFunc_Panico: Lança uma exceção de erro crítico.SysFunc_UltimoDiaMes,SysFunc_PrimeiroDiaMes,SysFunc_MaiorData,SysFunc_ContagemMeses,SysFunc_MesmoMesAno: Funções de manipulação e comparação de datas.SysFunc_ListarHoleritesPeriodo,SysFunc_ListarOcorrenciaPeriodo: Recuperam dados de holerites e verbas em períodos.Func_ArredondamentoPadrao: Arredonda valores monetários.SysFunc_DtaIniMedFeriasPA: Calcula data de início de média de férias para período aquisitivo.SysFunc_RecuperarSomaValorLancamentosMesAtual: Soma lançamentos de uma verba no mês atual.Func_Média_FeG_e_AbPecun_DataFim: Calcula média de férias gozadas e abono pecuniário.SysFunc_ExecutarFormula: Executa uma fórmula de cálculo dinâmica.SysFunc_VerbaPossuiDSR: Verifica se uma verba tem DSR.SysFunc_ReceberLancamentoFuturo: Processa um lançamento futuro.
🎯 Particularidades por Cliente/Setor
👤 Brabus
-
Gera a verba 435 (DSR da diferença):
- Para
DesCalcsendo uma data, o DSR é calculado de forma específica:ValorTotal = Func_ArredondamentoPadrao(TotalVerbOrigem / 6M / 30M * VG_DiasFeriasNoMesReferencia).
- Para
-
Fórmula matemática:
- ValorTotal_Verba435_VeibrasBrabus = Func_ArredondamentoPadrao(TotalVerbOrigem / 6M / 30M * VG_DiasFeriasNoMesReferencia)
👤 Crasa
- Para o cliente “crasa” na referência 01/01/2023, se houver Lancamento com ValorTotal positivo, retorna a verba atual.
👤 Efi
- Se
hv.VerbaOrigemMedia.Codigofor “11” ou “12”, recalculaVG_BCHExtAdNotcom base em verba 5 do período aquisitivo. - SeDesCalcfor uma data (yyyyMM),NovoValoré calculado viaFunc_Média_FeG_e_AbPecun_DataFim.
👤 Employer
- Para o CPF 4655762900 (Employer), em 01/11/2022 (Adiantamento Complementar), retorna a verba atual; em 01/12/2022 (Regular), retorna null, impedindo o cálculo.
👤 Minipreco
- Para o CPF 7832069929 (Minipreco) na referência 01/06/2026, cria uma verba 434 com descrição “Média de Férias (Dif.) Gratificação de Função - 1º Período”, vinculada à VerbaOrigemMedia 1151, usando Lancamento.ValorTotal.
- Customização Cliente “minipreco” (Diferença de Média de Comissão):
- Se
VG_DiasFeriasNoMesReferenciafor maior que zero:- Busca lançamentos futuros da verba 340 com
VerbaOrigemMedia5. - Calcula um período de média de até 12 meses anteriores à data de início das férias.
- Soma os
ValorTotalda verba 5 nesse período (SomaDosValoresTotais). - Calcula
ValorMedia = SomaDosValoresTotais / QuantidadeMesesEntrePeriodoInicialFinal / 30 * VG_DiasFeriasNoMesReferencia. - Se
ValorMediafor maior que oLctFuturo.ValorTotal(valor já pago):- Cria uma verba 434 (“Média de Férias (Dif.) comissão”) com
ValorTotal = Func_ArredondamentoPadrao(ValorMedia - LctFuturo.ValorTotal). - Gera a verba 435 (DSR da diferença): Obtém o percentual de DSR (
PRC_DSR) da verba 342 e calculaValorTotal = Func_ArredondamentoPadrao(DifMediaComis.ValorTotal * PRC_DSR / 100).
- Cria uma verba 434 (“Média de Férias (Dif.) comissão”) com
- Busca lançamentos futuros da verba 340 com
- Se
- Fórmula matemática:
ValorMedia_Minipreco = SomaDosValoresTotais / QuantidadeMesesEntrePeriodoInicialFinal / 30 * VG_DiasFeriasNoMesReferencia
👤 Salesforce
- Se houver Lancamento com ValorTotal positivo em AdiantamentoComplementar, retorna a verba atual.
👤 Tiautomotive
- Para o CPF 12182323821 na referência 01/03/2022, chama SysFunc_ReceberLancamentoFuturo.
👤 Veibras
-
Gera a verba 435 (DSR da diferença):
- Para
DesCalcsendo uma data, o DSR é calculado de forma específica:ValorTotal = Func_ArredondamentoPadrao(TotalVerbOrigem / 6M / 30M * VG_DiasFeriasNoMesReferencia).
- Para
-
Fórmula matemática:
- ValorTotal_Verba435_VeibrasBrabus = Func_ArredondamentoPadrao(TotalVerbOrigem / 6M / 30M * VG_DiasFeriasNoMesReferencia)
💡 Proposta de Novo Cálculo
Fórmula proposta (padronizada):
-
Recálculo Proporcional da Média por Histórico de Rubrica de Origem: ValorMediaRecalculada = (SomaValoresRubricaOrigem / QtdMesesPeriodoMedia / 30) * DiasFeriasNoMes
-
Valor da Diferença de Média de Férias (Verba 434): ValorDiferencaMediaFerias = Arredondar(ValorMediaRecalculada - ValorMediaOriginalPaga)
-
DSR da Diferença de Média de Férias - Modelo Standard por Percentual (Verba 435): ValorDSRDiferenca_Standard = Arredondar(ValorDiferencaMediaFerias * (PercentualDSR / 100))
-
DSR da Diferença de Média de Férias - Modelo Proporcional por Dias (Verba 435): ValorDSRDiferenca_Proporcional = Arredondar((ValorDiferencaMediaFerias / 6 / 30) * DiasFeriasNoMesReferencia)
1. Filtros de Elegibilidade e Isenções (Piso Seguro)
VAR cfgEngine = OBTER_CONFIGURACAO_DIFERENCA_MEDIAS_FERIAS(EMPREGADO.Id, SOLICITACAO.EstabelecimentoId)
SE (cfgEngine.HabilitadoParaEstabelecimento == FALSO) ENTAO GRAVAR_LOG(“Cálculo suspenso: Recálculo de Média de Férias desabilitado para o estabelecimento.”) RETORNAR_NULO FIM_SE
SE (EMPREGADO.IsentoINSSOuImpatriado == VERDADEIRO E cfgEngine.BloquearImpatriadoSemINSS == VERDADEIRO) ENTAO GRAVAR_LOG(“Cálculo suspenso: Colaborador impatriado isento de INSS.”) RETORNAR_NULO FIM_SE
Trata Lançamentos Manuais / Adiantamento Complementar SE (SOLICITACAO.TipoFolha == “ADIANTAMENTO_COMPLEMENTAR”) ENTAO SE (LANCAMENTO.ValorTotal > 0) ENTAO SE (cfgEngine.PermitirDiferencaEmAdiantamentoComplementar == VERDADEIRO) ENTAO RETORNAR_LANCAMENTO_MANUAL() SENAO GRAVAR_LOG(“Lançamento em Adiantamento Complementar ignorado devido à política da empresa.”) RETORNAR_NULO FIM_SE FIM_SE FIM_SE
Valida flag de apuração de diferença de férias nos períodos gozados SE (FERIAS.PossuiDiferencaPeriodo1 == FALSO E FERIAS.PossuiDiferencaPeriodo2 == FALSO E cfgEngine.ForcarRecalculoTotal == FALSO) ENTAO GRAVAR_LOG(“Cálculo suspenso: Não foram sinalizadas diferenças de férias para os períodos de gozo.”) RETORNAR_NULO FIM_SE
2. Determinação da Base de Cálculo Recalculada e Apuração de Diferenças
VAR valorTotalDiferencaVerba434 = 0.00 VAR listaDiferencasApuradas = CRIAR_LISTA()
PARA CADA periodo IN FERIAS.ObterPeriodosNoMesReferencia(SOLICITACAO.DataReferencia) FACA
VAR holeriteOrigem = OBTER_HOLERITE_FERIAS_ORIGINAL(EMPREGADO.Id, periodo.Id) VAR verbasMediaOrigem = OBTER_VERBAS_HOLERITE(holeriteOrigem, cfgEngine.CodigosVerbasMediaOrigem) // Ex: Verba 340
PARA CADA hvOrigem IN verbasMediaOrigem FACA VAR valorRecalculado = 0.00
SE (LANCAMENTO_FUTURO_RATEIO.Existe PARA hvOrigem.VerbaOrigemId) ENTAO Apuração por histórico dinâmico de rubricas de origem (ex: comissões, adicionais) VAR somaValoresHistorico = OBTER_SOMA_RUBRICA_PERIODO( EMPREGADO.Id, hvOrigem.VerbaOrigemId, periodo.DataInicioMedia, periodo.DataFimMedia ) VAR qtdMesesMedia = OBTER_DIVISOR_MESES_MEDIA(periodo.DataInicioMedia, periodo.DataFimMedia) valorRecalculado = (somaValoresHistorico / qtdMesesMedia / 30.0) * periodo.DiasFeriasNoMes SENAO Reexecução da fórmula cadastrada na memória de cálculo da verba original valorRecalculado = EXECUTAR_FORMULA_DINAMICA(hvOrigem.MemoriaCalculo.Formula, EMPREGADO.Id, periodo.Id) FIM_SE
VAR diferencaItem = ARREDONDAR_PADRAO(valorRecalculado - hvOrigem.ValorTotal)
3. Aplicação de Limites, Tetos e Pisos Configuráveis
SE (diferencaItem > cfgEngine.ToleranciaMinimaResiduo) ENTAO valorTotalDiferencaVerba434 = valorTotalDiferencaVerba434 + diferencaItem ADICIONAR_ITEM(listaDiferencasApuradas, hvOrigem.VerbaOrigemId, diferencaItem) FIM_SE FIM_PARA FIM_PARA
SE (valorTotalDiferencaVerba434 <= 0.00) ENTAO GRAVAR_LOG(“Cálculo encerrado: Nenhuma diferença positiva apurada no período.”) RETORNAR_NULO FIM_SE
4. Gravação de Campos e Disparo de Verbas Correlacionadas (DSR - Verba 435)
VAR itemVerba434 = GERAR_ITEM_HOLERITE(“434”, valorTotalDiferencaVerba434) GRAVAR_HOLERITE_VERBA(EMPREGADO.Id, itemVerba434)
Apuração do DSR Reflexo (Verba 435) VAR valorDSRDiferenca = 0.00
SE (cfgEngine.ModeloCalculoDSR == “POR_PROPORCAO_DIAS_MES”) ENTAO Modelo Proporcional (ex: Veibras/Brabus) valorDSRDiferenca = ARREDONDAR_PADRAO((valorTotalDiferencaVerba434 / 6.0 / 30.0) * FERIAS.DiasFeriasNoMesReferencia) SENAO Modelo Padrão por Percentual de DSR da Verba Base (ex: Verba 342) VAR percentualDSR = OBTER_PERCENTUAL_DSR_VERBA_BASE(EMPREGADO.Id, cfgEngine.VerbaBaseDSR) valorDSRDiferenca = ARREDONDAR_PADRAO(valorTotalDiferencaVerba434 * (percentualDSR / 100.0)) FIM_SE
SE (valorDSRDiferenca > 0.00) ENTAO VAR itemVerba435 = GERAR_ITEM_HOLERITE(“435”, valorDSRDiferenca) GRAVAR_HOLERITE_VERBA(EMPREGADO.Id, itemVerba435) FIM_SE
REGISTRAR_DEMONSTRATIVO_CALCULO(EMPREGADO.Id, itemVerba434, itemVerba435, listaDiferencasApuradas)
Verba 434 orquestra a geração das rubricas no holerite RETORNAR_NULO
FIM_PROCESSAMENTO
Parametrizações Propostas para Reestruturação
1. REGRAS DE ELEGIBILIDADE E OPERAÇÃO
[*] Habilitar Recálculo Automatico de Diferença de Médias de Férias para o Estabelecimento
[*] Bloquear Cálculo para Colaboradores Impatriados sem Incidência de INSS
[*] Forçar Recálculo Total (Ignorar flags estáticas de diferença nos períodos de gozo)
Piso Mínimo de Tolerância para Geração da Diferença (Resíduo): [ R$ 0,02 ]
Tratamento em Adiantamento Complementar:
( ) Bloquear e Interromper Cálculo
(*) Permitir e Processar Diferença Apenas se Houver Lançamento Manual Aprovado
( ) Permitir Recálculo Automático Geral
2. DIRETRIZES DE APURAÇÃO DA BASE DE CÁLCULO Verbas de Média do Holerite Origem (Base de Recálculo):
+---------------+------------------------------------------------------------------+ | Verba Código | Descrição da Rubrica Base | +---------------+------------------------------------------------------------------+ | 340 | Média de Férias Gozadas | | 1151 | Média de Férias - Gratificação de Função | +---------------+------------------------------------------------------------------+
[+ Adicionar Verba Base]
Regra de Recalculo por Histórico de Vencimentos:
[*] Buscar Histórico das Verbas de Origem (ex: Verba 5 - Comissões) se Existir Lançamento Futuro
Período Padrão do Histórico do Recálculo: [ 12 v ] meses anteriores ao início do gozo.
3. REGRAS DO DSR REFLEXO (VERBA 435)
[*] Gerar Automáticamente Verba 435 (DSR Média de Férias - Diferença)
Modelo de Cálculo do DSR Reflexo:
(*) Standard: Aplicar Percentual de DSR da Verba de Origem (Verba Base DSR: [ 342 v ])
( ) Proporcional: Apuração por Divisor Fixo e Dias no Mês ((Diferença / 6 / 30) * DiasNoMes)
4. ENCARGOS E SOCIAL E CONTABILIZAÇÃO
Natureza eSocial Verba 434: [ 1020 - Férias v ]
Natureza eSocial Verba 435: [ 1020 - Férias v ]
Incidências Verba 434: [X] INSS [X] FGTS [X] IRRF
Incidências Verba 435: [X] INSS [X] FGTS [X] IRRF
Clientes com Mesma Regra
- Salesforce: Absorvido na opção do Bloco 1 (“Permitir e Processar Diferença Apenas se Houver Lançamento Manual Aprovado” em Adiantamento Complementar), substituindo o direcionamento de pânico por uma regra de validação em tela.
- Veibras e Brabus: Absorvidos pela seleção do modelo de cálculo de DSR no Bloco 3 (“Modelo Proporcional: Apuração por Divisor Fixo e Dias no Mês”), eliminando a checagem por nome de cliente e verificação manual da estrutura da fórmula
DesCalc. - Efi e Minipreco: Absorvidos pelas configurações do Bloco 2. A apuração de diferenças de comissão (verba 5) recalculadas via histórico de 12 meses e o mapeamento de verbas específicas de origem (como a verba 1151) são parametrizados na Matriz de Verbas de Média e nas Regras de Recálculo por Histórico.
- Crasa e Employer: As exceções temporárias por datas e CPFs foram substituídas pelo fluxo padronizado de governança. O bloqueio ou liberação em adiantamentos e datas específicas passa a ser controlado via workflow de lançamentos manuais com aprovação do RH.
- Tiautomotive: A exceção via CPF
12182323821para geração de lançamentos futuros foi convertida para a regra padrão de integração de lançamentos futuros parametrizada no motor principal.
Status Documental
- Status: Documentada
- Origem: export do Notion + catálogo da wiki
- Fonte rastreável:
30dc75ea2e838139a8f0c114ac6bf45e