Wiki / SuperCalculo ~7 min

9297 - Média Salário-Maternidade (isento IRRF)

⚙️ Metadados

  • Código: 9297
  • Tipo: Provento
  • INSS: SAL
  • FGTS: SAL
  • IRRF: ISE
  • Natureza eSocial: -
  • DSR: Não
  • Médias: Não
  • Impacto Financeiro: Não
  • Impacto Contábil: Sim
  • Sequência: 576

🧮 Regra Geral

N/A

🎯 Particularidades por Cliente/Setor

👤 Acal
  • Lógica de Cálculo:

    1. A verba é marcada como “nunca utilizada” em um comentário de março/2025.
    2. O cálculo principal ocorre apenas se o TipoFolha da solicitação for Férias (EnumTipoFolhaBO.Ferias).
    3. Primeiro, tenta recuperar o valor total da verba 9340 (Base de Cálculo Terço Férias). Se o valor for zero, a verba não é calculada (return null).
    4. Verifica se a lista VG_ListaLancamentoFuturoRateioFeriasMestre (que contém lançamentos futuros de rateio de férias) é nula ou vazia. Se sim, a verba não é calculada (return null).
    5. Calcula ValorTotal como um terço do BC_Terço_Férias (BC_Terço_Férias / 3).
    6. Inicializa um divisor com o número de dias de férias do período de referência (VG_PeriodoFeriasReferencia.DiasFerias).
    7. Se o TipoPagamento do empregado for Mensalista (EnumTipoPagamentoBO.Mensalista):
      • Itera sobre as verbas 325 (Verba de Férias) que não possuem Percentual igual a 999.
      • Se a data de referência do período de cálculo da verba 325 for fevereiro e a Quantidade da verba 325 for maior que o último dia de fevereiro (indicando 30 dias para um mês de 28/29), ajusta o divisor e a Quantidade da verba 325 para refletir os dias reais de fevereiro.
    8. Itera novamente sobre as verbas 325 (onde Percentual != 999):
      • Cria uma nova verba de holerite (VerbaTercoRateada) com o código e descrição da verba 9297.
      • Define a DescricaoFinal da verba com o número do período de rateio de férias.
      • Calcula o ValorTotal rateado para o período: (ValorTotal / divisor) * hvFerias.Quantidade. O resultado é arredondado usando Func_ArredondamentoPadrao.
      • Registra a memória de cálculo detalhando a divisão do valor da verba 9340 pelos dias de férias e multiplicação pelos dias do período da verba 325.
      • Define as incidências de INSS, FGTS e IRRF da nova verba com base nas configurações da verba 9297.
      • Adiciona a VerbaTercoRateada à lista de verbas do holerite (Holerite.ListaHoleriteVerba).
      • Cria um lançamento futuro (HLF) para essa verba, definindo sua data de referência e TipoFolha como Regular.
    9. Se o TipoFolha da solicitação for Regular ou Rescisão, a verba recebe lançamentos futuros previamente criados (SysFunc_ReceberLancamentoFuturo(HoleriteVerba)).
    10. Ao final, a verba de holerite original (HoleriteVerba) é definida como nula.
  • Fórmula matemática:

    • ValorTotal_Rateado = Func_ArredondamentoPadrao((BC_Terço_Férias / 3) / divisor_ajustado * Dias_Periodo_Verba_325)
  • Variáveis Utilizadas:

    • BC_Terço_Férias: Valor total da verba 9340.
    • VG_ListaLancamentoFuturoRateioFeriasMestre: Lista de lançamentos futuros para rateio de férias.
    • ValorTotal: Um terço do BC_Terço_Férias.
    • divisor: Dias de férias do período de referência, ajustado para fevereiro se aplicável.
    • increm: Incremento para ajuste do divisor em fevereiro.
    • VG_PeriodoFeriasReferencia.DiasFerias: Dias de férias do período de referência.
    • Empregado.TipoPagamento: Tipo de pagamento do empregado (Mensalista, Horista, etc.).
    • hvFerias: Objeto HoleriteVerbaBO representando uma verba 325 de férias.
    • VerbaTercoRateada: Nova verba de holerite criada para o rateio.
    • HLF: Objeto HoleriteLancamentoFuturoBO para lançamentos futuros.
    • Solicitacao.TipoFolha: Tipo de folha de pagamento em processamento (Férias, Regular, Rescisão).
  • Condições Especiais:

    • if (Empregador.CNPJEmpregador.Trim().StartsWith( "1442632700") == false): Condição comentada que restringiria o cálculo para CNPJs que não começassem com “1442632700” (Baru).
    • if (BC_Terço_Férias == 0M): Impede o cálculo se a base de cálculo for zero.
    • if (VG_ListaLancamentoFuturoRateioFeriasMestre == null || VG_ListaLancamentoFuturoRateioFeriasMestre.Count() == 0): Impede o cálculo se não houver lançamentos futuros de rateio de férias.
    • if (Solicitacao.TipoFolha == EnumTipoFolhaBO.Ferias): Bloco principal de cálculo para férias.
    • if (Empregado.TipoPagamento == EnumTipoPagamentoBO.Mensalista): Aplica ajuste de dias apenas para mensalistas.
    • if (hvFerias.Quantidade > SysFunc_UltimoDiaMes(...).Day): Condição para ajuste de dias em fevereiro.
    • where(h => h.Percentual != 999): Filtra verbas 325 que não possuem Percentual igual a 999.
    • else if (Solicitacao.TipoFolha == EnumTipoFolhaBO.Regular || Solicitacao.TipoFolha == EnumTipoFolhaBO.Rescisao): Bloco para recebimento de lançamentos futuros em folha regular ou rescisão.
  • Condições e Gatilhos:

    • Quando a verba é calculada:
    • Automaticamente: Durante o processamento de Férias (IdProcesso = 1) para ratear o terço de férias em múltiplos períodos, gerando lançamentos futuros.
    • Recebimento de Lançamento Futuro: Durante o processamento de Folha Regular (IdProcesso = 1) ou Rescisão (IdProcesso não especificado, mas geralmente 1 ou 2) para efetivar os valores provisionados em lançamentos futuros.
  • Dependências:

    • Verbas Relacionadas:
    • Verba 9340: Dependência. Utilizada como base de cálculo (BC_Terço_Férias).
    • Verba 325: Dependência. Utilizada para determinar os períodos e quantidades de dias para o rateio do valor.
  • Funções Identificadas:

    • RecuperarValorTotalVerba("9340"): Recupera o valor total de uma verba específica (neste caso, a verba 9340).
    • SysFunc_RecuperarListaHoleriteVerba("325"): Recupera uma lista de verbas de holerite específicas (neste caso, a verba 325).
    • SysFunc_UltimoDiaMes(VG_ListaLancamentoFuturoRateioFeriasMestre[(int)hvFerias.Percentual].PeriodoCalculo.DataReferencia).Day: Retorna o último dia do mês da data de referência fornecida.
    • CriarVerbaHoleriteVerbaBO(HoleriteVerba.Verba.Codigo, HoleriteVerba.Verba.Descricao, null): Cria um novo objeto de verba de holerite.
    • Func_ArredondamentoPadrao(ValorTotal / divisor * hvFerias.Quantidade): Arredonda um valor numérico para o padrão definido.
    • Argumento(ValorTotal.ToString("N2")): Função para registrar argumentos na memória de cálculo.
    • EscreverMemoria("[NORMAL]", @"..."): Função para registrar a memória de cálculo.
    • SysFunc_CriarLancamentoFuturo(VerbaTercoRateada): Cria um lançamento futuro para a verba calculada.
    • SysFunc_ReceberLancamentoFuturo(HoleriteVerba): Processa um lançamento futuro para a verba.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

TercoTotal = BaseCalculoVerba9340 / 3

DivisorAjustado = SE(Mensalista == Verdadeiro E MesReferencia == 2 E DiasFerias > UltimoDiaMes, DiasFerias - (DiasFerias - UltimoDiaMes), DiasFerias)

ValorRateadoPeriodo = Func_ArredondamentoPadrao((TercoTotal / DivisorAjustado) * DiasFeriasPeriodo)


1. Filtros de Elegibilidade e Isenções (Piso Seguro)

SE Solicitacao.TipoProcesso == PROVISOES E NAO Config.PermitirCalculoEmProvisoes ENTÃO RETORNAR NULO FIM_SE

SE NAO Config.TiposFolhaPermitidos.Contem(Solicitacao.TipoFolha) ENTÃO RETORNAR NULO FIM_SE

Processamento no recebimento de Lançamento Futuro (Folha Regular ou Rescisão) SE Solicitacao.TipoFolha == EnumTipoFolha.Regular OU Solicitacao.TipoFolha == EnumTipoFolha.Rescisao ENTÃO SE SysFunc_PossuiLancamentoFuturo(“9297”) ENTÃO HoleriteVerba = SysFunc_ReceberLancamentoFuturo(“9297”) RETORNAR HoleriteVerba SENÃO RETORNAR NULO FIM_SE FIM_SE

Execução do Rateio de Férias (Processo do Tipo Férias) SE Solicitacao.TipoFolha != EnumTipoFolha.Ferias ENTÃO RETORNAR NULO FIM_SE

Recuperação e validação da base de cálculo de origem (Verba 9340 ou equivalente parametrizado) ValorBaseTerco = Holerite.ObterValorTotal(Config.CodigoVerbaBaseTerco) SE ValorBaseTerco <= 0.0 ENTÃO RETORNAR NULO FIM_SE

ListaRateioMestre = Empregado.VG_ListaLancamentoFuturoRateioFeriasMestre SE ListaRateioMestre.Vazia() ENTÃO RETORNAR NULO FIM_SE

2. Determinação da Base, Proporcionalização e Ajuste de Divisor

TercoConstitucionalTotal = ValorBaseTerco / 3.0 DivisorDiasTotal = Empregado.VG_PeriodoFeriasReferencia.DiasFerias

ListaVerbasFerias = Holerite.ObterListaVerbas(Config.CodigoVerbaFeriasOrigem) .Onde(v => v.Percentual != Config.PercentualExclusaoRateio)

Ajuste automático de divisor para empregados mensalistas em fevereiro (28/29 dias vs 30 dias comercial) SE Empregado.TipoPagamento == EnumTipoPagamento.Mensalista E Config.AjustarDiasFevereiroMensalista ENTÃO PARA CADA ItemFerias EM ListaVerbasFerias FAÇA DataRefPeriodo = ListaRateioMestre[ItemFerias.Percentual].PeriodoCalculo.DataReferencia UltimoDiaMes = SysFunc_UltimoDiaMes(DataRefPeriodo).Dia

SE DataRefPeriodo.Mes == 2 E ItemFerias.Quantidade > UltimoDiaMes ENTÃO IncrementoDias = ItemFerias.Quantidade - UltimoDiaMes DivisorDiasTotal = DivisorDiasTotal - IncrementoDias ItemFerias.Quantidade = UltimoDiaMes FIM_SE FIM_PARA FIM_SE

SE DivisorDiasTotal <= 0.0 ENTÃO DivisorDiasTotal = 30.0 FIM_SE

3. Processamento Dinâmico de Rateio por Período e Geração de Lançamentos Futuros

PARA CADA hvFerias EM ListaVerbasFerias FAÇA

ValorRateadoPeriodo = Func_ArredondamentoPadrao((TercoConstitucionalTotal / DivisorDiasTotal) * hvFerias.Quantidade)

SE ValorRateadoPeriodo > 0.0 ENTÃO RubricaRateio = CriarVerbaHoleriteBO(“9297”, “Média Salário-Maternidade (isento IRRF)”) RubricaRateio.TipoVerba = “P” RubricaRateio.Quantidade = hvFerias.Quantidade RubricaRateio.ValorTotal = ValorRateadoPeriodo RubricaRateio.DescricaoFinal = String.Format(“{0} - Rateio Período {1}”, RubricaRateio.Descricao, hvFerias.Percentual)

Atribuição de incidências tributárias configuradas (Isento de IRRF) Holerite.AcumularBase(“BASE_INSS_FOLHA”, ValorRateadoPeriodo) Holerite.AcumularBase(“BASE_FGTS_FOLHA”, ValorRateadoPeriodo) Holerite.AcumularBase(“BASE_RENDIMENTOS_ISENTOS_IRRF”, ValorRateadoPeriodo)

Holerite.ListaHoleriteVerba.Adicionar(RubricaRateio)

Injeção de lançamento futuro (HLF) para baixa automática na folha regular correspondente DataRefHLF = ListaRateioMestre[hvFerias.Percentual].PeriodoCalculo.DataReferencia SysFunc_CriarLancamentoFuturo(RubricaRateio, DataRefHLF, EnumTipoFolha.Regular)

Memória de cálculo detalhada Argumento(“TERCO_TOTAL”, TercoConstitucionalTotal) Argumento(“DIVISOR_DIAS”, DivisorDiasTotal) Argumento(“DIAS_PERIODO”, hvFerias.Quantidade) Argumento(“VALOR_RATEADO”, ValorRateadoPeriodo)

EscreverMemoria(“RATEIO_TERCO_FERIAS”, String.Format(“Rateio Terço Férias Maternidade: (R$ {0} / {1} dias) * {2} dias = R$ {3}”, TercoConstitucionalTotal.ToString(“N2”), DivisorDiasTotal, hvFerias.Quantidade, ValorRateadoPeriodo.ToString(“N2”))) FIM_SE

FIM_PARA

A verba manipuladora principal encerra sem valor direto, pois gerou as rubricas de rateio RETORNAR NULO

FIM


Parametrizações Propostas para Reestruturação

1. REGRAS DE ENTRADA E FILTROS DE ELEGIBILIDADE

[ ] Permitir Execução no Processo de Provisões

Tipos de Folha Permitidos …: [X] Regular [X] Rescisão [X] Férias [ ] 13º Salário

Verba Origem da Base do Terço …: [ 9340 ]

Verba Origem dos Dias de Férias …: [ 325 ]

Código de Expulsão de Rateio (Percentual) .: [ 999 ]

2. REGRA DE CÁLCULO E PROPORCIONALIZAÇÃO

Fórmula de Composição do Terço …: [ Terço Fixo (Base / 3) v ]

[X] Ajustar Proporcionalidade de Dias em Fevereiro para Mensalistas

Tratamento de Arredondamento …: [ Arredondamento Padrão do Sistema v ]

Geração Automática de Lançamento Futuro …: [X] Sim [ ] Não

3. DIRETRIZES DE FLUXO DE RATEIO

Tipo de Folha Destino do HLF …: [ Folha Regular v ]

[X] Exibir Número do Período de Rateio na Descrição do Holerite

[ ] Permitir Gravação da Rubrica com Valor Zerado (0,00)

4. TRIBUTAÇÃO E ENVIOS ESOCIAL

Natureza eSocial …: [ 1000 - Salário, Maternidade ou Diretos v ]

Incidência INSS …: [ Mensal (SAL) ]

Incidência FGTS …: [ Mensal (SAL) ]

Incidência IRRF …: [ Isento (ISE) ]

Afeta DSR …: [ ] Sim [X] Não

Incorpora Médias …: [ ] Sim [X] Não

Clientes com mesma regra

  • Acal e Clientes com Rateio Multi-período de Férias: A verba 9297 é utilizada na folha de férias quando há gozo fracionado ou que cruza competências mensais durante o período de licença-maternidade, exigindo o rateio do terço constitucional e sua postergação para as respectivas folhas regulares via Lançamento Futuro (HLF). O motor unificado absorve integralmente a regra histórica da Acal, eliminando comentários legados, e mantendo a proporcionalização de dias, o ajuste de mensalistas no mês de fevereiro e a distribuição automatizada das parcelas.

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