Wiki / SuperCalculo ~10 min

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.

    1. Verificações Iniciais e Customizações Hardcoded:
      • Se VG_ImpatriadoSemINSS for true, o cálculo é interrompido (return null).
    2. Validação de Lançamento e Cliente “salesforce”:
      • Se houver Lancamento com ValorTotal positivo em AdiantamentoComplementar:
        • Para clientes diferentes de “salesforce”, lança um erro (SysFunc_Panico).
    3. Cálculo Principal de Diferenças de Médias de Férias Gozadas:
      • Ativado se VG_TemDiferencaFeriasPrimPerGozo ou VG_TemDiferencaFeriasSegPerGozo for true.
      • Itera sobre os períodos de férias (PeriodoFeriasBO) que se enquadram na Solicitacao.DataReferencia.
      • Para cada período, recupera o HoleriteBO de origem e o percentual de DSR (PRC_DSR) da verba 342.
      • Identifica o num_periodo_rateio e 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) de hv.MemoriaCalculo.Valores.
        • Caso contrário, NovoValor é calculado via SysFunc_ExecutarFormula(DesCalc).
        • Calcula HV434.ValorTotal = Func_ArredondamentoPadrao(NovoValor - hv.ValorTotal).
        • Se HV434.ValorTotal for 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 DesCalc sendo 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).
      • Ao final deste bloco, HoleriteVerba é definido como null.
    4. Customização CPF 12182323821 (TIAutomotive):
      • Para o CPF 12182323821 na referência 01/03/2022, chama SysFunc_ReceberLancamentoFuturo.
  • 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.CPF
    • Solicitacao.DataReferencia
    • Lancamento.ValorTotal
    • VG_ImpatriadoSemINSS
    • Solicitacao.TipoFolha
    • Solicitacao.Cliente
    • VG_DiasFeriasNoMesReferencia
    • VG_TemDiferencaFeriasPrimPerGozo
    • VG_TemDiferencaFeriasSegPerGozo
    • PRC_DSR
    • DesCalc
    • NovoValor
    • hv (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_TemDiferencaFeriasPrimPerGozo ou VG_TemDiferencaFeriasSegPerGozo).
    • Pode ser calculada em AdiantamentoComplementar para clientes específicos como “salesforce”.
    • Ativada por condições específicas de CPF, cliente e data, conforme as customizações hardcoded.

🔗 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”).
  • 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 objeto DateTime.
  • 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 DesCalc sendo uma data, o DSR é calculado de forma específica: ValorTotal = Func_ArredondamentoPadrao(TotalVerbOrigem / 6M / 30M * VG_DiasFeriasNoMesReferencia).
  • 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.Codigo for “11” ou “12”, recalcula VG_BCHExtAdNot com base em verba 5 do período aquisitivo. - Se DesCalc for uma data (yyyyMM), NovoValor é calculado via Func_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.
  1. Customização Cliente “minipreco” (Diferença de Média de Comissão):
    • Se VG_DiasFeriasNoMesReferencia for maior que zero:
      • Busca lançamentos futuros da verba 340 com VerbaOrigemMedia 5.
      • Calcula um período de média de até 12 meses anteriores à data de início das férias.
      • Soma os ValorTotal da verba 5 nesse período (SomaDosValoresTotais).
      • Calcula ValorMedia = SomaDosValoresTotais / QuantidadeMesesEntrePeriodoInicialFinal / 30 * VG_DiasFeriasNoMesReferencia.
      • Se ValorMedia for maior que o LctFuturo.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 calcula ValorTotal = Func_ArredondamentoPadrao(DifMediaComis.ValorTotal * PRC_DSR / 100).
  • 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 DesCalc sendo uma data, o DSR é calculado de forma específica: ValorTotal = Func_ArredondamentoPadrao(TotalVerbOrigem / 6M / 30M * VG_DiasFeriasNoMesReferencia).
  • Fórmula matemática:

    • ValorTotal_Verba435_VeibrasBrabus = Func_ArredondamentoPadrao(TotalVerbOrigem / 6M / 30M * VG_DiasFeriasNoMesReferencia)

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

  1. Recálculo Proporcional da Média por Histórico de Rubrica de Origem: ValorMediaRecalculada = (SomaValoresRubricaOrigem / QtdMesesPeriodoMedia / 30) * DiasFeriasNoMes

  2. Valor da Diferença de Média de Férias (Verba 434): ValorDiferencaMediaFerias = Arredondar(ValorMediaRecalculada - ValorMediaOriginalPaga)

  3. DSR da Diferença de Média de Férias - Modelo Standard por Percentual (Verba 435): ValorDSRDiferenca_Standard = Arredondar(ValorDiferencaMediaFerias * (PercentualDSR / 100))

  4. 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 12182323821 para 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

Voltar ao catálogo

Digite para pesquisar...

Scroll para zoom · Esc para fechar

⌨️ Atalhos de teclado
Navegação
Ctrl K Pesquisar na wiki
Ctrl F Buscar na página
? Ver atalhos
Visualização
Ctrl Shift F Modo foco
A+ / A− Tamanho da fonte
Ctrl D Alternar tema
Ações
Ctrl B Favoritar página
Esc Fechar dialogs