Wiki / SuperCalculo ~8 min

2002 - Prov 1/3 Férias Prop.

⚙️ Metadados

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

🧮 Regra Geral

  • Lógica de Cálculo:

    1. A verba não será calculada (return null) se a variável VGP_ProvTransfSaidaMesSeguinte for true ou se a variável VGP_Calcula_Provisao for false.
    2. Se o cálculo não for para um holerite simulado (Solicitacao.HoleriteSimulado == false) ou se o tipo de folha for RescisaoComplementar, a verba retorna um objeto de provisão existente (HoleriteProvisao) e não executa o restante da lógica de cópia.
    3. Para os demais casos, o sistema itera sobre a lista de verbas do holerite (Holerite.ListaHoleriteVerba).
    4. São selecionadas apenas as verbas com ValorTotal diferente de zero e cujo Codigo seja “575” (Média de Férias Prop. inden.) ou “585” (DSR Média Férias Prop. Inden.).
    5. Para cada verba encontrada que atenda a esses critérios, um novo objeto de provisão (HoleriteProvisaoBO) é criado.
    6. Os dados da verba original (FeInd) são copiados para o novo objeto de provisão: DescricaoFinal, MemoriaCalculo, Percentual, Quantidade, ValorIntegral (usando ValorReferencia da verba original) e ValorTotal.
    7. Se o ValorTotal do novo objeto de provisão for maior que zero, ele é adicionado à lista de provisões do holerite (this.Holerite.ListaHoleriteProvisao).
  • Variáveis Utilizadas:

    • VGP_ProvTransfSaidaMesSeguinte: Variável booleana que controla a execução da provisão.
    • VGP_Calcula_Provisao: Variável booleana que indica se a provisão deve ser calculada.
    • Solicitacao.HoleriteSimulado: Booleano que indica se o holerite é uma simulação.
    • Solicitacao.TipoFolha: Enumeração que indica o tipo de folha (ex: EnumTipoFolhaBO.RescisaoComplementar).
    • Holerite.ListaHoleriteVerba: Lista de verbas já calculadas no holerite.
    • v.Verba.Codigo: Código da verba sendo iterada.
    • FeInd.ValorTotal: Valor total da verba relacionada.
    • FeInd.ValorReferencia: Valor de referência da verba relacionada.
    • HoleriteProvisao: Objeto de provisão que pode ser retornado em certas condições.
  • Condições Especiais:

    • Condição de Saída Antecipada 1: A verba não é calculada se VGP_ProvTransfSaidaMesSeguinte for true ou VGP_Calcula_Provisao for false.
    • Condição de Saída Antecipada 2: Se o holerite não for simulado ou for uma rescisão complementar, a verba retorna um objeto HoleriteProvisao existente, ignorando a lógica de cópia das verbas 575/585.
    • Filtro de Verbas: Apenas verbas com código “575” ou “585” e ValorTotal diferente de zero são consideradas para a provisão.
    • Validação de Valor: A provisão é adicionada à lista apenas se seu ValorTotal for maior que zero.

🔗 Dependências

  • Verbas Relacionadas:
    • 575: Média de Férias Prop. inden.
    • 585: DSR Média Férias Prop. Inden.
  • Tipo de Relação: Dependência e Geração. Esta verba depende dos valores calculados nas verbas 575 e 585. Ela gera novos itens de provisão (HoleriteProvisaoBO) com base nos dados dessas verbas.

🧩 Funções

  • CriarVerbaHoleriteProvisaoBO(codigo, descricao, Lancamento): Função interna utilizada para instanciar um novo objeto de provisão (HoleriteProvisaoBO) com os parâmetros básicos.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

Soma_Bases_Origem = SOMA(Verba.ValorTotal PARA CADA Verba EM [575, 585] ONDE Verba.ValorTotal > 0)

Valor_Verba_2002 = SE(Habilitada E VGP_Calcula_Provisao E NOT VGP_ProvTransfSaidaMesSeguinte E (EhHoleriteSimulado E NOT RescisaoComplementar) E Soma_Bases_Origem >= Piso_Minimo, ARREDONDAR(SE(ModoEspelhamento, Soma_Bases_Origem, Soma_Bases_Origem * (1 / 3))), 0)


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

SE NOT tabela_parametros.obter_flag(“HABILITAR_VERBA_2002”) ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 2002 desabilitada em parâmetros gerais.”) RETORNAR_VALOR(NULO) FIM_SE

SE holerite_atual.obter_variavel_global(“VGP_ProvTransfSaidaMesSeguinte”) ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 2002 ignorada: Indicador de transferência de saída no mês seguinte ativo.”) RETORNAR_VALOR(NULO) FIM_SE

SE NOT holerite_atual.obter_variavel_global(“VGP_Calcula_Provisao”) ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 2002 ignorada: Flag global de cálculo de provisão desativada.”) RETORNAR_VALOR(NULO) FIM_SE

Validação de contextos de execução e tipos de processamento SE NOT holerite_atual.eh_holerite_simulado OU holerite_atual.tipo_processamento == ENUM_TIPO_PROCESSAMENTO.RESCISAO_COMPLEMENTAR ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 2002 mantida com estado anterior: Holerite não simulado ou Rescisão Complementar.”) RETORNAR_VALOR(holerite_atual.obter_provisao_existente(“2002”)) FIM_SE

2. Determinação da Base de Cálculo, Mapeamento de Origens e Iteração

codigos_verbas_origem = tabela_parametros.obter_lista_strings(“CODIGOS_VERBAS_ORIGEM_TERCO”) // Padrão: [“521”, “576”, “586”] ou cálculo derivado fator_terco = tabela_parametros.obter_valor_decimal(“FATOR_TERCO_CONSTITUCIONAL”) // Padrão: 1/3 (0.3333333) piso_minimo = tabela_parametros.obter_valor_decimal(“PISO_MINIMO_VERBA_2002”) soma_total_provisao = 0.00 qtd_rubricas_processadas = 0

Modo 1: Espelhamento Direto de Verbas Origem de Terço SE tabela_parametros.obter_enum(“MODO_CALCULO_TERCO”) == ENUM_MODO_TERCO.ESPELHAMENTO_DIRETO ENTAO PARA CADA codigo_origem EM codigos_verbas_origem FACA verba_origem = holerite_atual.obter_instancia_verba(codigo_origem)

SE verba_origem != NULO E verba_origem.valor_total > 0.00 ENTAO valor_apurado = ARREDONDAR_PADRAO(verba_origem.valor_total)

SE valor_apurado >= piso_minimo ENTAO SE tabela_parametros.obter_flag(“GERAR_PROVISAO_DESMEMBRADA_POR_ORIGEM”) ENTAO instancia_provisao_item = holerite_atual.criar_instancia_provisao(“2002_” + codigo_origem) instancia_provisao_item.descricao_final = “Prov 1/3 - ” + verba_origem.descricao_final instancia_provisao_item.memoria_calculo = verba_origem.memoria_calculo instancia_provisao_item.percentual = verba_origem.percentual instancia_provisao_item.quantidade = verba_origem.quantidade instancia_provisao_item.valor_integral = verba_origem.valor_referencia instancia_provisao_item.valor_total = valor_apurado

instancia_provisao_item.incidencia_inss = ENUM_INCIDENCIA.ISENTO instancia_provisao_item.incidencia_fgts = ENUM_INCIDENCIA.ISENTO instancia_provisao_item.incidencia_irrf = ENUM_INCIDENCIA.ISENTO

holerite_atual.adicionar_verba_provisao(instancia_provisao_item) FIM_SE

soma_total_provisao = soma_total_provisao + valor_apurado qtd_rubricas_processadas = qtd_rubricas_processadas + 1 FIM_SE FIM_SE FIM_PARA

Modo 2: Aplicação do Fator 1/3 sobre Verbas Base (ex: 500, 575, 585) SENAO codigos_verbas_base = tabela_parametros.obter_lista_strings(“CODIGOS_VERBAS_BASE_PARA_TERCO”) PARA CADA codigo_base EM codigos_verbas_base FACA verba_base = holerite_atual.obter_instancia_verba(codigo_base)

SE verba_base != NULO E verba_base.valor_total > 0.00 ENTAO valor_terco_item = ARREDONDAR_PADRAO(verba_base.valor_total * fator_terco)

SE valor_terco_item >= piso_minimo ENTAO SE tabela_parametros.obter_flag(“GERAR_PROVISAO_DESMEMBRADA_POR_ORIGEM”) ENTAO instancia_provisao_item = holerite_atual.criar_instancia_provisao(“2002_” + codigo_base) instancia_provisao_item.descricao_final = “Prov 1/3 sobre ” + verba_base.descricao_final instancia_provisao_item.memoria_calculo = “Cálculo de 1/3 sobre verba ” + codigo_base instancia_provisao_item.quantidade = verba_base.quantidade instancia_provisao_item.valor_integral = verba_base.valor_total instancia_provisao_item.valor_total = valor_terco_item

instancia_provisao_item.incidencia_inss = ENUM_INCIDENCIA.ISENTO instancia_provisao_item.incidencia_fgts = ENUM_INCIDENCIA.ISENTO instancia_provisao_item.incidencia_irrf = ENUM_INCIDENCIA.ISENTO

holerite_atual.adicionar_verba_provisao(instancia_provisao_item) FIM_SE

soma_total_provisao = soma_total_provisao + valor_terco_item qtd_rubricas_processadas = qtd_rubricas_processadas + 1 FIM_SE FIM_SE FIM_PARA FIM_SE

SE soma_total_provisao <= 0.00 OU qtd_rubricas_processadas == 0 ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 2002 encerrada: Nenhuma verba de origem encontrada com valor válido para apuração do terço.”) RETORNAR_VALOR(NULO) FIM_SE

3. Aplicação de Limites e Gravação Agrupada (se desmembrada == FALSE)

SE NOT tabela_parametros.obter_flag(“GERAR_PROVISAO_DESMEMBRADA_POR_ORIGEM”) ENTAO instancia_provisao_agrupada = holerite_atual.criar_instancia_provisao(“2002”)

SE TEXTO_NAO_VAZIO(tabela_parametros.obter_string(“TEXTO_DESCRICAO_PERSONALIZADA”)) ENTAO instancia_provisao_agrupada.descricao_final = tabela_parametros.obter_string(“TEXTO_DESCRICAO_PERSONALIZADA”) SENAO instancia_provisao_agrupada.descricao_final = “Prov 1/3 Férias Prop.” FIM_SE

instancia_provisao_agrupada.valor_total = ARREDONDAR_PADRAO(soma_total_provisao) instancia_provisao_agrupada.incidencia_inss = ENUM_INCIDENCIA.ISENTO instancia_provisao_agrupada.incidencia_fgts = ENUM_INCIDENCIA.ISENTO instancia_provisao_agrupada.incidencia_irrf = ENUM_INCIDENCIA.ISENTO

holerite_atual.adicionar_verba_provisao(instancia_provisao_agrupada) FIM_SE

4. Disparo Opcional de Encargos Patronais Correlacionados (INSS / FGTS sobre 1/3 de Provisão)

SE tabela_parametros.obter_flag(“GERAR_ENCARGOS_PATRONAIS_SOBRE_PROVISAO”) ENTAO codigo_provisao_encargo = tabela_parametros.obter_string(“CODIGO_VERBA_PROVISAO_ENCARGO”) aliquota_encargo = tabela_parametros.obter_valor_decimal(“ALIQUOTA_ENCARGO_PATRONAL”)

instancia_encargo = holerite_atual.criar_instancia_provisao(codigo_provisao_encargo) instancia_encargo.descricao_final = “Prov Encargos s/ 1/3 Férias Prop.” instancia_encargo.valor_total = ARREDONDAR_PADRAO(soma_total_provisao * (aliquota_encargo / 100.00)) holerite_atual.adicionar_verba_provisao(instancia_encargo) FIM_SE

REGISTRAR_MEMORIA_CALCULO(“Verba 2002 - Prov 1/3 Férias Prop. | Total Processado: R$ ” + CONVERTER_PARA_TEXTO(soma_total_provisao) + ” | Origens Processadas: ” + CONVERTER_PARA_TEXTO(qtd_rubricas_processadas))

RETORNAR_VALOR(NULO) FIM_FUNCAO


Parametrizações Propostas para Reestruturação

1. REGRAS DE ELEGIBILIDADE E PROCESSAMENTO

[X] Habilitar Processamento da Verba 2002

[X] Respeitar Flag Global de Cálculo de Provisão (VGP_Calcula_Provisao)

[X] Abortar em Transferência de Saída no Mês Seguinte (VGP_ProvTransfSaidaMesSeguinte)

Permitir Processamento Apenas em Holerite Simulado:

[X] SIM (Ignorar regravação e manter estado existente se Não Simulado)

Exceções de Tipos de Folha (Retornar Estado Existente):

[X] Rescisão Complementar [ ] Rescisão Normal

[ ] Folha Mensal [ ] 13º Salário

2. REGRA DE MAPEAMENTO, ORIGENS E MODO DE CÁLCULO

Modo de Apuração do Terço Constitutional:

(X) Espelhamento Direto de Verbas de Terço Já Calculadas

( ) Aplicação do Fator (1/3) sobre Verbas Base de Férias/Médias

Lista de Códigos de Verbas Origem …: [ 575, 585 ]

Fator de Divisão / Multiplicação …: [ 0,3333333 ] (Fator 1/3)

Piso Mínimo para Gravação por Item (R$) …: [ 0,01 ]

Modo de Geracao da Provisao:

(X) Espelhar / Desmembrar Itens Individuais (Copia Quantidade, Ref e Memória)

( ) Agrupar em Única Rubrica Consolidadora (Verba 2002)

3. ENCARGOS PATRONAIS E PROVISÕES CORRELACIONADAS

[ ] Gerar Provisão Automática de Encargos Patronais sobre 1/3

├─ Código Verba Provisão Encargo …: [ 2012 - Prov Encargos s/ 1/3 Prop. v ]

└─ Alíquota do Encargo Patronal (%) …: [ 26,8000 ] %

4. EXIBIÇÃO, IMPACTOS E ENCARGOS ESOCIAL

Tipo de Arredondamento / Truncamento …: [ Arredondamento Padrão (2 Decimais) v ]

[X] Permitir Sobregravação de Descrição no Holerite via Configuração

└─ Descrição Personalizada …: [ Prov 1/3 Férias Prop. ]

Impacto Financeiro …: [ Não ]

Impacto Contábil …: [ Sim ]

Incidência INSS: [ 00 - Não é Base de Cálculo (Isento) v ]

Incidência IRRF: [ 00 - Não é Base de Cálculo (Isento) v ]

Incidência FGTS: [ 00 - Não é Base de Cálculo (Isento) v ]

Natureza eSocial: [ Isento / Não Aplicável v ]

Clientes com mesma regra

  • Regra Geral / Todos os Clientes: O fluxo parametrizado preserva a lógica original de varredura e cópia das rubricas de médias (575 e 585) com extração de metadados (DescricaoFinal, MemoriaCalculo, Percentual, Quantidade, ValorReferencia e ValorTotal). As travas operacionais de segurança (VGP_ProvTransfSaidaMesSeguinte, VGP_Calcula_Provisao, Solicitacao.HoleriteSimulado e RescisaoComplementar) continuam sendo validadas no início do processo, mantendo total paridade funcional com o legado.

Status Documental

  • Status: Documentada
  • Origem: export do Notion + catálogo da wiki
  • Fonte rastreável: 30dc75ea2e83812196b1d38e0b70f111

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