887 - Desc. Previd. Privada PGBL [BN]
Metadados
- Código: 887
- Tipo: Desconto
- INSS: ISE
- FGTS: ISE
- IRRF: ISE
- Natureza eSocial: 9223 - Previdência complementar - parte do empregado
- DSR: Não
- Médias: Não
- Impacto Financeiro: Sim
- Impacto Contábil: Sim
- Sequência: 735
🧮 Regra Geral
-
Chama a função
SysFunc_GeraDescontoBeneficio(HoleriteVerba), que é responsável por calcular e atribuir o valor do desconto de benefício à verba. -
Variáveis Utilizadas: `
Solicitacao.ClienteLancamento.PercentualVG_VlrSalNomHoleriteVerba.ValorTotalEmpregado.Historico.ListaBeneficioFornecidobeneficioPPPGBL.PercentualDescontoBC_PP_PGBL.
-
Condições Especiais:
if (Solicitacao.Cliente.ToLower() == "salesforce"): Ativa a lógica específica para Salesforce.if (Func_ValidarExistenciaLancamento(Lancamento) == true && Lancamento.Percentual > 0M): Condição para cálculo em Salesforce.else if (Solicitacao.Cliente.ToLower() == "ccab" || Solicitacao.Cliente.ToLower() == "liugong"): Ativa a lógica específica para CCAB e Liugong.if (beneficioPPPGBL != null): Condição para cálculo em CCAB/Liugong, exige benefício configurado.if (Solicitacao.Cliente.ToLower() == "ccab" && HV887.ValorTotal != 0): Condição para gerar a verba de custo empresa (1743) apenas para CCAB.
-
Funções Identificadas:
SysFunc_GeraDescontoBeneficio(HoleriteVerba): Função de sistema que automatiza a geração de descontos de benefícios, buscando as configurações de benefício do empregado.
🔔 Eventos/Gatilhos
- Quando a verba é calculada:
- Automaticamente, durante o cálculo da folha regular (
IdProcesso = 1). - Para Salesforce: quando há um lançamento manual com percentual > 0.
- Para CCAB/Liugong: quando há um benefício de “Previdência Privada PGBL - Básica” configurado para o empregado.
- Para outros clientes: quando a função
SysFunc_GeraDescontoBeneficioé acionada, presumivelmente por um benefício configurado.
- Automaticamente, durante o cálculo da folha regular (
🔗 Dependências
- Verbas Relacionadas:
- Verba 1743: “Previd. Privada PGBL Custo Empresa [BN]” (gerada para o cliente CCAB).
- Tipo de Relação:
- A verba 1743 é gerada pela verba 887, especificamente para o cliente CCAB, e seu valor depende do
ValorTotalda verba 887. - A verba 887 depende de
Lancamento(para Salesforce) ou deBeneficioFornecidoBO(para CCAB/Liugong e outros clientes viaSysFunc_GeraDescontoBeneficio).
- A verba 1743 é gerada pela verba 887, especificamente para o cliente CCAB, e seu valor depende do
🧩 Funções
Func_ValidarExistenciaLancamento(Lancamento): Verifica se um lançamento existe.Negativo(decimal valor): Retorna o valor negativo.Func_ArredondamentoPadrao(decimal valor): Arredonda o valor para o padrão do sistema.Argumento(string valor): Utilizada para registrar argumentos na memória de cálculo.EscreverMemoria(string tipo, string template): Gera a string da memória de cálculo.CriarVerbaHoleriteVerbaBO(string codVerba, string descricao): Cria um objeto de verba de holerite.CriarVerbaHoleriteInformacaoBO(string codVerba, string descricao): Cria um objeto de verba de informação de holerite.Positivo(decimal valor): Retorna o valor positivo.SysFunc_GeraDescontoBeneficio(HoleriteVerba): Função de sistema que calcula e atribui o valor de um desconto de benefício.
🎯 Particularidades por Cliente/Setor
👤 CCAB
- Define
BC_PP_PGBLcomo oVG_VlrSalNom. - Busca no histórico do empregado um benefício com a descrição “PREVIDÊNCIA PRIVADA PGBL - BÁSICA”.
- Se o benefício for encontrado:
- Cria uma nova verba de holerite (887) e atribui a descrição final, o percentual de desconto do benefício (
beneficioPPPGBL.PercentualDesconto) e oValorTotal. - O
ValorTotalé calculado como a base de cálculo (BC_PP_PGBL) multiplicada pelo percentual de desconto do benefício, dividido por 100, arredondado e tornado negativo. - Fórmula matemática:
HoleriteVerba.ValorTotal = -1 * Func_ArredondamentoPadrao(BC_PP_PGBL * beneficioPPPGBL.PercentualDesconto / 100.00M) - As incidências de INSS, FGTS e IRRF para esta verba são definidas como Isentas (
EnumTipoIncidenciaBO.ISE). - A verba é adicionada à lista de verbas do holerite.
- Para Cliente “ccab” (e não “liugong”) e se o
ValorTotalda verba 887 não for zero:- Cria uma verba de informação (1743) “Previd. Privada PGBL Custo Empresa [BN]”.
- O
ValorTotaldesta verba é o valor da verba 887 multiplicado por 2, arredondado e tornado positivo. - Fórmula matemática:
HoleriteInformacaoBO.ValorTotal = Func_ArredondamentoPadrao(HoleriteVerba.ValorTotal * 2M) - As incidências de INSS, FGTS e IRRF para esta verba de informação também são definidas como Isentas (
EnumTipoIncidenciaBO.ISE). - Esta verba de informação é adicionada à lista de informações do holerite.
- Cria uma nova verba de holerite (887) e atribui a descrição final, o percentual de desconto do benefício (
👤 Jmalucelli
- Condição de Ativação Inicial: A verba para jmalucelli é calculada apenas se houver algum provento (
VG_TemAlgumProvento == true). Na regra geral, a lógica é mais complexa, com blocos específicos para “salesforce”, “ccab” e “liugong” antes de um fallback paraSysFunc_GeraDescontoBeneficio. - Lógica de Cálculo Simplificada: Para jmalucelli, a verba sempre utiliza a função
SysFunc_GeraDescontoBeneficio(HoleriteVerba)para determinar o desconto, desde que a condição inicial seja atendida.
👤 Liugong
- Define
BC_PP_PGBLcomo oVG_VlrSalNom. - Busca no histórico do empregado um benefício com a descrição “PREVIDÊNCIA PRIVADA PGBL - BÁSICA”.
- Se o benefício for encontrado:
- Cria uma nova verba de holerite (887) e atribui a descrição final, o percentual de desconto do benefício (
beneficioPPPGBL.PercentualDesconto) e oValorTotal. - O
ValorTotalé calculado como a base de cálculo (BC_PP_PGBL) multiplicada pelo percentual de desconto do benefício, dividido por 100, arredondado e tornado negativo. - Fórmula matemática:
HoleriteVerba.ValorTotal = -1 * Func_ArredondamentoPadrao(BC_PP_PGBL * beneficioPPPGBL.PercentualDesconto / 100.00M) - As incidências de INSS, FGTS e IRRF para esta verba são definidas como Isentas (
EnumTipoIncidenciaBO.ISE). - A verba é adicionada à lista de verbas do holerite.
- Para Cliente “ccab” (e não “liugong”) e se o
ValorTotalda verba 887 não for zero:- Cria uma verba de informação (1743) “Previd. Privada PGBL Custo Empresa [BN]”.
- O
ValorTotaldesta verba é o valor da verba 887 multiplicado por 2, arredondado e tornado positivo. - Fórmula matemática:
HoleriteInformacaoBO.ValorTotal = Func_ArredondamentoPadrao(HoleriteVerba.ValorTotal * 2M) - As incidências de INSS, FGTS e IRRF para esta verba de informação também são definidas como Isentas (
EnumTipoIncidenciaBO.ISE). - Esta verba de informação é adicionada à lista de informações do holerite.
- Cria uma nova verba de holerite (887) e atribui a descrição final, o percentual de desconto do benefício (
👤 Salesforce
- Verifica se existe um lançamento (
Func_ValidarExistenciaLancamento) e se o percentual lançado (Lancamento.Percentual) é maior que zero. - Se sim, o
ValorTotalda verba é calculado como o salário nominal (VG_VlrSalNom) multiplicado pelo percentual lançado, dividido por 100, e o resultado é arredondado (Func_ArredondamentoPadrao) e tornado negativo (Negativo). - Fórmula matemática:
HoleriteVerba.ValorTotal = -1 * Func_ArredondamentoPadrao(VG_VlrSalNom * Lancamento.Percentual / 100M) - É gerada uma memória de cálculo detalhando os valores.
💡 Proposta de Novo Cálculo
Fórmula proposta (padronizada):
ValorTotal = -1 x Func_ArredondamentoPadrao(VG_VlrSalNom x PercentualDesconto/100)
1. Filtros de Elegibilidade e Validação de Proventos (Piso Seguro - Atende: Jmalucelli)
SE ObterParametroContrato(ExigirProventosAtivosParaPrevidencia) = true E VG_TemAlgumProvento = false ENTÃO null SENÃO
2. Determinação da Origem dos Dados (Fallback Seguro - Atende: Salesforce, CCAB, Liugong, Syngenta)
PercentualDesconto = 0 BC_Previdencia = VG_VlrSalNom
SE Func_ValidarExistenciaLancamento(Lancamento) = true E Lancamento.Percentual > 0 ENTÃO PercentualDesconto = Lancamento.Percentual SENÃO BeneficioAtivo = BuscarBeneficioFornecido(Subtipo: “PREVIDÊNCIA PRIVADA PGBL - BÁSICA”) SE BeneficioAtivo <> null ENTÃO PercentualDesconto = BeneficioAtivo.PercentualDesconto
3. Execução do Cálculo e Validação de Saldo
SE PercentualDesconto <= 0 ENTÃO null SENÃO ValorDesconto = BC_Previdencia * (PercentualDesconto / 100)
// Gravação dos Campos e Registro na Memória de Cálculo EfetuarGravacaoCampos(Quantidade = BC_Previdencia, Percentual = PercentualDesconto, ValorReferencia = ValorDesconto) EscreverMemoria(“Cálculo de Previdência PGBL [BN]”, “Base: ” + BC_Previdencia + ” | Percentual: ” + PercentualDesconto)
4. Gatilho Paramétrico para Custo Empresa / Match Dinâmico (Substitui Hardcode CCAB)
SE ObterParametroContrato(GerarContrapartidaPatronalPGBL_BN) = true ENTÃO FatorMatch = ObterParametroContrato(FatorMultiplicadorCustoPatronalPGBL) // Ex: 1.0 (100%), 2.0 (200%), etc. GarantirGeracaoVerbaInformacao(Codigo: “1743”, Valor = ValorDesconto * FatorMatch)
-1 * Func_ArredondamentoPadrao(ValorDesconto)
Impactos
- Flexibilização do Custo Empresa (Match): A contrapartida patronal deixa de ser engessada em 200%, permitindo que o usuário altere o multiplicador da verba
1743para qualquer proporção configurada no contrato. - Padronização de Logs e Rastreabilidade: Todos os clientes passam a herdar a gravação detalhada da memória de cálculo no holerite, eliminando as diferenças de comportamento entre as marcas.
Benefícios
- Portabilidade do Motor de Cálculo: Permite a entrada de novos clientes na modalidade de Previdência PGBL com ou sem contrapartida corporativa imediatamente, sem necessidade de novas linhas de código.
- Segurança na Folha de Rescisão e Férias: O parâmetro de validação de proventos ativos (
VG_TemAlgumProvento) passa a ser opcional e configurável, evitando que meses de afastamento ou licenças gerem descontos indevidos.
Parametrizações Propostas para Reestruturação
1. Regras de Ativação e Proteção de Saldo (Substituição de Jmalucelli):
[x] Exigir a existência de ao menos um Provento Ativo no holerite para processar o desconto
(Evita saldos negativos em meses de afastamento integral ou suspensão de contrato)
2. Configuração de Contrapartida Patronal / Match Dinâmico (Substituição de Hardcode CCAB):
[x] Ativar geração automática da rubrica de Custo Empresa [ 1743 - Previd. Privada PGBL Custo Empresa [BN] ]
Fator Multiplicador do Custo Empresa (Match da Patrocinadora):
( ) 1.00 (Custo idêntico ao desconto do trabalhador - 100%)
(x) 2.00 (Dobro do valor descontado do trabalhador - 200% - Padrão CCAB)
( ) Outro Fator: [ ____ ]
3. Prioridade de Captura e Logs (Substituição de Salesforce, Liugong e Syngenta):
[x] Gravar argumentos e base de cálculo (Salário Nominal) na Memória do Holerite
(x) Priorizar Lançamento Manual e utilizar Módulo de Benefícios como Fallback
4. Regulação Cadastral de Encargos (eSocial):
Natureza da Rubrica Homologada: [ 9223 - Previdência complementar - parte do empregado ]
[x] INSS: ISE (Isento) [x] FGTS: ISE (Isento) [x] IRRF: ISE (Isento)
Clientes com mesma regra
- CCAB e Liugong: Totalmente unificados. O motor realiza a busca pelo benefício básico de PGBL e aplica o desconto sobre o Salário Nominal. Para a CCAB, a geração da verba
1743com o dobro do valor é preservada por meio da flag de Match parametrizada em $2.0$. - Salesforce e Syngenta: Plenamente integrados. O fluxo unificado intercepta os lançamentos em percentual enviados em lote e efetua o cálculo direto, registrando a memória de cálculo padrão para fins de conferência técnica.
- Jmalucelli: Perfeitamente assistido através da nova flag de segurança que condiciona a execução da previdência à existência de proventos ativos no mês de referência.
Status Documental
- Status: Documentada
- Origem: export do Notion + catálogo da wiki
- Fonte rastreável:
30dc75ea2e8381c18842e8489394e8de