Árvore de páginas

GPER200

Linha de Produto:

Microsiga Protheus

Segmento:

Recursos Humanos

Módulo:

SIGAGPE

Função:

GPER200

Situação/Requisito:

O cliente tem 4 empresas/filiais, gravadas no campo filial com 4 digitos, 0101,0201,0301 e 0401. Como o cálculo que precisavam realizar era em todas as empresas, foi escolhido as menores (0201 em diante) e em nenhuma funcionou. Quando cheguei no cliente hoje para ver o problema, foi solicitado o reajuste na filial 0101 e o sistema realizou o procedimento correto.

Peguei o fonte GPER200, de 03/01/2017 e rodei para avaliar o que acontece. Fizemos o teste usando como filial inicial e final 0201, e apenas para uma matricula.

Na linha 377, conforme a ordem 01 escolhido para o cálculo, o sistema realiza a função de busca na tabela SRA: dbSeek( cFilDe + cMatDe , .T. )
O sistema posiciona na filial correta e na matricula.
Mas, na linha 414 é realizado um dbgotop na tabela SRA, posicionando novamente no primeiro registro, nesse caso na filial 0101. A rotina começa o processamento, e na linha 439 ele armazena na variável cFilialAnt := SRA->RA_FILIAL,, no caso 0101.
A rotina processa as matriculas da filial 0101, mas assim que chega na filial 0201, na linha 434 ele faz uma comparação se SRA->RA_FILIAL # cFilialAnt, ou seja, identifica que a filial é 0201 e a variável cfilialant 0101, parando o restante de processamento não gerando reajustes de funcionários das demais filiais.

Solução/Implementação:

Alterada a função, para não da fazer o dbgotop, pois isso faz com que o registro que está selecionado seja desposicionado.

Pacotes:

12.1.16: https://suporte.totvs.com/portal/p/10098/download?e=655188 

12.1.17: https://suporte.totvs.com/portal/p/10098/download?e=655193