Para criação de fórmulas na central de benefícios, antes precisamos entender o conceito geral da variável EHBEN, é bem simples:
IF(EHBEN = ‘S’,
- Nesta primeira condição da pergunta “Se é beneficiário?”, devemos criar a nossa fórmula onde vamos descontar do funcionário sua parcela do benefício;
- Na segunda condição, no caso a negativa de que não é beneficiário, sendo assim entra a parte da fórmula em que a empresa arca com o valor do benefício.
Existe uma outra condição também que é a SEQUÊNCIA.
Essa condição é usada praticamente em plano de saúde e odontológico, onde encontramos dependentes. A regra geral é que se a SEQUENCIA = 0, estamos falando sempre de titular, e se for SEQUENCIA > 0, ou seja, maior que 0, é sempre um dependente, por exemplo:
IF(EHBEN = ‘S’,
IF(SEQUENCIA > 0,
Estamos tratando aqui de dois fatores:
- 1ª condição: já vimos que nessa primeira parte é onde entrará o desconto do beneficiário (funcionário), agora estamos dentro da condição de que a SEQUENCIA é maior que 0, ou seja, quem entrar aqui com certeza é um dependente, então devemos criar a condição para desconto do dependente;
- 2ª condição: da SEQUENCIA, é uma lógica, se não for maior que 0, é 0, então é titular, devemos por aqui a condição de desconto para o titular.
Voltamos agora a condição negativa de que não é um beneficiário, então a partir desse ponto tudo será custeado pela empresa.
Outro exemplo mais simples:
IF(EHBEN = ‘S’,
IF(SEQUENCIA > 0,
Desconto do Dependente,
Desconto do Titular),
Desconto Parte Empresa)
Vale transporte/ Vale alimentação
De regra geral nós temos uma função "DiasTrabProximaReferencia", que calcula os dias úteis que serão trabalhados analisando algumas variações: Carga horária, Feriados, Afastamentos e Férias. Através dessa composição a função determina quantos dias úteis você irá trabalhar e com isso podemos chegar ao valor do vale.
DiasTrabProximaReferencia(CODEMP, CODFUNC, DTOC(REFERENCIA))
Sem desconto do valor de recarga:
IF(EHBEN = 'S',0,(PDES('VALOR','TFPVAL','CODEMP='+STR(CODEMP)+' AND CODFUNC='+STR(CODFUN |
Desmistificando:
IF(EHBEN = 'S',0,
Já entendemos então, que nesse caso o funcionário não terá desconto algum.
PDES('VALOR','TFPVAL','CODEMP='+STR(CODEMP)+' AND CODFUNC='+STR(CODFUNC)+' AND TIPO='T''), uma estrutura de PDES para buscar da tabela TFPVAL (Onde cadastramos os optantes pelo Vale Transporte / Alimentação), o campo VALOR. Ou seja, o valor diário do VT.
PDES('PASSESDIA','TFPVAL','CODEMP='+STR(CODEMP)+' AND CODFUNC='+STR(CODFUNC)+' AND TIPO='T''), mudando apenas do campo VALOR para buscar o campo PASSESDIA, ou seja, a quantidade diária de passes.
DiasTrabProximaReferencia(CODEMP, CODFUNC, DTOC(REFERENCIA))
Como já falamos, a função que calcula os dias úteis trabalhados.
Então:
(PDES 1 * PDES 2) * DIAS ÚTEIS.
Descontando faltas e atestados do valor de recarga:
Como esse caso também é comum nos nossos parceiros, temos duas funções nativas que já faz essa leitura:
FBM(QueFuncionario.CODEMP,QueFuncionario.CODFUNC,&REFERE,'M','102','I')
É uma função em que buscamos do movimento do funcionário, a quantidade do índice do evento 102. Ou seja, ao alimentar a rotina de faltas, o movimento é alimentado automaticamente, e essa função busca de lá essa quantidade.
FDiasAbsenteismo(QueFuncionario.CODEMP,QueFuncionario.CODFUNC,&REFERE,'T')
É uma função que busca os atestados médicos lançados na referência da recarga.
Mas temos uma diferença, ela analisa exatamente a quantidade de atestados que corresponde a carga horária do funcionário, pois atestados lançados em dias não úteis não são levados em consideração para abatimento da recarga.
IF(EHBEN = 'S',0,(PDES('VALOR','TFPVAL','CODEMP='+STR(CODEMP)+' AND CODFUNC='+STR(CODF |
A única diferença aqui é que pegamos a:
DiasTrabProximaReferencia(CODEMP, CODFUNC, DTOC(REFERENCIA))
E subtraímos os dias úteis encontrados pela soma das faltas e atestados ou seja:
DiasTrabProximaReferencia(CODEMP, CODFUNC, DTOC(REFERENCIA)) - |
Se o funcionário teria 22 dias úteis mas tem 3 faltas e 2 dias úteis de atestado, ele ficará com uma recarga de 17 dias.
O que muda para o VA, é que nos PDES utilizados para buscar da TFPVAL o valor e a quantidade, o TIPO='A'.
- A = Alimentação
- T = Transporte.
Plano de saúde/odontológico
De maneira geral, para a regra de saúde usamos três artifícios.
- A função "fValorConvenio" (Análise de Titular)
- "fValorConvenioDPD" (Análise de dependente)
- E uma "Tabela de Faixa".
fValorConvenioDPD(CODEMP,CODFUNC,99,99,DTOC(REFERENCIA),'A',SEQUENCIA)
fValorConvenio(CODEMP,CODFUNC,99,99,DTOC(REFERENCIA),'A','S')
Podemos perceber aqui que temos o 3º e 4º parâmetro, 99 e 99. Respectivamente se referem a: Qual tabela de faixa? E qual o número da faixa?
Uma tabela de faixa é uma rotina usada em diversos casos onde queremos armazenar valores e posteriormente buscá-los para que algum cálculo seja efetuado. Nesse caso comumente nossos parceiros possuem para desconto de plano de saúde através de faixa etária, como segue um exemplo de cadastro:
- Limite da faixa: é onde informamos a idade;
- Valor (1,2,3): informamos o valor da mensalidade daquela faixa.
O entendimento ficaria assim: até 18 anos, a mensalidade é de R$100, de 19 á 24 R$150, de 25 em diante é R$240.
O trabalho das nossas funções fValorConvenio (Análise de títular) e fValorConvenioDPD (Análise de dependente) é justamente avaliar essa tabela de faixa, olhar a idade do funcionário e/ou dependente, e aplicar a tabela de faixa para trazer o valor.
Entendido isso, agora vamos aos exemplos.
É comum a empresa arcar com 100% do plano do titular, e o titular arcar com 100% de seus dependentes.
Aqui podemos observar que na parte do beneficiário, quando a SEQUENCIA for maior que 0, ou seja, dependente,
IF(EHBEN = 'S',
IF(SEQUENCIA > 0,
fValorConvenioDPD(CODEMP,CODFUNC,100,1,DTOC(REFERENCIA),'A',SEQUENCIA),0)
Vamos descontar totalmente o valor encontrado, e quando não for, será 0, pois será o titular. (Por isso a “,0”).
Agora, na parte da empresa, observamos que se a SEQUENCIA for maior que 0, ou seja, dependente, é 0, pois a empresa não arca com nada.
IF(SEQUENCIA > 0,0,
fValorConvenio(CODEMP,CODFUNC,100,1,DTOC(REFERENCIA),'A','S')))
Caso contrário, titular, a empresa arca com 100%.
Um outro cenário é quando a empresa arca com um determinado % (Vamos estipular aqui 50%) do valor do plano para o titular, mas ele ainda continuar arcando 100% para seus dependentes:
IF(EHBEN = 'S',
IF(SEQUENCIA > 0,
fValorConvenioDPD(CODEMP,CODFUNC,100,1,DTOC(REFERENCIA),'A',SEQUENCIA),
fValorConvenio(CODEMP,CODFUNC,100,1,DTOC(REFERENCIA),'A','S') * 0.50),
IF(SEQUENCIA > 0,0,
fValorConvenio(CODEMP,CODFUNC,100,1,DTOC(REFERENCIA),'A','S') * 0.50))
Aqui podemos perceber que a condição do beneficiário na parte do dependente se mantém,
IF(EHBEN = 'S',
IF(SEQUENCIA > 0,
fValorConvenioDPD(CODEMP,CODFUNC,100,1,DTOC(REFERENCIA),'A',SEQUENCIA),
Agora na parte do titular, tem uma nova função, em que seu resultado fica 50% do valor retornando:
fValorConvenio(CODEMP,CODFUNC,100,1,DTOC(REFERENCIA),'A','S') * 0.50),
E, na parte empresa, para dependente também se mantém:
IF(SEQUENCIA > 0,0,
Porém para o titular a empresa está arcando com outros 50%,
fValorConvenio(CODEMP,CODFUNC,100,1,DTOC(REFERENCIA),'A','S') * 0.50)).
Um outro cenário é quando a empresa arca com um determinado % tanto para o titular quanto para o dependente. Não é muito habitual, mas pode acontecer. (Vamos estipular aqui 50%).
IF(EHBEN = 'S',
IF(SEQUENCIA > 0,
fValorConvenioDPD(CODEMP,CODFUNC,100,1,DTOC(REFERENCIA),'A',SEQUENCIA) * 0.50, |
Podemos observar aqui que a única diferença é que na parte tanto do beneficiário quanto da parte empresa, entrou agora:
fValorConvenioDPD(CODEMP,CODFUNC,100,1,DTOC(REFERENCIA),'A',SEQUENCIA) * 0.50
Que ao invés de descontar o valor total encontrado via tabela de faixa, aplica apenas 50% dele.
Comentários
0 comentário
Por favor, entre para comentar.