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:
- A verba verifica o Tipo de Vínculo do empregado.
- 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.
- O valor da verba é determinado por uma série de condições baseadas na
- 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
BCPremioSegVidafor maior que zero:- O valor da verba é igual a
BCPremioSegVida.
- O valor da verba é igual a
- Caso contrário (se
BCPremioSegVidafor zero ou negativo):- A base de cálculo
BC_1007é inicializada com oVG_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
VlrSegVidacomoVG_VlrSalNommultiplicado pelaVlrFaixaDescontodo benefício (dividido por 100) e por2, arredondado. - O valor final da verba é o menor entre
VlrSegVidae oValorTetodo benefício, também arredondado.
- Calcula um valor provisório
- Há um bloco de código comentado que, se ativo, calcularia a verba com base no
VG_VlrSalNome fatores percentuais variáveis por data de referência. Este bloco não está ativo no cálculo atual.
- A base de cálculo
- Primeiro, recupera o valor total da verba 890 (Base de Cálculo Prêmio Seguro Vida) e armazena em
-
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))
- Para Estagiários:
-
Variáveis Utilizadas:
Empregado.TipoVinculoSolicitacao.DataReferenciaHoleriteInformacao.ValorTotalBCPremioSegVidaVG_VlrSalNomBenefSegVidaVlrSegVidaBenefSegVida.VlrFaixaDescontoBenefSegVida.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.
- Verbas Relacionadas: A verba
-
Funções Identificadas:
SysFunc_NovaData(dia, mes, ano): Cria um objetoDateTimea 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:
- 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). - Se nenhum benefício com “PRUDENTIAL” for encontrado, a verba não é calculada (
return null). - Um percentual inicial de
0.208747Mé definido. - É verificada a data de referência da solicitação (
Solicitacao.DataReferencia). Se for igual ou posterior a 01/01/2024, o percentual é atualizado para0.216519M. - O valor final da verba é calculado multiplicando o Salário Nominal (
VG_VlrSalNom) por36, peloPercentualdeterminado e dividindo por1000. O resultado é então arredondado para o padrão.
- A verba inicia buscando na lista de benefícios fornecidos ao empregado (
-
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 oPercentualcom base na data de referência.
-
Funções Identificadas:
SysFunc_NovaData(dia, mes, ano): Cria um objetoDateTimecom 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:
- A verba inicia recuperando os dias de afastamento do tipo
Expatriado(diasExpatriadoTi). - O cálculo prossegue apenas se:
- Não houver proventos calculados ainda (
VG_TemAlgumProventoforfalse) OU - O número de dias de afastamento
Expatriadofor igual ou superior ao último dia do mês de referência (SysFunc_UltimoDiaMes(Solicitacao.DataReferencia).Day).
- Não houver proventos calculados ainda (
- 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 daDataReferencia. - 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.
- Para cada benefício encontrado:
- Benefícios marcados como
BeneficioManualsão ignorados. - É recuperado o
ValorBeneficioNaoUtilizadoatravés da funçãoFunc_RecuperaValorBeneficioNaoUtilizado. - Um dicionário (
DicionarioM) é populado comSalarioNominalEmpregado,Sal_Custo_Empresa,Remuneracao_BaseInss,Salario_Dias_Trabalhados(calculado como(SalarioNominalEmpregado / 30) * VG_DiasTrabalhadosBeneficio) eVlr_Beneficio_Nao_Utilizado. - Se o benefício não for novo (
Beneficio.BeneficioNovo == false), umvaloré calculado usandoCalcularBeneficio(fórmula 434) e adicionado ao dicionário. - A função
ExecutarFormulaBeneficioé chamada para calcular oValorDescontoBeneficiocom base no benefício e no dicionário de parâmetros. - A
Quantidadeda verba no holerite é definida como oSalarioNominalEmpregado. - O
ValorTotalda verba no holerite é definido como oValorDescontoBeneficioarredondado.
- Benefícios marcados como
- A verba inicia recuperando os dias de afastamento do tipo
-
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_DiasTrabalhadosBeneficioHoleriteInformacao.ValorTotal = Func_ArredondamentoPadrao(ValorDescontoBeneficio)
-
Variáveis Utilizadas:
diasExpatriadoTiVG_TemAlgumProventoSolicitacao.DataReferenciaEmpregado.Historico.ListaBeneficioFornecidoVG_HsMesVG_VlrSalNomVG_HsTrabVG_SCSalarioVG_SCProLaboreVG_DiasTrabalhadosBeneficioBeneficio.BeneficioManualBeneficio.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
valorviaCalcularBeneficioé 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.
- Não houver proventos calculados (
-
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 capital36, o divisor1000e o histórico de taxas por data de referência (0.216519a partir de 01/01/2024 e0.208747para 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