Wiki / SuperCalculo ~5 min

743 - Desc. Seguro Saúde Coparticipação Mês Anterior [BN]

⚙️ Metadados

  • Código: 743
  • Tipo: Desconto
  • INSS: ISE
  • FGTS: ISE
  • IRRF: ISE
  • Natureza eSocial: 9219 - Desconto de assistência médica ou odontológica - Plano coletivo empresarial
  • DSR: Não
  • Médias: Não
  • Impacto Financeiro: Não
  • Impacto Contábil: Sim
  • Sequência: 191

🧮 Regra Geral

  • Lógica de Cálculo:

    1. A verba busca no histórico de lançamentos de benefício saúde do empregado todas as entradas que correspondem ao codigo da verba (743) e que são do tipo EnumBeneficioSaudeBO.CoparticipacaoMesAnterior (tipo 5).
    2. Para cada lançamento encontrado, verifica se a DataReferencia da folha de pagamento está dentro do período de DataInicioVigencia e DataFimVigencia do lançamento do benefício.
    3. Se o valor do lançamento (objBeneficioSaude.ValorLancamento) for diferente de zero, o processo continua.
    4. A verba busca o objeto VerbaBO correspondente ao codigo atual na lista de verbas da execução do cálculo.
    5. Se a verba for encontrada, busca um ComplementoVerbaBO associado ao idComplementoVerba do lançamento do benefício.
    6. Se o complemento for encontrado, a Descricao do complemento é usada como base para complementoVerba.
    7. Verifica se as datas de DataInicioVigencia e DataFimVigencia do lançamento do benefício estão no mesmo mês e ano usando a função SysFunc_MesmoMesAno.
      • Se sim, o complementoVerba permanece a Descricao original do complemento.
      • Se não, o complementoVerba é formatado como "{Descricao do Complemento} - Parcelado".
    8. Cria um novo objeto HoleriteVerbaBO com o codigo e descricao da verba.
    9. A DescricaoFinal da verba no holerite é definida como "{Descrição da Verba} - {Complemento da Verba}".
    10. O IdComplementoSistemaOrigem é atribuído.
    11. O ValorTotal da verba é definido como o valor negativo do ValorLancamento do benefício (Negativo(objBeneficioSaude.ValorLancamento)).
    12. A verba é adicionada à lista de verbas do holerite.
  • Variáveis Utilizadas:

    • codigo
    • descricao
    • Empregado.Historico.ListaLancamentoBeneficioSaude
    • objBeneficioSaude.CodVerba
    • objBeneficioSaude.TipoLancamento
    • Solicitacao.DataReferencia
    • objBeneficioSaude.DataInicioVigencia
    • objBeneficioSaude.DataFimVigencia
    • objBeneficioSaude.ValorLancamento
    • ExecucaoCalculo.ListaVerba
    • objVerba.ListaComplementoVerba
    • objBeneficioSaude.idComplementoVerba
    • objComplemento.Descricao.
  • Condições Especiais:

    • Verifica se o TipoLancamento do benefício é EnumBeneficioSaudeBO.CoparticipacaoMesAnterior.
    • Valida se a Solicitacao.DataReferencia está dentro do período de vigência do lançamento do benefício.
    • Verifica se o ValorLancamento do benefício é diferente de zero.
    • Verifica a existência da VerbaBO e do ComplementoVerbaBO antes de utilizá-los.
    • Condiciona a adição de ” - Parcelado” ao complemento da verba se as datas de início e fim de vigência do lançamento não forem do mesmo mês e ano.

🧩 Funções

  • SysFunc_MesmoMesAno(DateTime data1, DateTime data2): Verifica se duas datas estão no mesmo mês e ano.
  • CriarVerbaHoleriteVerbaBO(string codigo, string descricao): Função auxiliar para instanciar um objeto de verba de holerite.
  • Negativo(decimal valor): Retorna o valor de entrada com sinal negativo.

💡 Proposta de Novo Cálculo

Fórmula proposta (padronizada):

ValorCapturado = SE(PermitirSobrescrita E ExisteLancamentoManual(743), ValorLancadoManual, ABSOLUTO(ValorLancamentoCoparticipacao))

ValorDescontoFinal = SE(ProcessoPermitido E VigenciaValida E TipoLancamento == CoparticipacaoMesAnterior E ValorCapturado > 0, ARREDONDAR(LIMITAR(ValorCapturado, PisoMinimo, TetoMaximo)), 0)


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

SE Solicitacao.TipoProcesso == PROVISOES E NAO Config.PermitirCalculoEmProvisoes ENTÃO RETORNAR NULO FIM_SE

SE NAO Config.TiposFolhaPermitidos.Contem(Solicitacao.TipoFolha) ENTÃO RETORNAR NULO FIM_SE

Validação da Existência da Lista de Benefícios de Saúde do Empregado SE Empregado.Historico.ListaLancamentoBeneficioSaude == NULO OU Empregado.Historico.ListaLancamentoBeneficioSaude.EstaVazia() ENTÃO RETORNAR NULO FIM_SE

2. Iteração e Filtragem do Módulo de Benefícios de Saúde

Filtra lançamentos da verba 743 com tipo CoparticipacaoMesAnterior (Tipo 5) dentro da vigência ListaLancamentosFiltrados = Empregado.Historico.ListaLancamentoBeneficioSaude.Filtrar( b => b.CodVerba == “743” E b.TipoLancamento == EnumBeneficioSaudeBO.CoparticipacaoMesAnterior E Solicitacao.DataReferencia >= b.DataInicioVigencia E Solicitacao.DataReferencia <= b.DataFimVigencia E b.ValorLancamento != 0.0 )

SE ListaLancamentosFiltrados.EstaVazia() ENTÃO RETORNAR NULO FIM_SE

PARA CADA LancamentoBeneficio EM ListaLancamentosFiltrados FAÇA

ValorBrutoCalculado = 0.0

Sobrescrita via Lançamento Manual Direto na Folha (se habilitado) VlrLancadoManual = Holerite.ObterValorLancamentoManual(“743”) SE Config.PermitirSobrescritaManual E VlrLancadoManual != NULO E VlrLancadoManual > 0.0 ENTÃO ValorBrutoCalculado = VlrLancadoManual SENÃO ValorBrutoCalculado = Func_Absoluto(LancamentoBeneficio.ValorLancamento) FIM_SE

SE ValorBrutoCalculado <= 0.0 ENTÃO CONTINUAR FIM_SE

3. Aplicação de Limites, Tetos e Arredondamento

ValorAbsoluto = Func_Absoluto(ValorBrutoCalculado)

SE Config.PossuiTetoMaximo E ValorAbsoluto > Config.ValorTetoMaximo ENTÃO ValorAbsoluto = Config.ValorTetoMaximo SENÃO SE Config.PossuiPisoMinimo E ValorAbsoluto < Config.ValorPisoMinimo ENTÃO ValorAbsoluto = Config.ValorPisoMinimo FIM_SE

ValorDescontoFinal = Func_ArredondamentoPadrao(ValorAbsoluto)

SE ValorDescontoFinal <= 0.0 E NAO Config.GravarVerbaZerada ENTÃO CONTINUAR FIM_SE

Determinação do Complemento de Descrição e Regra de Parcelamento TextoComplemento = "" ObjComplemento = VerbaOriginal(“743”).ObterComplemento(LancamentoBeneficio.IdComplementoVerba)

SE ObjComplemento != NULO ENTÃO EhMesmoMesAno = SysFunc_MesmoMesAno(LancamentoBeneficio.DataInicioVigencia, LancamentoBeneficio.DataFimVigencia) SE EhMesmoMesAno ENTÃO TextoComplemento = ObjComplemento.Descricao SENÃO TextoComplemento = String.Format(“{0} - {1}”, ObjComplemento.Descricao, Config.TextoSufixoParcelado) FIM_SE FIM_SE

4. Gravação de Campos, Acumuladores e Registro da Verba (743)

NovaVerba = CriarVerbaHoleriteBO(“743”, Config.DescricaoPadrao) NovaVerba.TipoVerba = “D” // Tipo: Desconto NovaVerba.ValorBase = ValorDescontoFinal NovaVerba.Quantidade = LancamentoBeneficio.QuantidadeParcelas > 0 ? LancamentoBeneficio.QuantidadeParcelas : 1.0 NovaVerba.ValorTotal = ValorDescontoFinal

SE TextoComplemento != "" ENTÃO NovaVerba.DescricaoFinal = String.Format(“{0} - {1}”, Config.DescricaoPadrao.Trim(), TextoComplemento.Trim()) SENÃO NovaVerba.DescricaoFinal = Config.DescricaoPadrao.Trim() FIM_SE

SE ObjComplemento != NULO ENTÃO NovaVerba.IdComplementoSistemaOrigem = ObjComplemento.Id FIM_SE

NovaVerba.TipoIncidenciaINSS = Config.IncidenciaINSS // Padrão: ISE (Isento) NovaVerba.TipoIncidenciaFGTS = Config.IncidenciaFGTS // Padrão: ISE (Isento) NovaVerba.TipoIncidenciaIRRF = Config.IncidenciaIRRF // Padrão: ISE (Isento) NovaVerba.NaturezaeSocial = Config.NaturezaeSocial // Padrão: 9219 - Desconto de assistência médica

CopiarIncidencias(VerbaOriginal(“743”), NovaVerba)

NovaVerba.ImpactoFinanceiro = Config.ImpactoFinanceiro // Conforme ficha técnica: Não NovaVerba.ImpactoContabil = Config.ImpactoContabil // Conforme ficha técnica: Sim

SE Config.AtualizarAcumuladorBeneficios ENTÃO VG_TotalCoparticipacaoSaudeMesAnterior = VG_TotalCoparticipacaoSaudeMesAnterior + ValorDescontoFinal FIM_SE

Registro de Memória de Cálculo Transparente EscreverMemoria(“DESC_COPARTICIPACAO_SAUDE_MA”, String.Format(“Desconto Coparticipação Saúde Mês Anterior: Benefício ID = {0}, Valor Origem = R$ {1}, Desconto Final = R$ {2}”, LancamentoBeneficio.Id, ValorBrutoCalculado.ToString(“N2”), ValorDescontoFinal.ToString(“N2”)))

Holerite.ListaHoleriteVerba.Adicionar(NovaVerba)

FIM_PARA

FIM


Parametrizações Propostas para Reestruturação

1. REGRAS DE ENTRADA E FILTROS DE ELEGIBILIDADE

[ ] Permitir Execução no Processo de Provisões

Tipos de Folha Permitidos …: [X] Regular [X] Rescisão [X] Complementar

[X] Origem Obrigatória do Módulo de Benefícios de Saúde (ListaLancamentoBeneficioSaude)

Tipo de Lançamento Requerido …: [ CoparticipacaoMesAnterior (Tipo 5) v ]

[X] Validar Intervalo de Vigência da Data de Referência (DataInicioVigencia a DataFimVigencia)

2. INTEGRAÇÃO DE BENEFÍCIOS E FORMATO DE COMPLEMENTO

Modo de Captura de Valores …: [ 1. Valor do Lançamento do Benefício v ]

[X] Permitir Sobrescrita por Lançamento Manual na Folha

Sufixo para Lançamentos Parcelados …: [ Parcelado ]

Formatação da Descrição Final …: [ Descrição Padrão + Complemento + Sufixo v ]

3. DIRETRIZES DE PROTEÇÃO, LIMITES E ARREDONDAMENTO

[ ] Aplicar Teto Máximo de Desconto

Valor Teto Máximo …: [ 0,00 ]

[ ] Aplicar Piso Mínimo de Desconto

Valor Piso Mínimo …: [ 0,00 ]

Regra de Arredondamento/Ajuste …: [ Arredondamento Padrão (Func_ArredondamentoPadrao) v ]

[ ] Permitir Gravação da Rubrica com Valor Zerado

4. FORMATAÇÃO E IMPACTOS

Descrição Padrão da Rubrica …: [ Desc. Seguro Saúde Coparticipação Mês Anterior [BN] ]

Tipo da Rubrica …: [ Desconto ]

Impacto Financeiro …: [ ] Sim [X] Não

Impacto Contábil …: [X] Sim [ ] Não

[X] Atualizar Acumulador Global de Benefícios de Saúde

5. TRIBUTAÇÃO E ENVIOS ESOCIAL

Natureza eSocial …: [ 9219 - Desconto de assistência médica ou odontológica ]

Incidência INSS …: [ Isento (ISE) ]

Incidência FGTS …: [ Isento (ISE) ]

Incidência IRRF …: [ Isento (ISE) ]

Clientes com mesma regra

  • Padrão Geral do Módulo de Benefícios (Todos os Clientes): O comportamento legado --- pautado na busca na ListaLancamentoBeneficioSaude por registros do tipo EnumBeneficioSaudeBO.CoparticipacaoMesAnterior (tipo 5), validação de vigência, associação de complemento e verificação condicional de parcelamento via SysFunc_MesmoMesAno --- é absorvido nativamente pelo motor unificado.
  • A parametrização preserva a sequência de execução 191 e todos os metadados da ficha técnica: Tipo “Desconto”, ISENÇÃO de INSS, FGTS e IRRF (ISE), Natureza eSocial 9219, DSR “Não”, Médias “Não”, Impacto Financeiro “Não” e Impacto Contábil “Sim”.

Status Documental

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

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