2728 - Prov Ajuste Enc. PIS 13º Sal. -
⚙️ Metadados
- Código: 2728
- 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: 473
🧮 Regra Geral
-
Lógica de Cálculo:
- Verificação de Condições de Saída: O cálculo é interrompido (
return null) se a variável globalVGP_ProvTransfSaidaMesSeguintefortrueOU se a variável globalVGP_PIS_sobre_Folhaforfalse. - Cálculo do Valor Base: O valor é determinado pela soma e subtração de valores de provisão de outras verbas:
- Soma dos valores provisionados das verbas
2722(Prov Enc. PIS 13º Sal. Acum.),2724(Prov Baixa Transf. Enc. PIS 13º Sal. Acum.) e2723(Prov Baixa Enc. PIS 13º Sal.). - Subtração dos valores provisionados das verbas
2726(Prov Enc. PIS 13º Sal. Mês Atual),2721(Prov Enc. PIS 13º Sal. Acum. Mês Ant.) e2725(Prov Receb. Transf. Enc. PIS 13º Sal. Acum.).
- Soma dos valores provisionados das verbas
- Tratamento de Valor Negativo: Se o
valorcalculado for menor que zero, ele é arredondado (Func_ArredondamentoPadrao) e, em seguida, transformado em positivo (Positivo) antes de ser atribuído aHoleriteProvisao.ValorTotal. Se ovalorfor zero ou positivo,HoleriteProvisao.ValorTotalnão é explicitamente atribuído por este bloco de código.
- Verificação de Condições de Saída: O cálculo é interrompido (
-
Fórmula matemática:
valor = RecuperarValorProvisao("2722") + RecuperarValorProvisao("2724") + RecuperarValorProvisao("2723") - RecuperarValorProvisao("2726") - RecuperarValorProvisao("2721") - RecuperarValorProvisao("2725")
-
Variáveis Utilizadas:
VGP_ProvTransfSaidaMesSeguinte: Variável global booleana que indica se há provisão de transferência de saída para o mês seguinte.VGP_PIS_sobre_Folha: Variável global booleana que indica se o PIS incide sobre a folha.valor: Variável localdecimalque armazena o resultado intermediário do cálculo.HoleriteProvisao.ValorTotal: Variável de saída que armazena o valor final da provisão.
-
Condições Especiais:
if (VGP_ProvTransfSaidaMesSeguinte == true || VGP_PIS_sobre_Folha == false): Condição de guarda que interrompe o cálculo se a provisão de transferência de saída estiver ativa ou se o PIS não incidir sobre a folha.if (valor < 0M): Condição que aplica o arredondamento e a conversão para valor positivo apenas se o resultado do cálculo for negativo.
🔗 Dependências
- Verbas Relacionadas:
2722(Prov Enc. PIS 13º Sal. Acum.)2724(Prov Baixa Transf. Enc. PIS 13º Sal. Acum.)2723(Prov Baixa Enc. PIS 13º Sal.)2726(Prov Enc. PIS 13º Sal. Mês Atual)2721(Prov Enc. PIS 13º Sal. Acum. Mês Ant.)2725(Prov Receb. Transf. Enc. PIS 13º Sal. Acum.)
- Tipo de Relação: Dependência. O cálculo da verba 2728 depende diretamente dos valores previamente calculados e provisionados das verbas listadas.
🧩 Funções
-
RecuperarValorProvisao(string codigoVerba): Recupera o valor provisionado de uma verba específica.Positivo(decimal valor): Retorna o valor absoluto (positivo) de um número.Func_ArredondamentoPadrao(decimal valor): Arredonda o valor conforme o padrão do sistema.
💡 Proposta de Novo Cálculo
Fórmula proposta (padronizada):
HoleriteProvisao(2728).ValorTotal = (HABILITAR_VERBA_2728 == VERDADEIRO E VGP_PIS_sobre_Folha == VERDADEIRO E VGP_ProvTransfSaidaMesSeguinte == FALSO E TipoVinculo NOT IN TIPOS_VINCULO_EXCLUIDOS E (RecuperarValorProvisao(2722) + RecuperarValorProvisao(2724) + RecuperarValorProvisao(2723) - RecuperarValorProvisao(2726) - RecuperarValorProvisao(2721) - RecuperarValorProvisao(2725)) < 0) ? ARRED_PADRAO(ABS(RecuperarValorProvisao(2722) + RecuperarValorProvisao(2724) + RecuperarValorProvisao(2723) - RecuperarValorProvisao(2726) - RecuperarValorProvisao(2721) - RecuperarValorProvisao(2725))) : 0
1. Filtros de Elegibilidade e Isenções (Piso Seguro)
SE NOT tabela_parametros.obter_flag(“HABILITAR_VERBA_2728”) ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 2728 desabilitada em parâmetros gerais.”) RETORNAR_VALOR(NULO) FIM_SE
Validação da variável global de recolhimento de PIS sobre Folha tem_pis_folha = holerite_atual.obter_variavel_global_booleana_default(“VGP_PIS_sobre_Folha”, FALSO) SE NOT tem_pis_folha ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 2728 interrompida: VGP_PIS_sobre_Folha é FALSO.”) RETORNAR_VALOR(NULO) FIM_SE
Interrompe processamento em caso de transferência de saída para mês seguinte SE holerite_atual.obter_variavel_global_booleana_default(“VGP_ProvTransfSaidaMesSeguinte”, FALSO) ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 2728 interrompida: VGP_ProvTransfSaidaMesSeguinte ativo.”) RETORNAR_VALOR(NULO) FIM_SE
Validação Dinâmica de Exclusão por Tipo de Vínculo tipos_vinculo_bloqueados = tabela_parametros.obter_lista_string(“TIPOS_VINCULO_EXCLUIDOS”) SE tipos_vinculo_bloqueados.contem(colaborador.tipo_vinculo) ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 2728 ignorada: Tipo de vínculo ’” + CONVERTER_PARA_TEXTO(colaborador.tipo_vinculo) + ”’ excluído.”) RETORNAR_VALOR(NULO) FIM_SE
2. Determinação dos Componentes de Ajuste (Adições e Subtrações)
Recuperação parametrizada das listas de verbas de adição e subtração lista_cod_somar = tabela_parametros.obter_lista_string(“VERBAS_PROVISAO_SOMAR”) // Padrão: [“2722”, “2724”, “2723”] lista_cod_subtrair = tabela_parametros.obter_lista_string(“VERBAS_PROVISAO_SUBTRAIR”) // Padrão: [“2726”, “2721”, “2725”]
soma_provisoes_positivas = 0.00 PARA CADA cod_verba EM lista_cod_somar FAÇA soma_provisoes_positivas = soma_provisoes_positivas + holerite_atual.recuperar_valor_provisao(cod_verba) FIM_PARA
soma_provisoes_negativas = 0.00 PARA CADA cod_verba EM lista_cod_subtrair FAÇA soma_provisoes_negativas = soma_provisoes_negativas + holerite_atual.recuperar_valor_provisao(cod_verba) FIM_PARA
3. Aplicação da Equação de Ajuste Negativo e Módulo/Inversão de Sinal
resultado_bruto = soma_provisoes_positivas - soma_provisoes_negativas
A verba de ajuste negativo só deve ser gerada se o resultado do confronto for menor que zero SE resultado_bruto >= 0.00 ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 2728 interrompida: Ajuste calculado de PIS 13º Salário não é negativo (Resultado: R$ ” + CONVERTER_PARA_TEXTO(resultado_bruto) + ”).”) RETORNAR_VALOR(NULO) FIM_SE
Conversão do valor negativo apurado para módulo (positivo) antes do salvamento valor_final = ARREDONDAR_PADRAO(OBTER_VALOR_ABSOLUTO(resultado_bruto))
4. Instanciação e Gravação da Provisão
instancia_provisao = holerite_atual.criar_instancia_provisao(“2728”) instancia_provisao.descricao_final = tabela_parametros.obter_string_default(“TEXTO_DESCRICAO”, “Prov Ajuste Enc. PIS 13º Sal. -”) instancia_provisao.quantidade = 0.00 instancia_provisao.valor_integral = valor_final instancia_provisao.valor_total = valor_final
instancia_provisao.incidencia_inss = ENUM_INCIDENCIA.ISENTO instancia_provisao.incidencia_fgts = ENUM_INCIDENCIA.ISENTO instancia_provisao.incidencia_irrf = ENUM_INCIDENCIA.ISENTO
memoria_calculo = “Cálculo Dynamic de Ajuste Negativo de Encargos PIS sobre 13º Salário” + ” | Verbas Somadas (Crédito): R$ ” + CONVERTER_PARA_TEXTO(soma_provisoes_positivas) + ” | Verbas Subtraídas (Débito): R$ ” + CONVERTER_PARA_TEXTO(soma_provisoes_negativas) + ” | Saldo Devedor Apurado: R$ ” + CONVERTER_PARA_TEXTO(resultado_bruto) + ” | Valor Módulo Final Gravado: R$ ” + CONVERTER_PARA_TEXTO(valor_final)
instancia_provisao.memoria_calculo = memoria_calculo holerite_atual.adicionar_verba_provisao(instancia_provisao)
REGISTRAR_LOG_INFORMATIVO(“Verba 2728 concluída com sucesso. Valor Total Ajuste Negativo PIS 13º: R$ ” + CONVERTER_PARA_TEXTO(valor_final))
RETORNAR_VALOR(instancia_provisao) FIM_FUNCAO
Parametrizações Propostas para Reestruturação
1. REGRAS DE ELEGIBILIDADE E REGIME DE EXECUÇÃO
[X] Habilitar Processamento da Verba 2728
[X] Exigir Flag Ativo de PIS sobre Folha (VGP_PIS_sobre_Folha = VERDADEIRO)
[X] Interromper quando houver Transferência para Mês Seguinte (VGP_ProvTransfSaidaMesSeguinte)
Tipos de Vínculo Excluídos do Processamento:
[ ] Estagiário
[ ] Aprendiz
[ ] Trabalhador Autônomo / Diretor Não Empregado
2. COMPOSIÇÃO DINÂMICA DA EQUAÇÃO DE AJUSTE
Verbas de Provisão para Somar (Créditos/Bases Acumuladas):
[ 2722, 2724, 2723 ]
Verbas de Provisão para Subtrair (Débitos/Atuais e Mês Anterior):
[ 2726, 2721, 2725 ]
3. DIRETRIZES DE PROTEÇÃO E TRAVAS DE SINAL
[X] Exigir Resultado Bruto Estritamente Negativo (< 0.00)
└─ Ação se Resultado >= 0.00 …: [ Interromper / Retornar Nulo v ]
[X] Converter Saldo Negativo Apurado em Módulo Positivo (ABS) para Gravação
[X] Aplicar Trava de Piso Seguro (Garantir valor mínimo zero)
4. EXIBIÇÃO, IMPACTOS E ENCARGOS ESOCIAL
[X] Permitir Sobregravação de Descrição no Holerite via Configuração
└─ Descrição Personalizada …: [ Prov Ajuste Enc. PIS 13º Sal. - ]
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
- Empresas Sujeitas ao PIS sobre Folha com Reconciliação de Provisão (Regra Padrão): Atendidas perfeitamente pela arquitetura proposta. O motor efetua o confronto matemático entre as verbas acumuladas/baixas (2722, 2724, 2723) e as verbas correntes/resgatadas (2726, 2721, 2725), identificando quando o saldo resulta em uma variação negativa. Nestes casos, aplica a conversão em módulo positivo (ABS) e salva o montante correspondente à reversão de provisão de PIS.
- Empresas sem Variação Negativa no Ajuste: Atendidas com total integridade. Se o saldo do confronto resultar em valor maior ou igual a zero, as travas operacionais cancelam a execução da verba 2728, garantindo que não haja duplicidade com o ajuste positivo (verba 2727) nem gravação de registros zerados.
Status Documental
- Status: Documentada
- Origem: export do Notion + catálogo da wiki
- Fonte rastreável:
30dc75ea2e838177a1efc9af2318bb92