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:
- A verba não será calculada (
return null) se a variávelVGP_ProvTransfSaidaMesSeguintefortrueou se a variávelVGP_Calcula_Provisaoforfalse. - Se o cálculo não for para um holerite simulado (
Solicitacao.HoleriteSimulado == false) ou se o tipo de folha forRescisaoComplementar, a verba retorna um objeto de provisão existente (HoleriteProvisao) e não executa o restante da lógica de cópia. - Para os demais casos, o sistema itera sobre a lista de verbas do holerite (
Holerite.ListaHoleriteVerba). - São selecionadas apenas as verbas com
ValorTotaldiferente de zero e cujoCodigoseja “575” (Média de Férias Prop. inden.) ou “585” (DSR Média Férias Prop. Inden.). - Para cada verba encontrada que atenda a esses critérios, um novo objeto de provisão (
HoleriteProvisaoBO) é criado. - Os dados da verba original (
FeInd) são copiados para o novo objeto de provisão:DescricaoFinal,MemoriaCalculo,Percentual,Quantidade,ValorIntegral(usandoValorReferenciada verba original) eValorTotal. - Se o
ValorTotaldo novo objeto de provisão for maior que zero, ele é adicionado à lista de provisões do holerite (this.Holerite.ListaHoleriteProvisao).
- A verba não será calculada (
-
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_ProvTransfSaidaMesSeguintefortrueouVGP_Calcula_Provisaoforfalse. - 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
HoleriteProvisaoexistente, ignorando a lógica de cópia das verbas 575/585. - Filtro de Verbas: Apenas verbas com código “575” ou “585” e
ValorTotaldiferente de zero são consideradas para a provisão. - Validação de Valor: A provisão é adicionada à lista apenas se seu
ValorTotalfor maior que zero.
- Condição de Saída Antecipada 1: A verba não é calculada se
🔗 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,ValorReferenciaeValorTotal). As travas operacionais de segurança (VGP_ProvTransfSaidaMesSeguinte,VGP_Calcula_Provisao,Solicitacao.HoleriteSimuladoeRescisaoComplementar) 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