Wiki / SuperCalculo ~11 min

1007 - Seguro Vida - Parte Empresa

⚙️ Metadados

  • Código: 1007
  • 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: 7515

🧮 Regra Geral

N/A

🎯 Particularidades por Cliente/Setor

👤 Bundy
  • Lógica de Cálculo:

    1. A verba verifica o Tipo de Vínculo do empregado.
    2. Se o empregado for um Estagiário:
      • O valor da verba é determinado por uma série de condições baseadas na Solicitacao.DataReferencia.
      • Para datas de referência a partir de 01/02/2026, o valor é 4.53.
      • Para datas de referência a partir de 01/09/2024, o valor é 5.06.
      • Para datas de referência a partir de 01/05/2024, o valor é 5.32.
      • Para datas de referência a partir de 01/01/2024, o valor é 5.06.
      • Para datas de referência a partir de 01/05/2023, o valor é 4.59.
      • Para datas de referência a partir de 01/12/2022, o valor é 4.32.
      • Para datas de referência a partir de 01/05/2022, o valor é 4.11.
      • Para datas de referência a partir de 01/02/2022, o valor é 3.71.
      • Para datas de referência a partir de 01/10/2018, o valor é 3.33.
      • Para datas de referência até 30/09/2018, o valor é 3.17.
    3. Se o empregado NÃO for um Estagiário:
      • Primeiro, recupera o valor total da verba 890 (Base de Cálculo Prêmio Seguro Vida) e armazena em BCPremioSegVida.
      • Se BCPremioSegVida for maior que zero:
        • O valor da verba é igual a BCPremioSegVida.
      • Caso contrário (se BCPremioSegVida for zero ou negativo):
        • A base de cálculo BC_1007 é inicializada com o VG_VlrSalNom (Valor do Salário Nominal).
        • Busca no histórico do empregado um benefício do tipo SeguroVida.
        • Se um benefício de Seguro Vida for encontrado (BenefSegVida != null):
          • Calcula um valor provisório VlrSegVida como VG_VlrSalNom multiplicado pela VlrFaixaDesconto do benefício (dividido por 100) e por 2, arredondado.
          • O valor final da verba é o menor entre VlrSegVida e o ValorTeto do benefício, também arredondado.
        • Há um bloco de código comentado que, se ativo, calcularia a verba com base no VG_VlrSalNom e fatores percentuais variáveis por data de referência. Este bloco não está ativo no cálculo atual.
  • Fórmula matemática:

    • Para Estagiários: HoleriteInformacao.ValorTotal = [Valor Fixo por Data de Referência]
    • Para Não-Estagiários (se verba 890 > 0): HoleriteInformacao.ValorTotal = RecuperarValorTotalVerba("890")
    • Para Não-Estagiários (se verba 890 <= 0 e Benefício Seguro Vida existe):
      • VlrSegVida = Func_ArredondamentoPadrao(VG_VlrSalNom * BenefSegVida.VlrFaixaDesconto / 100 * 2)
      • HoleriteInformacao.ValorTotal = Func_ArredondamentoPadrao(Min(VlrSegVida, BenefSegVida.ValorTeto))
  • Variáveis Utilizadas:

    • Empregado.TipoVinculo
    • Solicitacao.DataReferencia
    • HoleriteInformacao.ValorTotal
    • BCPremioSegVida
    • VG_VlrSalNom
    • BenefSegVida
    • VlrSegVida
    • BenefSegVida.VlrFaixaDesconto
    • BenefSegVida.ValorTeto.
  • Condições Especiais:

    • if (Empregado.TipoVinculo == EnumTipoVinculoBO.Estagiario): Diferencia a lógica de cálculo para estagiários.
    • if (Solicitacao.DataReferencia >= SysFunc_NovaData(...)): Define valores fixos para estagiários com base na data.
    • if (BCPremioSegVida > 0M): Prioriza o valor da verba 890 se presente.
    • if (BenefSegVida != null): Ativa o cálculo baseado no benefício de seguro de vida se encontrado.
  • Dependências:

    • Verbas Relacionadas: A verba 890 (BCPremioSegVida) é utilizada como base de cálculo prioritária para não-estagiários.
  • Funções Identificadas:

    • SysFunc_NovaData(dia, mes, ano): Cria um objeto DateTime a partir dos parâmetros de dia, mês e ano.
    • Positivo(valor): Retorna o valor se for positivo, caso contrário, retorna zero.
    • RecuperarValorTotalVerba("código"): Busca e retorna o valor total de uma verba específica.
    • Func_ArredondamentoPadrao(valor): Arredonda o valor para o padrão de casas decimais configurado no sistema.
    • Where(condição) (LINQ): Filtra uma coleção de itens com base em uma condição.
    • FirstOrDefault() (LINQ): Retorna o primeiro elemento de uma sequência que satisfaz uma condição, ou um valor padrão se nenhum elemento for encontrado.
👤 CCAB
  • Comentada.
👤 Crasa
  • Comentada.
👤 Credinestle
  • Lançamento manual.
👤 Froneri
  • Lançamento manual.
👤 Gallo
  • Lógica de Cálculo:

    1. A verba inicia buscando na lista de benefícios fornecidos ao empregado (Empregado.Historico.ListaBeneficioFornecido) por um benefício cuja descrição contenha “PRUDENTIAL” (ignorando maiúsculas/minúsculas).
    2. Se nenhum benefício com “PRUDENTIAL” for encontrado, a verba não é calculada (return null).
    3. Um percentual inicial de 0.208747M é definido.
    4. É verificada a data de referência da solicitação (Solicitacao.DataReferencia). Se for igual ou posterior a 01/01/2024, o percentual é atualizado para 0.216519M.
    5. O valor final da verba é calculado multiplicando o Salário Nominal (VG_VlrSalNom) por 36, pelo Percentual determinado e dividindo por 1000. O resultado é então arredondado para o padrão.
  • Fórmula matemática:

    • Valor = Func_ArredondamentoPadrao(VG_VlrSalNom * 36 * Percentual / 1000)
  • Variáveis Utilizadas:

    • beneficiosegurovida: Armazena o benefício encontrado.
    • Percentual: Armazena o percentual a ser aplicado no cálculo.
    • Solicitacao.DataReferencia: Data de referência do cálculo.
    • VG_VlrSalNom: Valor do Salário Nominal do empregado.
    • HoleriteInformacao.ValorTotal: Variável de saída para o valor da verba.
  • Condições Especiais:

    • if (beneficiosegurovida == null): Condição de saída antecipada se o benefício “PRUDENTIAL” não for encontrado.
    • if (Solicitacao.DataReferencia >= SysFunc_NovaData(01, 01, 2024)): Condição para ajustar o Percentual com base na data de referência.
  • Funções Identificadas:

    • SysFunc_NovaData(dia, mes, ano): Cria um objeto DateTime com a data especificada.
    • Func_ArredondamentoPadrao(valor): Aplica o arredondamento padrão do sistema ao valor.
    • Where(): Método LINQ para filtrar coleções.
    • FirstOrDefault(): Método LINQ para retornar o primeiro elemento de uma sequência ou o valor padrão se nenhum elemento for encontrado.
    • ToUpper(): Método de string para converter para maiúsculas (usado para comparação case-insensitive).
    • Contains(): Método de string para verificar se uma substring está presente.
👤 Jmalucelli
  • Lançamento manual.
👤 TiAutomotive
  • Lógica de Cálculo:

    1. A verba inicia recuperando os dias de afastamento do tipo Expatriado (diasExpatriadoTi).
    2. O cálculo prossegue apenas se:
      • Não houver proventos calculados ainda (VG_TemAlgumProvento for false) OU
      • O número de dias de afastamento Expatriado for igual ou superior ao último dia do mês de referência (SysFunc_UltimoDiaMes(Solicitacao.DataReferencia).Day).
    3. Dentro dessa condição, a verba busca benefícios relacionados ao código “890” (Desc. Seguro Vida [BN]) no histórico do empregado, filtrando pelo mês e ano da DataReferencia.
    4. São calculadas variáveis auxiliares para o contexto do benefício:
      • CHM: Horas do mês (VG_HsMes).
      • SalarioNominalEmpregado: Salário nominal (VG_VlrSalNom).
      • Sal_Custo_Empresa: Custo do salário para a empresa, baseado em horas trabalhadas.
      • Remuneracao_BaseInss: Remuneração base para INSS, somando salário e pró-labore.
    5. Para cada benefício encontrado:
      • Benefícios marcados como BeneficioManual são ignorados.
      • É recuperado o ValorBeneficioNaoUtilizado através da função Func_RecuperaValorBeneficioNaoUtilizado.
      • Um dicionário (DicionarioM) é populado com SalarioNominalEmpregado, Sal_Custo_Empresa, Remuneracao_BaseInss, Salario_Dias_Trabalhados (calculado como (SalarioNominalEmpregado / 30) * VG_DiasTrabalhadosBeneficio) e Vlr_Beneficio_Nao_Utilizado.
      • Se o benefício não for novo (Beneficio.BeneficioNovo == false), um valor é calculado usando CalcularBeneficio (fórmula 434) e adicionado ao dicionário.
      • A função ExecutarFormulaBeneficio é chamada para calcular o ValorDescontoBeneficio com base no benefício e no dicionário de parâmetros.
      • A Quantidade da verba no holerite é definida como o SalarioNominalEmpregado.
      • O ValorTotal da verba no holerite é definido como o ValorDescontoBeneficio arredondado.
  • Fórmula matemática:

    • Sal_Custo_Empresa = Func_ArredondamentoPadrao(VG_HsTrab * (VG_VlrSalNom / VG_HsMes))
    • Remuneracao_BaseInss = Func_ArredondamentoPadrao(VG_SCSalario + VG_SCProLabore)
    • Salario_Dias_Trabalhados = (VG_VlrSalNom / 30) * VG_DiasTrabalhadosBeneficio
    • HoleriteInformacao.ValorTotal = Func_ArredondamentoPadrao(ValorDescontoBeneficio)
  • Variáveis Utilizadas:

    • diasExpatriadoTi
    • VG_TemAlgumProvento
    • Solicitacao.DataReferencia
    • Empregado.Historico.ListaBeneficioFornecido
    • VG_HsMes
    • VG_VlrSalNom
    • VG_HsTrab
    • VG_SCSalario
    • VG_SCProLabore
    • VG_DiasTrabalhadosBeneficio
    • Beneficio.BeneficioManual
    • Beneficio.BeneficioNovo.
  • Condições Especiais:

    • O cálculo é condicionado à ausência de proventos ou à condição de expatriado integral no mês.
    • Benefícios manuais são excluídos do cálculo.
    • O cálculo de valor via CalcularBeneficio é exclusivo para benefícios não novos.
  • Gatilhos:

    • Condição de Ativação: “inf Seguro Vida - Parte Empresa”.
    • Quando a verba é calculada: A verba é calculada automaticamente se a condição de ativação for atendida e se:
      • Não houver proventos calculados (VG_TemAlgumProvento == false) OU
      • O empregado esteve afastado como expatriado durante todo o mês de referência.
      • Depende da existência de benefícios do tipo “Desc. Seguro Vida” (código 890) no histórico do empregado para o mês de referência.
  • Dependências:

  • Verbas Relacionadas:

    • Verba 890 - Desc. Seguro Vida [BN]: A verba 1007 depende dos dados de benefícios associados à verba 890 para determinar seu valor.
  • Funções Identificadas:

    • RecuperarDiasAfastamento(EnumTipoAfastamentoBO.Expatriado): Obtém dias de afastamento por tipo.
    • SysFunc_UltimoDiaMes(Solicitacao.DataReferencia): Retorna o último dia do mês.
    • SysFunc_MesmoMesAno(data1, data2): Compara se duas datas estão no mesmo mês/ano.
    • Func_ArredondamentoPadrao(valor): Arredonda valores monetários.
    • Func_RecuperaValorBeneficioNaoUtilizado(Beneficio): Recupera valor de benefício não utilizado.
    • CalcularBeneficio(Beneficio): Executa cálculo de benefício (fórmula 434).
    • ExecutarFormulaBeneficio(Beneficio, DicionarioM): Executa a fórmula específica de um benefício com parâmetros.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

Valor_Seguro_Fixo = ObterValorFixoVigente(DataReferencia, TipoVinculo)

Valor_Seguro_Calculado = (SalarioNominal * (PercentualFaixaDesconto / 100) * FatorMultiplicador)

Valor_Seguro_Fator = (SalarioNominal * MultiplicadorCapital * TaxaAliquotaVigente) / DivisorFator

Valor_Bruto_1007 = SE_ENTAO(LancamentoManual > 0, LancamentoManual, SE_ENTAO(Modo == “FIXO”, Valor_Seguro_Fixo, SE_ENTAO(Modo == “RUBRICA_BASE” E Verba_890 > 0, Verba_890, SE_ENTAO(Modo == “FORMULA_FATOR”, Valor_Seguro_Fator, MINIMO(Valor_Seguro_Calculado, TetoBeneficio)))))

Valor_Verba_1007 = SE_ENTAO(TetoMaximoEmpresa > 0, MINIMO(Valor_Bruto_1007, TetoMaximoEmpresa), MAXIMO(0, Arredondar(Valor_Bruto_1007)))


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

SE NOT tabela_parametros.obter_flag(“HABILITAR_VERBA_1007”) ENTAO RETORNAR_VALOR(NULO) FIM_SE

SE NOT tabela_parametros.validar_processamento_permitido(holerite_atual.tipo_processamento) ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 1007 ignorada: Tipo de processamento não permitido.”) RETORNAR_VALOR(NULO) FIM_SE

2. Verificação de Lançamento Manual / Importação Externa (Fallback Prioritário)

valor_lancamento_manual = holerite_atual.obter_valor_lancamento_manual(“1007”) SE valor_lancamento_manual != NULO E valor_lancamento_manual >= 0.00 ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 1007 processada via Lançamento Manual: R$ ” + CONVERTER_PARA_TEXTO(valor_lancamento_manual)) REGISTRAR_EVENTO_INFORMATIVO(“1007”, valor_lancamento_manual) RETORNAR_VALOR(NULO) FIM_SE

3. Determinação da Lógica de Cálculo por Modalidade/Categoria

valor_final_seguro = 0.00 modalidade_calculo = tabela_parametros.obter_modalidade_calculo_categoria(colaborador.categoria_profissional, colaborador.tipo_vinculo)

  • Modalidade A: Valor Fixo Histórico por Tabela Vigente (Ex: Estagiários / Regras Específicas) SE modalidade_calculo == ENUM_MODALIDADE_SEGURO.VALOR_FIXO_HISTORICO ENTAO valor_final_seguro = tabela_parametros.obter_valor_fixo_vigente(“TABELA_SEGURO_FIXO”, colaborador.tipo_vinculo, holerite_atual.data_referencia)

  • Modalidade B: Vinculada à Rubrica de Base de Prêmio (Ex: Verba 890) SENAO SE modalidade_calculo == ENUM_MODALIDADE_SEGURO.BASE_VERBA_RUBRICA ENTAO codigo_verba_base = tabela_parametros.obter_codigo_verba(“VERBA_BASE_PREMIO_SEGURO”) // Default: 890 valor_base_rubrica = holerite_atual.obter_valor_total_verba(codigo_verba_base)

    SE valor_base_rubrica > 0.00 ENTAO valor_final_seguro = valor_base_rubrica SENAO Fallback para Modalidade Dinâmica de Benefício no Cadastro valor_final_seguro = CALCULAR_SEGURO_CADASTRO_BENEFICIO(colaborador, tabela_parametros) FIM_SE

  • Modalidade C: Apuração por Benefício de Cadastro (Produto / Apolice) SENAO SE modalidade_calculo == ENUM_MODALIDADE_SEGURO.BENEFICIO_CADASTRO ENTAO valor_final_seguro = CALCULAR_SEGURO_CADASTRO_BENEFICIO(colaborador, tabela_parametros)

  • Modalidade D: Fórmula Paramétrica por Fator/Multiplicador (Ex: Prudential e Apólices Globais) SENAO SE modalidade_calculo == ENUM_MODALIDADE_SEGURO.FORMULA_FATOR_MULTIPLICADOR ENTAO obj_beneficio = colaborador.obter_beneficio_vigente_por_grupo(“SEGURO_DE_VIDA”)

    SE obj_beneficio == NULO ENTAO REGISTRAR_LOG_INFORMATIVO(“Verba 1007 não processada: Benefício de Seguro de Vida não encontrado no cadastro do colaborador.”) RETORNAR_VALOR(NULO) FIM_SE

base_calculo = colaborador.salario_nominal multiplicador_capital = tabela_parametros.obter_decimal(“FATOR_MULTIPLICADOR_CAPITAL”) // Ex: 36 taxa_aliquota = tabela_parametros.obter_taxa_vigente_data(“TABELA_TAXA_SEGURO_VIDA”, obj_beneficio.codigo_provedor, holerite_atual.data_referencia) divisor_fator = tabela_parametros.obter_decimal(“DIVISOR_FATOR_SEGURO”) // Ex: 1000.00 ou 100.00

SE divisor_fator > 0.00 ENTAO valor_final_seguro = (base_calculo * multiplicador_capital * taxa_aliquota) / divisor_fator FIM_SE FIM_SE

4. Aplicação de Limites, Tetos e Gravação de Resultados

teto_maximo = tabela_parametros.obter_decimal(“TETO_MAXIMO_SEGURO_VIDA_EMPRESA”) SE teto_maximo > 0.00 E valor_final_seguro > teto_maximo ENTAO valor_final_seguro = teto_maximo FIM_SE

valor_final_seguro = ARREDONDAR_PADRAO(MAXIMO(0.00, valor_final_seguro))

SE valor_final_seguro > 0.00 ENTAO instancia_info = holerite_atual.criar_instancia_informacao(“1007”) instancia_info.valor_total = valor_final_seguro 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 1007 calculada com sucesso. Valor Custo Empresa: R$ ” + CONVERTER_PARA_TEXTO(valor_final_seguro)) FIM_SE

RETORNAR_VALOR(NULO) FIM_FUNCAO

FUNCAO CALCULAR_SEGURO_CADASTRO_BENEFICIO(colaborador, tabela_parametros): obj_beneficio = colaborador.obter_beneficio_vigente_por_grupo(“SEGURO_DE_VIDA”) SE obj_beneficio == NULO ENTAO RETORNAR_VALOR(0.00) FIM_SE

fator_multiplicador = tabela_parametros.obter_decimal(“FATOR_MULTIPLICADOR_BENEFICIO”) // Ex: 2.0 valor_calculado = (colaborador.salario_nominal * (obj_beneficio.percentual_faixa_desconto / 100.00)) * fator_multiplicador

SE obj_beneficio.valor_teto > 0.00 E valor_calculado > obj_beneficio.valor_teto ENTAO valor_calculado = obj_beneficio.valor_teto FIM_SE

RETORNAR_VALOR(valor_calculado) FIM_FUNCAO


Parametrizações Propostas para Reestruturação

1. REGRAS DE ENTRADA E ELEGIBILIDADE GERAL

[X] Habilitar Processamento da Verba 1007

Tipos de Processamento Permitidos: [X] Folha Regular [ ] Adiantamento [ ] 13º Salário [X] Rescisão

[X] Permitir Sobregravação por Lançamento Manual / Importação Externa

2. REGRAS DE MATRIZ DE CÁLCULO POR CATEGORIA E VÍNCULO

Selecione o Comportamento de Cálculo por Tipo de Vínculo:

  • Vínculo: ESTAGIÁRIO

    Modalidade: (X) Valor Fixo por Tabela Histórica ( ) Apuração por Benefício de Cadastro ( ) Fórmula com Fator Multiplicador

    Tabela de Valores Fixos por Vigência:

    | Vigência Início | Valor Fixo (R$) | | 01/02/2026 | 4.53 | | 01/09/2024 | 5.06 | | 01/05/2024 | 5.32 | | 01/01/2024 | 5.06 |

  • Vínculo: EMPREGADO / CLT (Geral)

    Modalidade: ( ) Valor Fixo (X) Prioridade por Rubrica de Base (Verba 890) com Fallback Benefício ( ) Fórmula com Fator Multiplicador

    Verba Base de Prêmio Prioritária: [ 890 - BC Prêmio Seguro Vida ]

    Fator Multiplicador do Benefício: [ 2.0000 ]

  • Vínculo: ESPECIAL / APÓLICE ESPECÍFICA (Ex: Prudential / Provedor Específico)

    Modalidade: ( ) Valor Fixo ( ) Prioridade por Rubrica de Base (X) Fórmula com Fator Multiplicador (Capital x Taxa)

    Grupo de Benefício Exigido: [ SEGURO_DE_VIDA ]

    Multiplicador de Capital: [ 36.0000 ]

    Divisor do Fator de Cálculo: [ 1000.00 ]

    Tabela de Taxas por Vigência:

    | Vigência Início | Provedor | Taxa Aplicada (%) | | 01/01/2024 | PRUDENTIAL | 0.216519 | | 01/10/2018 | PRUDENTIAL | 0.208747 |

3. LIMITES E CONTABILIZAÇÃO

Teto Máximo do Seguro Parte Empresa: [ 0.00 ] (0.00 = Sem Limite Global)

[ ] Exibir Evento no Envelope de Pagamento (Holerite do Colaborador)

[X] Exportar Evento para Espelho Contábil (Encargo / Custo Benefício Empresa)

[X] Gravar no Barramento de Memória de Cálculo

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

  • Bundy: Absorvido integralmente. Para estagiários, utiliza a modalidade “Valor Fixo por Tabela Histórica”, configurando a tabela de vigências na interface. Para não-estagiários, aciona a modalidade “Prioridade por Rubrica de Base”, utilizando a verba 890 como entrada primária e o fallback do cadastro de benefícios com fator multiplicador 2.
  • Credinestle, Froneri e Jmalucelli: Absorvidos integralmente. A flag de suporte a lançamentos manuais processa diretamente os valores informados via interface ou integração externa.
  • Gallo: Absorvido integralmente. A condicional que buscava o texto "PRUDENTIAL" no código foi substituída pela modalidade “Fórmula com Fator Multiplicador”, vinculada ao Grupo de Benefício "SEGURO_DE_VIDA". O multiplicador de capital 36, o divisor 1000 e o histórico de taxas por data de referência (0.216519 a partir de 01/01/2024 e 0.208747 para períodos anteriores) são geridos 100% via parametrização.
  • CCAB e Crasa: Absorvidos integralmente. Por estarem com código legado comentado, o processamento é mantido desabilitado pela flag geral de ativação da verba.

Status Documental

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

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