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:
- A verba é marcada como “nunca utilizada” em um comentário de março/2025.
- O cálculo principal ocorre apenas se o
TipoFolhada solicitação for Férias (EnumTipoFolhaBO.Ferias). - 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). - 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). - Calcula
ValorTotalcomo um terço doBC_Terço_Férias(BC_Terço_Férias / 3). - Inicializa um
divisorcom o número de dias de férias do período de referência (VG_PeriodoFeriasReferencia.DiasFerias). - Se o
TipoPagamentodo empregado for Mensalista (EnumTipoPagamentoBO.Mensalista):- Itera sobre as verbas
325(Verba de Férias) que não possuemPercentualigual a999. - Se a data de referência do período de cálculo da verba
325for fevereiro e aQuantidadeda verba325for maior que o último dia de fevereiro (indicando 30 dias para um mês de 28/29), ajusta odivisore aQuantidadeda verba325para refletir os dias reais de fevereiro.
- Itera sobre as verbas
- Itera novamente sobre as verbas
325(ondePercentual != 999):- Cria uma nova verba de holerite (
VerbaTercoRateada) com o código e descrição da verba 9297. - Define a
DescricaoFinalda verba com o número do período de rateio de férias. - Calcula o
ValorTotalrateado para o período:(ValorTotal / divisor) * hvFerias.Quantidade. O resultado é arredondado usandoFunc_ArredondamentoPadrao. - Registra a memória de cálculo detalhando a divisão do valor da verba
9340pelos dias de férias e multiplicação pelos dias do período da verba325. - 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 eTipoFolhacomoRegular.
- Cria uma nova verba de holerite (
- Se o
TipoFolhada solicitação for Regular ou Rescisão, a verba recebe lançamentos futuros previamente criados (SysFunc_ReceberLancamentoFuturo(HoleriteVerba)). - 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 verba9340.VG_ListaLancamentoFuturoRateioFeriasMestre: Lista de lançamentos futuros para rateio de férias.ValorTotal: Um terço doBC_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: ObjetoHoleriteVerbaBOrepresentando uma verba325de férias.VerbaTercoRateada: Nova verba de holerite criada para o rateio.HLF: ObjetoHoleriteLancamentoFuturoBOpara 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 verbas325que não possuemPercentualigual a999.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 (IdProcessonão especificado, mas geralmente1ou2) 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