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? ×

José Henrique

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Sobre José Henrique

Conquistas de José Henrique

Recém-Chegado

Recém-Chegado (1/10)

  • Primeiro Post
  • Iniciador de Conversa
  • Um Ano se Passou
  • Primeiro Mês Completo
  • Primeira Semana Concluída

Distintivos Recentes

0

Reputação

  1. Segundo o suporte da Totvs somente a partir de versões 11.X. O modelo novo usado a partir de 11/02 não está disponível para versões 10.80 e o termo de homologação é diferente uma vez que a portaria foi atualizada em 2012. A única forma de ter o termo na versão 10.80 é redesenhá-lo manualmente o que seria trabalhoso já que a Totvs não disponibiliza mais suporte para versões 10.80
  2. 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
×
×
  • Criar Novo...

Informação Importante

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