Wiki / SuperCalculo ~6 min

127 - Bolsa-Auxílio - Recesso Inden.

⚙️ Metadados

  • Código: 127
  • Tipo: Provento
  • INSS: ISE
  • FGTS: ISE
  • IRRF: SAL
  • Natureza eSocial: 1350 - Bolsa de estudo - Estagiário
  • DSR: Não
  • Médias: Não
  • Impacto Financeiro: Não
  • Impacto Contábil: Sim
  • Sequência: 78

🧮 Regra Geral

N/A

🎯 Particularidades por Cliente/Setor

👤 Salesforce
  • Lógica de Cálculo:

    1. A verba é calculada apenas se o tipo de folha for Rescisão (Solicitacao.TipoFolha == EnumTipoFolhaBO.Rescisao).
    2. Identifica os períodos aquisitivos de recesso (ListaPeriodoAquisitivo) que não foram encerrados e possuem dias pendentes.
    3. Verifica se existe um último período aquisitivo (PA) com dias de direito zero ou dias pendentes zero, mas que ainda pode ser relevante para o cálculo (UltPADtaFim).
    4. Se houver períodos de recesso pendentes:
      • Itera sobre cada PeriodoAquisitivoBO (Calc_Recesso).
      • Se houver mais de um período de recesso (Recesso.Count() > 1):
        • A quantidade de dias pendentes (QtdDiasPendentes) inicia com Calc_Recesso.DiasPendentes.
        • Se for o último período de recesso, QtdDiasPendentes é fixado em 30 dias e subtraído dos dias de férias já gozados para esse PA.
      • Se houver apenas um período de recesso (Recesso.Count() == 1):
        • QtdDiasPendentes é fixado em 30 dias e subtraído dos dias de férias já gozados para esse PA.
      • Em ambos os casos, QtdDiasPendentes é então subtraído da soma das quantidades da verba 126 lançadas no mês atual (SysFunc_RecuperarSomaQuantidadeLancamentosMesAtual("126")).
      • Se QtdDiasPendentes for maior que zero, a verba 127 é criada com essa quantidade.
    5. Cálculo do Valor Total: Valor Total = Func_ArredondamentoPadrao((VG_VlrSalNom / 30M) * Quantidade)
    6. Cenário Adicional: Se UltPADtaFim for diferente de DateTime.MinValue e a data de rescisão do empregado for anterior a UltPADtaFim, uma verba 127 adicional é criada com 30 dias de quantidade, calculada com a mesma fórmula.
  • Fórmula matemática:

    • Valor Total = ArredondamentoPadrao((Salário Nominal ÷ 30) × Quantidade de Dias Pendentes)
  • Variáveis Utilizadas:

    • Solicitacao.TipoFolha
    • EnumTipoFolhaBO.Rescisao
    • Empregado.Historico.ListaPeriodoAquisitivo
    • pa.Encerrado, pa.DiasPendentes
    • pa.DiasDireito
    • c.DataFim
    • UltPADtaFim
    • Empregado.Rescisao.DataRescisao
    • Calc_Recesso.NumeroPeriodo
    • Empregado.Historico.ListaPeriodoFerias
    • f.DiasFerias
    • QtdDiasPendentes
    • VG_VlrSalNom.
  • Condições Especiais:

    • if (Solicitacao.TipoFolha == EnumTipoFolhaBO.Rescisao): Restringe o cálculo a rescisões.
    • if (c != null && (c.DiasDireito == 0M || (c.DiasDireito > 0M && c.DiasPendentes == 0M))): Condição específica para identificar UltPADtaFim em PAs sem dias de direito ou pendentes.
    • if (Recesso != null && Recesso.Count > 0): Garante que há períodos de recesso a serem processados.
    • if (Recesso.Count() > 1) e if (Recesso.Count() == 1): Diferencia a lógica de cálculo da quantidade de dias pendentes com base no número de períodos aquisitivos.
    • if (Recesso.LastOrDefault().DataInicio == Calc_Recesso.DataInicio): Aplica regra específica de 30 dias para o último período aquisitivo em caso de múltiplos períodos.
    • if (QtdDiasPendentes > 0M): A verba só é gerada se houver dias pendentes.
    • if (UltPADtaFim != DateTime.MinValue && Empregado.Rescisao.DataRescisao < UltPADtaFim): Condição para gerar verba com 30 dias se a rescisão ocorrer antes do fim de um PA específico.
  • Depências e Correlações:

    • Verbas Relacionadas: Verba 126.
    • Tipo de Relação: Dependência. A quantidade de dias da verba 127 é reduzida pela soma das quantidades da verba 126 lançadas no mês atual.
  • Funções Identificadas:

    • CriarVerbaHoleriteVerbaBO(codigo, HoleriteVerba.Verba.Descricao): Cria uma nova instância de verba para o holerite.
    • Func_ArredondamentoPadrao(decimal valor): Arredonda o valor calculado para o padrão do sistema.
    • SysFunc_RecuperarSomaQuantidadeLancamentosMesAtual("126"): Recupera a soma da quantidade de lançamentos da verba 126 no mês de cálculo.
    • Argumento(string valor): Utilizada para registrar os valores que compõem a memória de cálculo.
    • EscreverMemoria("[NORMAL]", string texto): Formata e registra a memória de cálculo da verba.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

ValorTotal = Arredondar((VG_VlrSalNom / 30) * TotalDiasIndenizar)


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

Definir EmpregadoElegivel = Falso;

Se (Solicitacao.TipoFolha == EnumTipoFolhaBO.Rescisao) { // Validação de categoria para garantir que se aplica apenas a Estagiários Se (Configuracao.ExigirCategoriaEstagiario == Verdadeiro) { Se (Empregado.Categoria == EnumCategoriaBO.Estagiario) { EmpregadoElegivel = Verdadeiro; } } Senao { EmpregadoElegivel = Verdadeiro; } }

Se (EmpregadoElegivel == Falso) { HoleriteVerba = null; InterromperCalculo(); }

2. Determinação da Base de Cálculo

Definir ValorBaseDiario = VG_VlrSalNom / 30.00; Definir TotalDiasIndenizar = 0.00;

3. Processamento dos Períodos Aquisitivos (PA) de Recesso

Definir ListaPA = Empregado.Historico.ListaPeriodoAquisitivo.Filtrar(pa => pa.Encerrado == Falso);

Se (ListaPA != null E ListaPA.Count > 0) { Definir TotalRegistros = ListaPA.Count; Definir IndiceAtual = 0;

Para Cada PA Em ListaPA { IndiceAtual = IndiceAtual + 1; Definir QtdDiasPendentes = 0.00;

Se (TotalRegistros > 1) { Se (IndiceAtual == TotalRegistros) { // Último período de recesso em múltiplos PAs Definir DiasGozados = Empregado.Historico.ListaPeriodoFerias .Filtrar(f => f.NumeroPeriodo == PA.NumeroPeriodo) .Somar(f => f.DiasFerias); QtdDiasPendentes = Configuracao.LimiteDiasPadraoPeriodo - DiasGozados; } Senao { QtdDiasPendentes = PA.DiasPendentes; } } Senao { // Apenas um período de recesso cadastrado Definir DiasGozados = Empregado.Historico.ListaPeriodoFerias .Filtrar(f => f.NumeroPeriodo == PA.NumeroPeriodo) .Somar(f => f.DiasFerias); QtdDiasPendentes = Configuracao.LimiteDiasPadraoPeriodo - DiasGozados; }

Abatimento de verbas concorrentes de gozo/recesso pagas na mesma folha (ex: Verba 126) Se (Configuracao.AbaterVerbasGozoAtivo == Verdadeiro) { Definir QtdPagaVerbaGozo = SysFunc_RecuperarSomaQuantidadeLancamentosMesAtual(Configuracao.CodigoVerbaGozoAbatimento); QtdDiasPendentes = QtdDiasPendentes - QtdPagaVerbaGozo; }

Se (QtdDiasPendentes > 0) { TotalDiasIndenizar = TotalDiasIndenizar + QtdDiasPendentes; } } }

4. Tratamento do Cenário Adicional de Rescisão Antecipada ao Fim do Período

Se (Configuracao.AtivarGarantiaRescisaoAntecipada == Verdadeiro) { Definir UltPA = Empregado.Historico.ListaPeriodoAquisitivo .Filtrar(pa => pa.DiasDireito == 0.00 Ou (pa.DiasDireito > 0.00 E pa.DiasPendentes == 0.00)) .UltimoOuPadrao();

Se (UltPA != null) { Definir UltPADtaFim = UltPA.DataFim; Se (UltPADtaFim != DateTime.MinValue E Empregado.Rescisao.DataRescisao < UltPADtaFim) { TotalDiasIndenizar = TotalDiasIndenizar + Configuracao.DiasGarantiaAdicional; } } }

5. Liquidação de Valores e Gravação do Holerite (INSS: ISE, FGTS: ISE, IRRF: SAL)

Se (TotalDiasIndenizar > 0) { HoleriteVerba.Quantidade = TotalDiasIndenizar; HoleriteVerba.ValorTotal = Func_ArredondamentoPadrao(ValorBaseDiario * TotalDiasIndenizar); HoleriteVerba.ValorIntegral = ValorBaseDiario * TotalDiasIndenizar;

HoleriteVerba.IncidenciaINSS = RubricaMae.IncidenciaINSS; // ISE HoleriteVerba.IncidenciaFGTS = RubricaMae.IncidenciaFGTS; // ISE HoleriteVerba.IncidenciaIRRF = RubricaMae.IncidenciaIRRF; // SAL

// Memória de Cálculo para Auditoria do Ministério do Trabalho Argumento(“Bolsa-Auxílio Mensal: ” + VG_VlrSalNom.ToString(“F2”)); Argumento(“Valor Diário: ” + ValorBaseDiario.ToString(“F2”)); Argumento(“Total de Dias de Recesso Indenizados: ” + TotalDiasIndenizar.ToString(“F2”)); Argumento(“Valor Total Calculado: ” + HoleriteVerba.ValorTotal.ToString(“F2”)); EscreverMemoria(“[RECESSO_INDENIZADO]”, “Valor da bolsa-auxílio de R$ {0}, dividido por 30, multiplicado pelo total de {1} dias de recesso indenizados na rescisão, totalizando R$ {3}.”);

AdicionarAoHolerite(HoleriteVerba); } Senao { HoleriteVerba = null; }

Parametrizações Propostas para Reestruturação

1. CONTROLE DE ELEGIBILIDADE E PERFIL DO CONTRATO

[X] Permitir Cálculo Exclusivo em Processos de Rescisão (TipoFolha = Rescisao) [X] Restringir Geração de Recesso para a Categoria de Estagiário (eSocial 901)

2. ARQUITETURA DE CRITÉRIOS DE DIAS DE DIREITO

Limite de Dias Padrão por Período Aquisitivo: [ 30 ] Dias

[X] Abater Quantidade de Dias de Recesso Gozado no Mês (Evitar Duplicidade) Código da Rubrica de Abatimento (Recesso Gozado): [ 126 ]

3. DIRETRIZES PARA RESCISÃO ANTECIPADA (GARANTIA ADICIONAL)

[X] Ativar Garantia de Pagamento por Rescisão Anterior ao Término do Contrato Quantidade de Dias de Garantia Adicional a Pagar: [ 30 ] Dias

4. MATRIX TRIBUTÁRIA ESOCIAL E ATRIBUTOS FISCAIS

Código da Rubrica Destino: [ 127 ] Natureza eSocial: [ 1350 - Bolsa Estagiário ] Incidência INSS: [ ISE - Isento ] DSR: [ Não ] Incidência FGTS: [ ISE - Isento ] Médias: [ Não ] Incidência IRRF: [ SAL - Salário ] Impacto Financeiro: [ Não ] Impacto Contábil: [ Sim ]

Clientes com mesma regra

  • Salesforce: Integralmente atendida e amparada pelo novo motor Dynamic. A varredura de múltiplos períodos aquisitivos abertos, a atribuição automática do teto de 30 dias deduzido das férias gozadas para o último registro (ou para o registro único), bem como a subtração dos lançamentos concorrentes da verba 126 (Bolsa-Auxílio - Recesso) no mês corrente, realizam-se perfeitamente através das parametrizações do Bloco 2. O comportamento de garantia de 30 dias adicionais na hipótese de rescisão antecipada em relação ao término do período aquisitivo é integralmente coberto pelo bloco 3 de parametrização de forma nativa.

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