439 - 1/3 de Férias (Dif.) (isento INSS)
⚙️ Metadados
- Código: 439
- Tipo: Provento
- INSS: ISE
- 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: 4006
🧮 Regra Geral
-
Lógica de Cálculo:
- A verba só é calculada se a variável
VG_TercoFeG_IsentoINSSfortrue. Caso contrário, o cálculo é interrompido (return null). - É calculada a base para o terço de férias diferencial (
BC_Terço_DifFérias) somando os valores totais das verbas433,434e435. - Se
BC_Terço_DifFériasfor maior que zero:- Tenta-se identificar o número do período de férias a partir da verba
433. Se encontrada, a descrição final da verba é formatada como “1/3 de Férias (Dif.) (isento INSS) Xº Período”, onde X é o número do período. - Caso contrário, a descrição final é definida como “1/3 de Férias (Dif.) (isento INSS)”.
- A
Quantidadeda verba é definida comoBC_Terço_DifFérias. - O
ValorTotalé calculado dividindoBC_Terço_DifFériaspor 3 e arredondado usando a funçãoFunc_ArredondamentoPadrao.
- Tenta-se identificar o número do período de férias a partir da verba
- A verba só é calculada se a variável
-
Fórmula matemática:
ValorTotal = (RecuperarValorTotalVerba("433") + RecuperarValorTotalVerba("434") + RecuperarValorTotalVerba("435")) / 3
-
Variáveis Utilizadas:
VG_TercoFeG_IsentoINSS: Variável booleana que controla a execução do cálculo.BC_Terço_DifFérias: Base de cálculo para o terço de férias diferencial.NumPerFerias: Número do período de férias.NPF: ObjetoHoleriteVerbareferente à verba433.
-
Condições Especiais:
if (VG_TercoFeG_IsentoINSS == false): Interrompe o cálculo se a condição for falsa.if (BC_Terço_DifFérias > 0): Procede com o cálculo detalhado apenas se houver base de cálculo positiva.if (NPF != null): Condição para formatar a descrição da verba com o número do período de férias.
🔗 Dependências
- Verbas Relacionadas:
433: Verba de férias gozadas, utilizada como base para o cálculo e para identificar o período de férias.434: Verba de férias gozadas, utilizada como base para o cálculo.435: Verba de férias gozadas, utilizada como base para o cálculo.300: Mencionada em um comentário como uma verba que poderia ser usada para complementar a descrição, mas que não pode ser acessada devido à sua sequência de cálculo.
- Tipo de Relação: Dependência. A verba 439 depende dos valores das verbas 433, 434 e 435 para sua base de cálculo.
🧩 Funções
RecuperarValorTotalVerba("código"): Recupera o valor total de uma verba específica.Func_ArredondamentoPadrao(valor): Arredonda o valor para o padrão do sistema.
💡 Proposta de Novo Cálculo
Fórmula proposta (padronizada):
BaseCalculo = SE(OrigemCalculo == “Manual”, ValorReferenciaManual, Sum(VerbasCompoemBase[433, 434, 435]))
ValorFinal439 = Func_ArredondamentoPadrao(MAX(PisoMinimo, MIN(BaseCalculo / 3, SE(PossuiTeto == Verdadeiro, TetoMaximo, BaseCalculo / 3))))
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
SE Config.ExigirFiltroElegibilidadeEmpresa E NAO Config.EmpresasHabilitadas.Contem(Empregador.Id) ENTÃO RETORNAR NULO FIM_SE
SE Config.ExigirParametroAtivo E NAO Config.VG_TercoFeG_IsentoINSS ENTÃO RETORNAR NULO FIM_SE
SE Config.PossuiDataVigenciaInicio E Solicitacao.DataReferencia < Config.DataVigenciaInicio ENTÃO RETORNAR NULO FIM_SE
2. Determinação da Base de Cálculo, Período Aquisitivo e Valoração
Lancamento = Holerite.ObterLancamento(“439”) BaseCalculoTercoDif = 0.0 NumeroPeriodoFerias = NULO
SE Func_ValidarExistenciaLancamento(Lancamento) E Lancamento.ValorTotal > 0.0 ENTÃO
-
Prioridade 1: Lançamento Manual Direto ValorBrutoCalculado = ABS(Lancamento.ValorTotal) BaseCalculoTercoDif = SE(Lancamento.ValorReferencia > 0.0, Lancamento.ValorReferencia, ValorBrutoCalculado * 3.0) SENÃO SE Config.ModoApuracao == “AUTOMATICO_DIFERENCA_FERIAS” ENTÃO
-
Prioridade 2: Apuração Automática via Soma de Verbas de Diferença/Gozadas (433, 434, 435) SomaVerbasBase = 0.0
PARA CADA CodigoVerba EM Config.VerbasCompoemBase DO RubricaOrigem = Holerite.ObterVerba(CodigoVerba) SE RubricaOrigem != NULO E RubricaOrigem.ValorTotal > 0.0 ENTÃO SomaVerbasBase = SomaVerbasBase + RubricaOrigem.ValorTotal
Tenta capturar o número do período a partir do primeiro evento base encontrado SE NumeroPeriodoFerias == NULO E RubricaOrigem.NumeroPeriodoFerias != NULO ENTÃO NumeroPeriodoFerias = RubricaOrigem.NumeroPeriodoFerias FIM_SE FIM_SE FIM_PARA
BaseCalculoTercoDif = SomaVerbasBase
SE BaseCalculoTercoDif <= 0.0 ENTÃO RETORNAR NULO FIM_SE
Proporção do Terço Constituicional (1/3) FatorFracao = Config.FatorTerco / 100.0 // Padrão: 33.3333% ou divisão direta por 3.0 ValorBrutoCalculado = BaseCalculoTercoDif * FatorFracao SENÃO RETORNAR NULO FIM_SE
3. Aplicação de Limites, Tetos e Pisos
SE Config.PossuiTetoMaximo E ValorBrutoCalculado > Config.ValorTetoMaximo ENTÃO ValorBrutoCalculado = Config.ValorTetoMaximo SENÃO SE Config.PossuiPisoMinimo E ValorBrutoCalculado < Config.ValorPisoMinimo ENTÃO ValorBrutoCalculado = Config.ValorPisoMinimo FIM_SE
ValorFinal439 = Func_ArredondamentoPadrao(ValorBrutoCalculado)
SE ValorFinal439 <= 0.0 E NAO Config.GravarVerbaZerada ENTÃO RETORNAR NULO FIM_SE
4. Gravação de Campos, Rubricas, Descrição Dinâmica e Acumuladores Fiscais (Natureza eSocial 1020)
RubricaTercoIsento = CriarVerbaHoleriteBO(“439”, “1/3 de Férias (Dif.) (isento INSS)”) RubricaTercoIsento.TipoVerba = “P”
RubricaTercoIsento.Quantidade = Func_ArredondamentoPadrao(BaseCalculoTercoDif) RubricaTercoIsento.ValorReferencia = Func_ArredondamentoPadrao(BaseCalculoTercoDif) RubricaTercoIsento.ValorTotal = ValorFinal439
Formatação Dinâmica de Descrição por Período Aquisitivo SE NumeroPeriodoFerias != NULO E NumeroPeriodoFerias > 0 ENTÃO RubricaTercoIsento.Descricao = String.Format(“{0} {1}º Período”, RubricaTercoIsento.Descricao, NumeroPeriodoFerias) FIM_SE
Encargos Sociais Conforme Metadados (INSS: Isento, FGTS: FEG, IRRF: FEG) SE Config.TributarINSS ENTÃO Holerite.AcumularBase(“BASE_INSS_FERIAS”, ValorFinal439) SENÃO Holerite.AcumularBase(“BASE_INSS_ISENTA_FERIAS”, ValorFinal439) FIM_SE
SE Config.TributarFGTS ENTÃO Holerite.AcumularBase(“BASE_FGTS_FERIAS”, ValorFinal439) SENÃO Holerite.AcumularBase(“BASE_FGTS_ISENTA”, ValorFinal439) FIM_SE
SE Config.TributarIRRF ENTÃO Holerite.AcumularBase(“BASE_IRRF_FERIAS”, ValorFinal439) SENÃO Holerite.AcumularBase(“BASE_IRRF_ISENTA”, ValorFinal439) FIM_SE
Repercussão de Reflexos: DSR e Médias (Sem DSR e Sem Médias) SE Config.ComporDSR E SysFunc_VerbaPossuiDSR(“439”) ENTÃO Holerite.AcumularBase(“BASE_HORAS_VARIAVEIS_DSR”, ValorFinal439) Func_DSR(“439”, “DSR s/ 1/3 Férias Isento”, “439”, ValorFinal439, RubricaTercoIsento, VERDADEIRO) FIM_SE
SE Config.IncorporaMedias ENTÃO Holerite.AcumularBase(“BASE_MEDIAS_13”, ValorFinal439) Holerite.AcumularBase(“BASE_MEDIAS_FERIAS”, ValorFinal439) Holerite.AcumularBase(“BASE_MEDIAS_RESCISAO”, ValorFinal439) FIM_SE
Holerite.ListaHoleriteVerba.Adicionar(RubricaTercoIsento)
Registro em memória de cálculo detalhada Argumento(“BASE_CALCULO_TERCO_DIF”, BaseCalculoTercoDif) Argumento(“PERIODO_FERIAS_IDENTIFICADO”, SE(NumeroPeriodoFerias != NULO, NumeroPeriodoFerias, 0)) Argumento(“VALOR_FINAL_439”, ValorFinal439)
EscreverMemoria(“TERCO_FERIAS_DIF_ISENTO_INSS”, String.Format(“1/3 Férias Dif. (Isento INSS): Base R$ {0} | Período: {1} | Valor Final R$ {2}”, BaseCalculoTercoDif.ToString(“N2”), SE(NumeroPeriodoFerias != NULO, NumeroPeriodoFerias, “N/A”), ValorFinal439.ToString(“N2”)))
RETORNAR RubricaTercoIsento
FIM
Parametrizações Propostas para Reestruturação
1. REGRAS DE ENTRADA E FILTROS DE ELEGIBILIDADE
[X] Exigir Parâmetro Ativo de Terço Férias Isento (VG_TercoFeG_IsentoINSS)
Tipos de Folha Permitidos …: [X] Férias [X] Rescisão [X] Complementar [ ] Regular
Modo Principal de Apuração …: [ Apuração Automática via Diferença de Férias v ] [ Apuração Automática via Diferença de Férias ] [ Lançamento Manual em Valor Direto ]
[ ] Exigir Filtro de Elegibilidade por Empresa / CNPJ
2. COMPOSIÇÃO DA BASE DE CÁLCULO DE DIFERENÇA
Verbas de Diferença/Gozadas Integrantes da Base:
[X] Verba 433 (Diferença de Férias Gozadas)
[X] Verba 434 (Diferença de Férias / Outros Proventos)
[X] Verba 435 (Diferença de Férias / Adicionais)
Outras Verbas Configuráveis …: [ ]
Fator do Terço Constitucional (%) …: [ 33,3333 % (ou Divisão por 3) ]
3. SUFIXO E FORMATAÇÃO DE TEXTO NA IMPRESSÃO
[X] Anexar Número do Período Aquisitivo na Descrição da Rubrica
Fonte de Captura do Período …: [ Verba 433 (ou primeira verba base encontrada) v ]
4. TRIBUTAÇÃO E ENVIOS ESOCIAL
Natureza eSocial …: [ 1020 - Férias v ]
Incidência INSS …: [ Isento (ISE) ]
Incidência FGTS …: [ Férias (FEG) ]
Incidência IRRF …: [ Férias (FEG) ]
Afeta DSR …: [ ] Sim [X] Não
Incorpora Médias …: [ ] Sim [X] Não
Clientes com mesma regra
- Regra Geral / Todos os Clientes: Todos os clientes que processam a verba 439 utilizam exatamente a mesma lógica operacional: interrupção do cálculo caso a chave
VG_TercoFeG_IsentoINSSseja falsa, somatório das verbas de base433,434e435, divisão do total acumulado por3e sufixação do número do período aquisitivo na descrição do evento a partir do histórico de origem do cálculo. O motor unificado consolida integralmente essa mecânica por meio da parametrização de base dinâmica e das chaves de exibição textual em tela.
Status Documental
- Status: Documentada
- Origem: export do Notion + catálogo da wiki
- Fonte rastreável:
30dc75ea2e838139a8f0c114ac6bf45e