Árvore de páginas


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus
Segmento:Recursos Humanos
Módulo:SIGATCF
Função:TCFA040
Issue:

DRHGCH-14758

Pacotes:12.1.25:https://suporte.totvs.com/portal/p/10098/download?e=828418 ; 12.1.23:https://suporte.totvs.com/portal/p/10098/download?e=828417 ; 12.1.17:https://suporte.totvs.com/portal/p/10098/download?e=828416 ;


02. SITUAÇÃO/REQUISITO

Foram criados novos tipos de solicitações customizados para o portal GCH e precisamos que na rotina de atendimento das solicitações tenham pontos de entrada para podermos filtrar esses tipos ao apresentar a tela e para gravar as solicitações.

03. SOLUÇÃO

Foram criados dois pontos de entrada na rotina de atendimento de solicitações (TCFA040) para possibilitar o atendimento de solicitações customizadas.

O ponto de entrada TCF040TP permite adicionar tipos de solicitações no filtro do browse, permitindo assim exibir tipos customizados de solicitações.

Também foi criado o ponto de entrada TCF040GRV que é chamado antes do commit no banco, possibilitando a gravação das solicitações customizadas.


No ponto de entrada TCF040TP é passado como parâmetro o módulo que está executando a rotina, já que o filtro é definido por módulo.
O filtro padrão da rotina não será removido, o ponto de entrada permite apenas adicionar novos tipos de solicitação ao filtro já existente. O filtro da rotina é feito com base no campo RH3_TIPO.
O retorno do ponto de entrada deve ser do tipo Caracter contendo os tipos das solicitações tendo uma barra como separador entre os tipos.


Os tipos de solicitações filtrados pela rotina atualmente são:

Gestão de Pessoal GPE:

1 - Documentos;
2 - Alteração Cadastral;
4 - Transferência;
6 - Desligamento;
7 - Ação salarial;
B - Férias;
V - Subsídio acadêmico;

Recrutamento e Seleção RSP:

1 - Documentos;
2 - Alteração cadastral;
5 - Admissão;
9 - Inscrição em vaga;
H - Inscrição externa em vaga;

Treinamento TRM:

1 - Documentos;
2 - Alteração cadastral;
A - Reserva de treinamento;

Arquitetura Organizacional ORG:

1 - Documentos;
2 - Alteração cadastral;
3 - Criação / Aumento de postos;

Ponto eletrônico PON:

8 - Justificativa de horário;
Z - Marcação de ponto;

Vida Funcional VDF:

N - Alteração de jornada;
O - Saldo de Férias;
P - Férias e licença prêmio;
Q - Diárias;
R - Licenças e Afastamentos
S - Certidão Funcional;
T - Dias de Folga;


Todos os tipos de solicitações presentes no sistema podem ser visualizados na tabela SX5 tabela (X5_TABELA) JQ


Exemplo:

Nesse exemplo foram criados os novos tipo de solicitações X e Y, quero que no módulo gestão de pessoal (GPE) seja apresentado os dois tipo e que no Ponto eletrônico apenas o tipo X. Para esse cenário o ponto de entrada ficaria assim:



Para o ponto de entrada TCF040GRV é passado três parâmetros o Status (Tipo Caracter) da solicitação, um parâmetro lógico indicando o momento que o ponto de entrada foi chamado e o modelo da rotina TCFA040 com as informações da solicitação.

Status (PARAMIXB[1])

1 - Em processo de aprovação;
2 - Atendida;
3 - Reprovada;
4 - Aguardando Efetivação do RH;

lGravacao (PARAMIXB[2])

Quando verdadeiro (.T.) a solicitação já foi aprovada e será gravada, o ponto de entrada foi chamado antes da gravação.

Quando falso (.F.) o ponto de entrada foi chamado ao clicar no botão Aprovar ou Reprovar, para os tipos de solicitação customizados, definidos no ponto de entrada TCF040TP.
Nessa situação um retorno é esperando, indicando se será realizada a gravação.

oModel (PARAMIXB[3])

Modelo da rotina TCFA040 com as informações da solicitação.

Esse modelo possui dois submodelos: TCFA040_RH3 e TCFA040_RH4

Exemplo:

Nesse exemplo tem a estrutura esperada para o ponto de entrada.

Exemplo de estrutura do ponto de entrada
#INCLUDE "PROTHEUS.CH" 

User Function TCF040GRV()
	
	Local cStatus 	:= PARAMIXB[1] // "2" = Aprovação / "3" = Reprovação
	Local lGravacao := PARAMIXB[2] // .T. = Antes da gravação / .F. = Aprovação/Reprovação para tipos customizados
	Local oModel	:= PARAMIXB[2] // Modelo da rotina TCFA040
	Local xRetorno	:= NIL
	
	If cStatus == "2" // Aprovação
		If lGravacao
			/*
				Quando o lGravacao for .T. o ponto de entrada foi chamado 
				antes da gravação independente do tipo da solicitação.
				Nessa condição não é esperado nenhum retorno.
			*/
		Else
			/*
				Quando o lGravacao for .F. o ponto de entrada foi chamado ao clicar no botão Atender
				apenas para tipos de solicitação customizados. 
				Nessa condição é esperado um retorno, xReturn, 
				com qualquer conteúdo diferente de NIL será realizada a gravação.
			*/
			If oModel:GetModel("TCFA040_RH3"):GetValue("RH3_TIPO") == "X"
				/*
				Tratamentos para o tipo de solicitação X
				*/
			EndIf
			xRetorno := "1"
		EndIf
	ElseIf cStatus == "3" // Reprovação
		/*
		Tudo que precise ser feito quando a solicitação for reprovada
		*/
		If ! lGravacao
			/*
			Ações para Reprovação tipos de solicitação customizados
			*/
		EndIf
		
	EndIf
	
Return xRetorno