Solução/Implementação: | Realizar a aplicação do PE como última funcionalidade dentro do transaction e após a gravação de confirmação da reintegração, sendo na opção de "RETROATIVA A ADMISSÃO" (lOpc = .T.) ou "A PARTIR DA DATA DA DECISÃO JUDICIAL" (lOpc = .F.).Implementado o ponto de entrada ORG030MOV para realizar as validações necessárias no processo de controle para os congelamentos e cancelamentos de postos. Os parâmetros passados são: - lOpcReint: variável lógica, retornando .T. ou .F. de acordo com a opção da Reintegração.
- cFilFun: carrega a filial utilizada.
- cMatFun: carrega a matricula do funcionário. Na primeira opção, carrega a mesma, na segunda opção, será a matricula antiga e que se manterá desativada.
- cNewMat: carrega o conteúdo informado no campo 'Nova Matricula' antes de reintegrar e também será a nova matricula do funcionário. Somente será habilitado este campo/variável quando a reintegração for "A PARTIR DA DATA DA DECISÃO JUDICIAL" (lOpc = .F.).
- cTipoRes: carrega como último parâmetro, quando a reintegração for 'retroativa à admissão' e a rescisão utilizada estiver efetivada.
É passada a filial com a matrícula, pois no segundo caso, como tem que entrar e incluir um novo registro para a nova matrícula, o Sistema não fica posicionado no registro e, desta forma, ele consegue encontrar e continuar no registro correto- nOperação: Esse parâmetro é responsável em identificar ao PE a operação que está sendo realizada no momento, de acordo com os seguintes conteúdos:
- Conteúdo: 1 - indica se o processo é de pre-validação de um congelamento de posto;
- Conteúdo: 2 - indica se o processo é de pós-processamento de um congelamento de posto;
- Conteúdo: 3 - indica se o processo é de pre-validação de um cancelamento de posto;
- Conteúdo: 4 - indica se o processo é de pós-processamento de um cancelamento de posto;
- cFilial: carrega a filial posicionada da tabela RCL.
- cPosto: carrega o posto posicionado da tabela RCL.
- cDepartamento: carrega o departamento posicionado da tabela RCL.
- cStatus: carrega o status atual do registro posicionado da tabela RCL.
Observações importantes: - Para as operações de pre-validação de congelamento e cancelamento de postos, o retorno do ponto de entrada (User Function) deverá ser obrigatoriamente uma variável lógica, contendo: .T. ou .F., qualquer resposta diferente será ignorada.
Exemplo: Caso o cliente, solicite um congelamento de um posto, e o seu ponto de entrada retornar um .F., em virtude de alguma validação, o congelamento será interrompido. Entretanto, se a devolutiva da user function não for um conteúdo boleano, o congelamento será processado normalmente. - As operações de pós-processamento são realizadas dentro de uma transaction, ou seja, caso o processo seja abortado as atividades realizadas dentro da user function, serão canceladas.
Exemplo de utilização: #INCLUDE "PROTHEUS.CH" // Ponto de Entrada após reprovação da solicitaçãopara tratamento de congelamento/cancelamento de postos User Function GP810GRVORG030MOV() LocaL lOpc lOperac := PARAMIXB[1] Local cFil := PARAMIXB[2] Local cMat cPosto := PARAMIXB[3] Local cNewMat cDepto := PARAMIXB[4] Local cTipoRescStatus := PARAMIXB[5] MSGINFO('*** PE Reintegração Controle de Postos ***' +CRLF +CRLF; +'Opc ReintegraçãoOperacao : ' +cValToChar(lOpclOperac) +CRLF; +'Filial /Matrícula : ' +cFil +CRLF; +'/Posto : ' +cMat cPosto +CRLF; +'Nova Matrícula Departamento : ' +cNewMat cDepto +CRLF; +'Tipo Rescisão Status : ' +cTipoRescStatus, 'GP810GRVORG030MOV') Return(.t.) |