Ir para conteúdo
Seja Membro VIP - Remova Banners de Propagandas, Tenha Liberado Qualquer Download, Além de Acessos em Áreas Exclusivas!! ×
Quer acesso a todas as Áreas do Fórum, até aquelas só para membros VIPs? Também quer poder baixar qualquer ARQUIVO? ×

Fórmula De Aviso Prévio Indenizado


José Henrique

Posts Recomendados


  • Tópicos Que Criei:  1
  • Tópicos/Dia:  0.00
  • Meu Conteúdo:  2
  • Conteúdo/Dia:  0.00
  • Reputação:   0
  • Pontos/Conquistas:  20
  • Conteúdo Resolvido:  0
  • Dias Ganho:  0
  • Status:  Offline

Recentemente fiz o desligamento de uma funcionária e percebi que com a nova regra do aviso prévio a data projetada do aviso daria a ela mais um ano de casa. Surgiu portanto a dúvida com a projeção ela teria direito ainda mais a três dias de aviso além dos já projetados. Como o aviso prévio integra o tempo de serviço para fins legais e as notas técnicas do MTE corroboram esse entendimento a resposta é sim. Como sabemos até a versão que uso (11.40) essa projeção é feita utilizando uma fórmula que fica associada ao sindicato do funcionário, ocorre que a fórmula que estávamos usando continha a função tempo de casa que considera "a data de demissão - data de admissão " ignorando o aviso ou melhor a sua projeção. Solicitamos então uma nova fórmula através do suporte da Totvs e eles nos enviaram a fórmula abaixo

DECL DIAS, DATAAVISONOVA;

SETVAR(DATAAVISONOVA, TABFUNC('DTAVISOPREVIO','D'));

SETVAR(DIAS,MAX(30,MIN(90,((TCASA)*3)+30)));

ATRIBUI(1,DIAS);

SETVAR(DATAAVISONOVA, TABFUNC('DTAVISOPREVIO','D')+DIAS);

SE TABFUNC('DTAVISOPREVIO','D') + DIAS >=(MTDATA(DIADT(DTA),MESDT(DTA), ANODT(DATAAVISONOVA)))

ENTAO MEMORIA(1) +3 SENAO DIAS FIMSE

Parecia resolvido entretanto observou-se para outra funcionária que embora a projeção não somasse mais um ano, pois o aniversário da admissão já havia passado antes da demissão, a fórmula somava mais três dias. Observou-se então que sempre que a data de aniversário ocorria antes da demissão a fórmula somava mais três dias independente de completar mais um ano ou não. Cheguei a pensar que o sistema estava falhando na execução da função ">=" entretanto com tempo e após pensar em diversas formas complicadas de resolver a questão cheguei a conclusão que a falha estava justamente aí: se a projeção do aviso for maior ou igual a data de aniversário some mais três dias, era isso que estávamos dizendo ao sistema sem restrigir se essa data de aniversário ocorreu há uma semana ou onze meses.

Para resolver incluí uma linha na fórmula que limita a inserção de mais três dias somente quando o novo aniversário ocorrer no período de projeção propriamanente dito, ficando assim:

DECL DIAS, DATAAVISONOVA;

SETVAR(DATAAVISONOVA, TABFUNC('DTAVISOPREVIO','D'));

SETVAR(DIAS,MAX(30,MIN(90,((TCASA)*3)+30)));

ATRIBUI(1,DIAS);

SETVAR(DATAAVISONOVA, TABFUNC('DTAVISOPREVIO','D')+DIAS);

SE TABFUNC('DTAVISOPREVIO','D') + DIAS >=(MTDATA(DIADT(DTA),MESDT(DTA), ANODT(DATAAVISONOVA)))

ENTAO SE TABFUNC('DTAVISOPREVIO','D') <(MTDATA(DIADT(DTA),MESDT(DTA), ANODT(DATAAVISONOVA))) ENTAO MEMORIA(1) +3 SENAO DIAS FIMSE SENAO DIAS FIMSE

Com essa nova condição somente se o aniversário de admissão ocorrer após a data de aviso prévio é que o sistema vai incluir mais três dias , caso contrário já está computado no tempo de casa. Essa fórmula funciona perfeitamente para funcionários demitidos, quando se realiza a demissão o campo data de aviso é preenchido automaticamente então basta executar a fórmula e a projeção é calculada considerando a possibilidade de novo aniversário durante a mesma. Entretanto para ativos não funcionaria pois a data de aviso prévio destes é 00/00/0000. Então, na comparação, como a fórmula vai usar esse ano para montar a data a data do aviso projetado pode acabar sendo menor que o aniversário. Não compromete o cálculo já que todo demitido tem sua data de aviso mas para completar o raciocínio incluí a cláusula que permite que a fórmula seja usada também para ativos ficou assim:

DECL DIAS, DATAAVISONOVA;

SETVAR(DATAAVISONOVA, TABFUNC('DTAVISOPREVIO','D'));

SETVAR(DIAS,MAX(30,MIN(90,((TCASA)*3)+30)));

ATRIBUI(1,DIAS);

SETVAR(DATAAVISONOVA, TABFUNC('DTAVISOPREVIO','D')+DIAS);

se TABFUNC('DTAVISOPREVIO','D') = '00/00/0000' entao SE HOJE + DIAS >=(MTDATA(DIADT(DTA),MESDT(DTA), ANODT(HOJE)))

ENTAO SE HOJE <(MTDATA(DIADT(DTA),MESDT(DTA), ANODT(HOJE))) ENTAO MEMORIA(1) +3 SENAO DIAS FIMSE

SENAO DIAS FIMSE SENAO

SE TABFUNC('DTAVISOPREVIO','D') + DIAS >=(MTDATA(DIADT(DTA),MESDT(DTA), ANODT(DATAAVISONOVA)))

ENTAO SE TABFUNC('DTAVISOPREVIO','D') <(MTDATA(DIADT(DTA),MESDT(DTA), ANODT(DATAAVISONOVA))) ENTAO MEMORIA(1) +3 SENAO DIAS FIMSE

SENAO DIAS FIMSE FIMSE

Essa fórmula permite calcular a projeção para funcionários ativos considerando o que ocorreria se o aviso fosse hoje. O incoveniente é que a função hoje usa a hora e data do sistema operacional, um módulo externo ao RM, o que faz a execução da fórmula ser bem lenta, então na verdade recomendo a utilização da anterior para cálculo de rescisões essa somente para testes e simulações.

Fica a dica

Editado por José Henrique
Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  284
  • Tópicos/Dia:  0.04
  • Meu Conteúdo:  2.117
  • Conteúdo/Dia:  0.32
  • Reputação:   10
  • Pontos/Conquistas:  13.363
  • Conteúdo Resolvido:  0
  • Dias Ganho:  9
  • Status:  Offline
  • Idade:  45

Experimenta essa:

DECL DiasAteDem,DataProj,TCASA2;

SETVAR(DiasAteDem,(MAX(30,MIN(90,((INT((DTD-DTA)/365.25))*3)+30))))

Link para comentar
Compartilhar em outros sites


  • Tópicos Que Criei:  30
  • Tópicos/Dia:  0.01
  • Meu Conteúdo:  152
  • Conteúdo/Dia:  0.03
  • Reputação:   3
  • Pontos/Conquistas:  1.193
  • Conteúdo Resolvido:  0
  • Dias Ganho:  5
  • Status:  Offline
  • Idade:  36
  • Dispositivo:  Windows

Experimenta essa:

DECL DiasAteDem,DataProj,TCASA2;

SETVAR(DiasAteDem,(MAX(30,MIN(90,((INT((DTD-DTA)/365.25))*3)+30))))

Essa formula funciona, porem ela só me retorna a quantidade de dias de aviso prévio indenizado, porem o valor não é calculado conforme a quantidade de dias.

Link para comentar
Compartilhar em outros sites

Participe da conversa

Você pode postar agora, e se registrar mais tarde. Se você tiver uma conta, faça o login agora para postar com sua conta.

Visitante
Responder esse tópico

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Seu link foi automaticamente inserido no corpo do post.   Exibir como um link

×   Seu conteúdo anterior foi restaurado.   Limpar conteúdo do editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Criar Novo...

Informação Importante

Usando este site, você concorda com nossos Termos de Uso e nossa Política de Privacidade.