329 - Dobra 1/3 de Férias Gozadas (IRRF)
⚙️ Metadados
- Código: 329
- Tipo: Provento
- INSS: ISE
- FGTS: ISE
- IRRF: FEG
- Natureza eSocial: 1024 - Férias - Dobro na vigência do contrato
- DSR: Não
- Médias: Não
- Impacto Financeiro: Não
- Impacto Contábil: Sim
- Sequência: 4058
🧮 Regra Geral
Lógica de Cálculo:
- A verba não possui lógica de cálculo própria neste código; seu valor é calculado na verba 326.
- Se o tipo de folha for Regular ou Rescisão, a função
SysFunc_ReceberLancamentoFuturoé acionada. - Se não houver lançamento existente para a verba (
Func_ValidarExistenciaLancamento(Lancamento) == false), a verba retornanull, indicando que não deve ser calculada ou processada.
-
Variáveis Utilizadas:
Empregador.CNPJEmpregadorLancamentoLancamento.ValorTotalSolicitacao.DataReferenciaSolicitacao.TipoFolhaHoleriteVerba.
-
Condições Especiais:
- Validação de existência de lançamento (
Func_ValidarExistenciaLancamento). - Verificação de valor total do lançamento ser maior que zero (
Lancamento.ValorTotal > 0M). - Verificação do tipo de folha ser Regular ou Rescisão (
Solicitacao.TipoFolha).
- Validação de existência de lançamento (
🧩 Funções
Func_ValidarExistenciaLancamento(Lancamento): Verifica se há um lançamento para a verba atual.SysFunc_NovaData(dia, mes, ano): Cria um objetoDateTimecom a data especificada.SysFunc_ReceberLancamentoFuturo(HoleriteVerba): Marca a verba para ser tratada como um lançamento futuro.
🎯 Particularidades por Cliente/Setor
👤 ACAL
-
Se houver um lançamento existente (
Func_ValidarExistenciaLancamento) e com valor positivo (Lancamento.ValorTotal > 0M), a verba é retornada com seu valor atual. -
Condições Especiais:
- Verificação de CNPJ para HCL (
Empregador.CNPJEmpregador.Trim().StartsWith("1056841400")).
- Verificação de CNPJ para HCL (
👤 FUNDACAOCOPEL
- Se houver um lançamento existente (
Func_ValidarExistenciaLancamento) e com valor positivo (Lancamento.ValorTotal > 0M), a verba é retornada com seu valor atual.
👤 GALLO
-
Se data de referência (
01/04/2024) e se houver um lançamento existente (Func_ValidarExistenciaLancamento) e com valor positivo (Lancamento.ValorTotal > 0M), a verba é retornada com seu valor atual. -
Condições Especiais:
- Condição de data de referência específica para GALLO (
Solicitacao.DataReferencia == SysFunc_NovaData(01, 04, 2024)).
- Condição de data de referência específica para GALLO (
👤 SALESFORCE
- Se houver um lançamento existente (
Func_ValidarExistenciaLancamento) e com valor positivo (Lancamento.ValorTotal > 0M), a verba é retornada com seu valor atual.
💡 Proposta de Novo Cálculo
Fórmula proposta (padronizada):
ValorTotal = Se(ModoApuracao == “VERBA_SISTEMA_ORIGEM”, Se(ValorVerbaOrigem > 0, Minimo(Se(ValorInformadoJaEOTerco, ValorVerbaOrigem, ValorVerbaOrigem * (1 / 3)), TetoMaximo), Se(PermitirFallbackManual E ValorLancado > 0, ValorLancado, 0.00)), Se(ValorLancado > 0, ValorLancado, 0.00))
1. Filtros de Elegibilidade e Isenções (Piso Seguro)
Se (Configuracao.RubricaInativa == Verdadeiro OU Solicitacao.HoleriteSimulado == Verdadeiro OU Solicitacao.TipoProcesso == EnumTipoProcessoBO.Provisoes) { HoleriteVerba = null; InterromperCalculo(); }
Restrição por Tipo de Folha Processada Se (Configuracao.ListaTiposFolhaPermitidos.Tamanho > 0 E Nao Configuracao.ListaTiposFolhaPermitidos.Contem(Solicitacao.TipoFolha)) { EscreverMemoria(“[DOBRA_TERCO_FERIAS_GOZADAS_IRRF]”, “Cálculo interrompido: Tipo de folha (” + Solicitacao.TipoFolha + ”) não habilitado.”); HoleriteVerba = null; InterromperCalculo(); }
2. Determinação da Base de Cálculo, Apuração Externa e Fallback de Lançamento
Definir PossuiLancamentoManual = Func_ValidarExistenciaLancamento(Lancamento); Definir ValorBaseCalculo = 0.00; Definir QuantidadeDiasDobra = 0.00;
Se (Configuracao.ModoApuracao == “VERBA_SISTEMA_ORIGEM”) { Apuração via verba de origem (ex: Rubrica 326) ou Variável Global de cálculo prévio Definir ValorOrigem = Positivo(RecuperarValorTotalVerba(Configuracao.CodigoRubricaOrigemCalculo));
Se (ValorOrigem > 0.00) { ValorBaseCalculo = ValorOrigem; QuantidadeDiasDobra = Positivo(RecuperarQuantidadeVerba(Configuracao.CodigoRubricaOrigemCalculo)); } Senao Se (Configuracao.PermitirFallbackManual == Verdadeiro E PossuiLancamentoManual == Verdadeiro) { ValorBaseCalculo = Positivo(Lancamento.ValorTotal); QuantidadeDiasDobra = Positivo(Lancamento.Quantidade); } } Senao Se (Configuracao.ModoApuracao == “LANCAMENTO_MANUAL_FUTURO”) { Se (PossuiLancamentoManual == Verdadeiro E Lancamento.ValorTotal > 0.00) { ValorBaseCalculo = Positivo(Lancamento.ValorTotal); QuantidadeDiasDobra = Positivo(Lancamento.Quantidade); } Senao { EscreverMemoria(“[DOBRA_TERCO_FERIAS_GOZADAS_IRRF]”, “Cálculo interrompido: Nenhum lançamento válido encontrado.”); HoleriteVerba = null; InterromperCalculo(); } }
Se (ValorBaseCalculo <= 0.00) { EscreverMemoria(“[DOBRA_TERCO_FERIAS_GOZADAS_IRRF]”, “Cálculo interrompido: Valor base apurado nulo ou negativo.”); HoleriteVerba = null; InterromperCalculo(); }
3. Aplicação de Regras de Percentual e Tetos Configuráveis
Definir ValorProventoApurado = 0.00;
Se (Configuracao.ValorInformadoJaEOTerco == Verdadeiro) { ValorProventoApurado = ValorBaseCalculo; } Senao { Definir PercentualTerco = Configuracao.PercentualTercoConstitucional ?? (1.00 / 3.00); ValorProventoApurado = ValorBaseCalculo * PercentualTerco; }
Tratamento de Teto e Piso Se (Configuracao.AplicarTetoMaximo == Verdadeiro E Configuracao.ValorTetoMaximo > 0.00) { Se (ValorProventoApurado > Configuracao.ValorTetoMaximo) { ValorProventoApurado = Configuracao.ValorTetoMaximo; } }
Definir ValorProventoFinal = Func_ArredondamentoPadrao(ValorProventoApurado);
Se (ValorProventoFinal <= 0.00) { HoleriteVerba = null; InterromperCalculo(); }
4. Gravação de Campos, Truncamento de Lançamento Futuro e Disparo de Incidências
RubricaGerada = CriarInstanciaRubrica(Configuracao.CodigoRubricaDestino); RubricaGerada.Quantidade = QuantidadeDiasDobra; RubricaGerada.ValorReferencia = ValorBaseCalculo; RubricaGerada.ValorTotal = Positivo(ValorProventoFinal);
Tratamento para Agendamento/Tratamento de Lançamento Futuro Se (Configuracao.ProcessarComoLancamentoFuturo == Verdadeiro E (Solicitacao.TipoFolha == EnumTipoFolhaBO.Regular OU Solicitacao.TipoFolha == EnumTipoFolhaBO.Rescisao)) { SysFunc_ReceberLancamentoFuturo(RubricaGerada); }
Enquadramento Fiscal Conforme Metadados (Tributação Exclusiva de IRRF na Folha de Férias Gozadas) RubricaGerada.IncideINSS = EnumIncidencia.ISENTO; RubricaGerada.IncideFGTS = EnumIncidencia.ISENTO; RubricaGerada.IncideIRRF = EnumIncidencia.FERIAS_GOZADAS;
AdicionarAoHolerite(RubricaGerada);
Gravação da Memória de Cálculo EscreverMemoria(“[DOBRA_TERCO_FERIAS_GOZADAS_IRRF]”, “Dobra do 1/3 de Férias Gozadas (IRRF) calculada com sucesso. Valor: R$ ” + RubricaGerada.ValorTotal);
Parametrizações Propostas para Reestruturação
1. REGRAS DE ENTRADA E FONTE DE DADOS
[ ] Inativar Rubrica (Desativa o cálculo globalmente) Modo de Apuração da Base de Cálculo: ( ) VERBA_SISTEMA_ORIGEM (Calculado/Importado a partir de outra rubrica) └─ Código da Rubrica de Origem: [ 326 ] (X) LANCAMENTO_MANUAL_FUTURO (Lançamento manual direto com tratamento futuro)
[X] Considerar que o Valor Informado/Originado JÁ É o valor do Terço (1/3) └─ (Se desmarcado, o sistema aplicará 1/3 sobre o valor de referência) [X] Permitir Fallback de Lançamento Manual caso a Apuração via Origem retorne zero [X] Interromper Processamento se o Valor Resultante For Igual a Zero (0,00)
2. DIRETRIZES DE TRATAMENTO FUTURO E PROCESSAMENTO
[X] Acionar Mecanismo de Lançamento Futuro (SysFunc_ReceberLancamentoFuturo) └─ Aplicado para os Tipos de Folha: Regular / Mensal e Rescisão / Desligamento [ ] Restringir Processamento por Intervalo de Datas de Referência ├─ Data Inicial: [ / / ] └─ Data Final: [ / / ]
3. TRATAMENTO DE LIMITES E TETOS
Percentual do Terço Constitucional: [ 33,3333 ] % [ ] Aplicar Limitador / Teto Máximo de Valor └─ Valor Teto Máximo Permitido: R$ [ 0,00 ]
4. AMBIENTE E TIPOS DE FOLHA PERMITIDOS
Tipos de Processamento Habilitados: [X] Regular / Mensal [ ] Férias / Adiantamento de Férias [X] Rescisão / Desligamento [ ] Complementar / Retroativa
5. ENCARGOS E ENQUADRAMENTO FISCAL
Enquadramento Fiscal eSocial (Natureza 1024 - Férias - Dobro na vigência do contrato): INSS: [ ISE - Isento ] FGTS: [ ISE - Isento ] IRRF: [ FEG - Férias Gozadas ]
Clientes com mesma regra
- Clientes Padrão e Grupo de Validação Geral: A regra geral determinava que o valor da verba era oriundo de cálculo/origem da verba
326ou mantido por lançamento manual tratado comSysFunc_ReceberLancamentoFuturopara as folhas Regular e Rescisão. No motor dynamic, esses clientes são atendidos configurandoModo de ApuraçãocomoLANCAMENTO_MANUAL_FUTURO(ouVERBA_SISTEMA_ORIGEMvinculada à verba326) com a flagAcionar Mecanismo de Lançamento Futuroativada. - ACAL (Regra por CNPJ / HCL): A validação legada via hardcode do CNPJ da HCL (
Empregador.CNPJEmpregador.Trim().StartsWith("1056841400")) para validar lançamentos manuais positivos é totalmente absorvida pelo parâmetro unificado de entrada e elegibilidade de lançamento manual (PossuiLancamentoManual == Verdadeiro E Lancamento.ValorTotal > 0), sem necessidade de checagem de string de CNPJ. - FUNDACAOCOPEL e SALESFORCE: Tratados de forma nativa pela chave
LANCAMENTO_MANUAL_FUTUROque verifica a existência do lançamento positivo (Lancamento.ValorTotal > 0) e executa o retorno da rubrica sem desvios de código. - GALLO (Validação Temporal por Data de Referência): A trava por código em data fixa (
Solicitacao.DataReferencia == SysFunc_NovaData(01, 04, 2024)) foi convertida na funcionalidade parametrizável do painelRestringir Processamento por Intervalo de Datas de Referência. Ao preencher as datas limite na interface de configuração do cliente, o motor habilita ou desabilita o processamento automaticamente sem necessidade de alteração no fonte.
Status Documental
- Status: Documentada
- Origem: export do Notion + catálogo da wiki
- Fonte rastreável:
30dc75ea2e838139a8f0c114ac6bf45e