879 - Prev. Privada Custo Administrativo do Plano
⚙️ Metadados
- Código: 879
- Tipo: Informação
- INSS: ISE
- FGTS: ISE
- IRRF: ISE
- Natureza eSocial: -
- DSR: Não
- Médias: Não
- Impacto Financeiro: Sim
- Impacto Contábil: Sim
- Sequência: 7551
🧮 Regra Geral
-
Lógica de Cálculo:
- A verba é calculada apenas para processos de Folha Regular (
IdProcesso = 1). Se o tipo de folha (Solicitacao.TipoFolha) não forRegular, o cálculo é encerrado. - A lógica se divide em duas ramificações principais com base no CNPJ do empregador:
- Para NESTLE STORES (CNPJ contendo “3980271200”):
- Inicializa a variável
PrcCusteio(Percentual de Custeio) como0M. - Calcula a base de cálculo (
BC_v879) somando oVG_VlrSalNom(Valor do Salário Nominal) com o valor da verba 95 (Func_RecuperarSomaValorReferenciaHoleriteVerba("95")). - Para cada um dos nove tipos de planos de previdência privada (Fundo Coletivo PAP n.º 1, Deficit Equacionado PAP Ativos, Deficit Equacionado PAP Aposentados, Fundo Coletivo PAP II n.º 2, Deficit Equacionado PAP II Anterior 2015, Deficit Equacionado PAP II em 2015, Deficit Equacionado PAP II em 2018, Déficit Técnico 2022 PAP-Origem Fundamental Patrocinadora, Déficit Técnico 2022 PAP-Assistido Patrocinadora, Déficit Técnico 2022 PAP-Ativos Patrocinadora):
- Define o
PrcCusteiocom base naSolicitacao.DataReferenciaatravés de uma série de condiçõesif-else ifcom datas específicas. - Para o “Deficit Equacionado PAP II em 2015”, há uma condição adicional que não calcula a verba para a data de referência 01/06/2024.
- Cria um objeto
HoleriteInformacaoBOpara a verba 879. - Define a
DescricaoFinalda verba, incluindo o nome do plano e o percentual. - Atribui um
IdComplementoSistemaOrigemespecífico para cada plano (ex: “209”, “212”, “211”, etc.). - Atribui o
PrcCusteioe aBC_v879às propriedadesPercentualeQuantidadedo objeto. - Calcula o
ValorTotalaplicando oPrcCusteiosobre aBC_v879e arredondando o resultado. - Define as incidências de INSS, FGTS e IRRF como Isentas (
EnumTipoIncidenciaBO.ISE). - Adiciona o objeto
HoleriteInformacaoBOà lista de informações do holerite.
- Define o
- Inicializa a variável
- Para Outros Empregadores (que não NESTLE STORES):
- Filtra os benefícios fornecidos ao empregado (
Empregado.Historico.ListaBeneficioFornecido) que contenham “FUNEPP PAP - FUNDO” ou “FUNEPP PAP II - FUNDO” na descrição. - Para cada plano de benefício encontrado:
- Inicializa
PrcCusteioe variáveis de acumulação. - Calcula
Vlr_95(valor da verba 95) eBC_v879(Base de Cálculo) de forma similar ao caso NESTLE STORES. - Verifica a descrição do plano para identificar qual tipo de custo administrativo aplicar (Fundo Coletivo PAP n.º 1, Deficit Equacionado PAP Ativos, Deficit Equacionado PAP Aposentados, Fundo Coletivo PAP II n.º 2, Deficit Equacionado PAP II Anterior 2015, Deficit Equacionado PAP II em 2015, Deficit Equacionado PAP II em 2018, Taxa Adm PAP II, Taxa Adm PAN).
- Para cada tipo, define o
PrcCusteiocom base naSolicitacao.DataReferencia(com menos variações de data do que para NESTLE STORES). - Cria um objeto
HoleriteInformacaoBOpara a verba 879. - Define a
DescricaoFinalda verba, incluindo o nome do plano e o percentual. - Atribui o
IdComplementoSistemaOrigemrecuperado dinamicamente. - Atribui o
PrcCusteioe aBC_v879às propriedadesPercentualeQuantidade. - Calcula o
ValorTotalaplicando oPrcCusteiosobre aBC_v879e arredondando o resultado. - Define as incidências de INSS, FGTS e IRRF com base nas incidências padrão da verba (
HoleriteInformacao.IncidenciaINSS,HoleriteInformacao.IncidenciaFGTS,HoleriteInformacao.IncidenciaIRRF). - Adiciona o objeto
HoleriteInformacaoBOà lista de informações do holerite, apenas se um complemento com o mesmoIdComplementoSistemaOrigem(ouDescricaoFinalpara alguns casos) não existir e oValorTotalnão for zero.
- Inicializa
- Filtra os benefícios fornecidos ao empregado (
- Para NESTLE STORES (CNPJ contendo “3980271200”):
- A verba é calculada apenas para processos de Folha Regular (
-
Fórmula matemática:
ValorTotal = Func_ArredondamentoPadrao((VG_VlrSalNom + ValorVerba95) * PrcCusteio / 100M)
-
Variáveis Utilizadas:
Solicitacao.TipoFolha: Tipo de processo da folha de pagamento.Empregador.CNPJEmpregador: CNPJ do empregador.VG_VlrSalNom: Valor do salário nominal do empregado.Func_RecuperarSomaValorReferenciaHoleriteVerba("95"): Soma dos valores da verba 95 no holerite.Solicitacao.DataReferencia: Data de referência do cálculo.PrcCusteio: Percentual de custeio do plano.BC_v879: Base de cálculo da verba 879.Empregado.Historico.ListaBeneficioFornecido: Lista de benefícios fornecidos ao empregado.plano.Descricao: Descrição do plano de benefício.HoleriteInformacao.Verba.Codigo,HoleriteInformacao.Verba.Descricao: Código e descrição da verba padrão.HoleriteInformacao.IncidenciaINSS,HoleriteInformacao.IncidenciaFGTS,HoleriteInformacao.IncidenciaIRRF: Incidências padrão da verba.
-
Condições Especiais:
- Verificação do tipo de folha (
Solicitacao.TipoFolha != EnumTipoFolhaBO.Regular). - Condição
if (Empregador.CNPJEmpregador.ToString().Contains("3980271200") == true)para diferenciar a lógica para NESTLE STORES. - Múltiplas condições
if-else ifbaseadas emSolicitacao.DataReferenciapara determinar oPrcCusteio. - Condição
if (Solicitacao.DataReferencia != SysFunc_NovaData(01, 06, 2024))para excluir o cálculo em uma data específica para um dos planos. - Condições
if (plano.Descricao.ToUpper().Contains(...))para identificar o tipo de plano de previdência. - Condições
if (Holerite.ListaHoleriteInformacao.Exists(...) == false && HI_879_PAP.ValorTotal != 0M)para evitar duplicidade e lançamentos de valor zero.
- Verificação do tipo de folha (
🔗 Dependências
- Verbas Relacionadas: Verba
95. - Tipo de Relação: A verba
95é uma dependência, pois seu valor é somado aoVG_VlrSalNompara compor a base de cálculo (BC_v879) da verba 879.
🧩 Funções
Func_RecuperarSomaValorReferenciaHoleriteVerba("95"): Recupera a soma dos valores de uma verba específica (neste caso, a verba 95) no holerite do período de referência.SysFunc_NovaData(dia, mes, ano): Cria um objetoDateTimecom o dia, mês e ano especificados.CriarVerbaHoleriteInformacaoBO(...): Função interna para instanciar um objetoHoleriteInformacaoBO, que representa uma verba de informação no holerite.Func_ArredondamentoPadrao(valor): Arredonda o valor monetário para o padrão definido no sistema (geralmente duas casas decimais).SysFunc_RecuperarIdComplementoSistemaOrigem("879", DescricaoComplemento): Recupera um identificador único para o complemento de sistema de origem da verba 879, baseado em sua descrição.Holerite.ListaHoleriteInformacao.Add(...): Adiciona o objetoHoleriteInformacaoBOcriado à lista de verbas de informação do holerite.Holerite.ListaHoleriteInformacao.Exists(...): Verifica se já existe um item na lista de verbas de informação que atenda a uma determinada condição (ex: mesmoIdComplementoSistemaOrigemouDescricaoFinal).
💡 Proposta de Novo Cálculo
Fórmula proposta (padronizada):
Base_Calculo_Composta = Salario_Nominal + SOMA(Verbas_Composicao_Base)
Percentual_Custeio_Vigente = ObterPercentualCusteio(Empresa, Plano, DataReferencia)
Validacao_Bloqueio_Competencia = SE_ENTAO(Competencia_Bloqueada(Plano, DataReferencia) == VERDADEIRO, 0, 1)
Valor_Verba_879 = SE_ENTAO(Validacao_Bloqueio_Competencia == 1 E Percentual_Custeio_Vigente > 0, Arredondar((Base_Calculo_Composta * Percentual_Custeio_Vigente) / 100), 0)
1. Filtros de Elegibilidade e Isenções (Piso Seguro)
SE NOT tabela_parametros.obter_flag(“HABILITAR_VERBA_879”) ENTAO RETORNAR_VALOR(NULO) FIM_SE
SE NOT tabela_parametros.validar_processamento_permitido(holerite_atual.tipo_processamento) ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 879 ignorada: Processamento permitido apenas para tipos de folha autorizados.”) RETORNAR_VALOR(NULO) FIM_SE
2. Determinação da Base de Cálculo Recomposta (Salário Nominal + Composição Parametrizada)
lista_rubricas_composicao_base = tabela_parametros.obter_lista_codigos_verba(“RUBRICAS_COMPOSICAO_BASE_879”) // Default: [95] soma_rubricas_base = 0.00
PARA CADA codigo_rubrica EM lista_rubricas_composicao_base FACA soma_rubricas_base = soma_rubricas_base + holerite_atual.obter_valor_total_verba(codigo_rubrica) FIM_PARA
base_calculo_bruta = colaborador.salario_nominal + soma_rubricas_base
SE base_calculo_bruta <= 0.00 ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 879 não processada: Base de cálculo composta é igual ou inferior a zero.”) RETORNAR_VALOR(NULO) FIM_SE
3. Obtenção dos Planos de Previdência Elegíveis e Consulta do Grid de Taxas Por Vigência
lista_planos_ativos = colaborador.obter_planos_previdencia_vinculados(holerite_atual.data_competencia)
SE lista_planos_ativos.esta_vazia() ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 879 não processada: Nenhum plano de previdência ativo encontrado no cadastro do colaborador.”) RETORNAR_VALOR(NULO) FIM_SE
PARA CADA plano EM lista_planos_ativos FACA // Validação de exceção pontual de competência (Substitui condicional por data ‘hardcoded’) SE tabela_parametros.validar_competencia_bloqueada_plano(plano.codigo_plano, holerite_atual.data_referencia) ENTAO REGISTRAR_LOG_INFORMATIVO(“Processamento suspenso para o plano ” + plano.codigo_plano + ” na competência ” + CONVERTER_PARA_TEXTO(holerite_atual.data_referencia)) CONTINUAR_PROXIMO_LOOP FIM_SE
Busca do percentual de custeio na matriz parametrizada por Grupo/Empresa, Plano e Vigência percentual_custeio = tabela_parametros.obter_percentual_custeio_vigente( empresa_id: colaborador.empresa_id, codigo_plano: plano.codigo_plano, data_referencia: holerite_atual.data_referencia )
SE percentual_custeio > 0.00 ENTAO valor_custo_adm = ARREDONDAR_PADRAO((base_calculo_bruta * percentual_custeio) / 100.00)
SE valor_custo_adm > 0.00 ENTAO complemento_sistema = tabela_parametros.obter_complemento_plano(“879”, plano.codigo_plano) id_complemento = complemento_sistema.id descricao_final = “CUSTO ADM - ” + plano.nome_exibicao + ” (” + CONVERTER_PARA_TEXTO(percentual_custeio) + ”%)”
Trava de Duplicidade no Holerite Informativo SE NOT holerite_atual.existe_informacao_duplicada(“879”, id_complemento, descricao_final) ENTAO instancia_info = holerite_atual.criar_instancia_informacao(“879”) instancia_info.valor_total = valor_custo_adm instancia_info.percentual = percentual_custeio instancia_info.quantidade = base_calculo_bruta instancia_info.id_complemento_origem = id_complemento instancia_info.descricao_final = descricao_final
instancia_info.incidencia_inss = ENUM_INCIDENCIA.ISENTO instancia_info.incidencia_fgts = ENUM_INCIDENCIA.ISENTO instancia_info.incidencia_irrf = ENUM_INCIDENCIA.ISENTO
holerite_atual.adicionar_verba_informacao(instancia_info)
REGISTRAR_LOG_AUDITORIA(“Verba 879 gerada. Plano: ” + plano.codigo_plano + ” | BC: R$ ” + CONVERTER_PARA_TEXTO(base_calculo_bruta) + ” | Taxa: ” + CONVERTER_PARA_TEXTO(percentual_custeio) + ”% | Valor: R$ ” + CONVERTER_PARA_TEXTO(valor_custo_adm)) FIM_SE FIM_SE FIM_SE FIM_PARA
RETORNAR_VALOR(NULO) FIM_FUNCAO
Parametrizações Propostas para Reestruturação
1. REGRAS DE ENTRADA E ELEGIBILIDADE GERAL
[X] Habilitar Processamento da Verba 879
Tipos de Processamento Permitidos: [X] Folha Regular [ ] Adiantamento [ ] 13º Salário [ ] Rescisão
2. COMPOSIÇÃO DA BASE DE CÁLCULO
Composição do Valor da Base: [X] Salário Nominal Contratual
Verbas Complementares da Base: [ 95 - Horas Extras / Outras Adicionais ] (+)
3. MATRIZ DE PERCENTUAIS DE CUSTEIO POR PLANO E VIGÊNCIA (SUBSTITUI CNPJ E STRINGS)
Mapeamento de Planos x Empresa x Percentuais por Competência:
[Empresa: NESTLE STORES / Grupo Geral]
+-------------------------------------+------------------+-----------------+---------------+ | Código / Nome do Plano | Vigência Início | Vigência Fim | Custeio (%) | +-------------------------------------+------------------+-----------------+---------------+ | PAP_01 - Fundo Coletivo PAP Nº 1 | 01/01/2020 | 31/12/2099 | 0.2500 | | PAP_DEF_ACT - Deficit Equac. Ativos | 01/01/2023 | 31/05/2024 | 0.1200 | | PAP_DEF_ACT - Deficit Equac. Ativos | 01/06/2024 | 01/06/2024 | 0.0000 (Bloq) | | PAP_DEF_ACT - Deficit Equac. Ativos | 02/06/2024 | 31/12/2099 | 0.1200 | | PAP_II_02 - Fundo Coletivo PAP II | 01/01/2022 | 31/12/2099 | 0.1800 | | PAN_TAXA - Taxa Adm. PAN | 01/01/2021 | 31/12/2099 | 0.1500 | +-------------------------------------+------------------+-----------------+---------------+
4. CONTROLE DE COMPLEMENTOS, DUPLICIDADE E INTERFACE
[X] Ativar Proteção Anti-Duplicidade (Garante 1 único evento por plano/complemento)
[ ] Exibir Evento no Envelope de Pagamento (Holerite do Colaborador)
[X] Exportar Evento para Espelho Contábil / Relatório Financeiro de Previdência
[X] Gravar no Barramento de Memória de Cálculo Fiscal
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 do Grupo Nestlé Stores (CNPJ
3980271200): Absorvidas integralmente. O tratamento condicional por CNPJ foi substituído pela atribuição do perfil de empresa e vinculação direta da matriz de vigências e percentuais por plano no cadastro central de parâmetros. - Demais Empregadores / Outros Clientes (Planos FUNEPP PAP I, PAP II, PAN): Absorvidos integralmente. A varredura de strings no nome do plano (
"FUNEPP PAP - FUNDO","FUNEPP PAP II - FUNDO", etc.) foi substituída pela consulta estruturada de planos de previdência vinculados ao colaborador, utilizando os IDs de complemento e tabelas de taxas por período.
Status Documental
- Status: Documentada
- Origem: export do Notion + catálogo da wiki
- Fonte rastreável:
30dc75ea2e838147b80af402f894bb72