Árvore de páginas

01. DADOS GERAIS

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

PNA020GRV

02. SITUAÇÃO/REQUISITO

Essa implementação possibilita que a manutenção feita no cadastro de Feriados possa ser replicada para outras tabelas, como por exemplo, a tabela 63 da SX5 que foi foco do desenvolvimento. 

03. SOLUÇÃO

Criado o ponto de entrada PNA020GRV para replicar os feriados cadastros, alterados ou excluídos na rotina "Feriados" (PONA020) em outras tabelas.

04. DEMAIS INFORMAÇÕES

Exemplo de uso do Ponto de entrada PNA020GRV.

#Include "rwmake.ch"
#Include "PROTHEUS.CH"

User Function PNA020GRV()
Local aArea			:= GetArea()
Local cFil			:= ParamIxb[1]
Local dData			:= ParamIxb[2]
Local cDescricao	:= ParamIxb[3]
Local nOpcao		:= ParamIxb[4]
Local cX5Descr		:= ""
Local cData			:= ""

cX5Descr := DtoC(dData) + Space(4) + cDescricao
cData := DtoC(dData)

//nOpcao = 1 - Inclusao
//nOpcao = 2 - Alteracao
//nOpcao = 3 - Exclusao

DbSelectArea("SX5")

If nOpcao == 1 // Inclusão
	If SX5->(RecLock("SX5", .T.))
		SX5->X5_FILIAL := xFilial("SX5", cFil)
		SX5->X5_TABELA := "63"
		SX5->X5_CHAVE  := "AAA"
		SX5->X5_DESCRI := cX5Descr
		SX5->(MsUnlock())
	EndIf
ElseIf nOpcao == 2 // Alteração
	If SX5->(Dbseek(xFilial("SX5", cFil)+"63"))
		While SX5->(!Eof() .And. X5_TABELA == "63")
			If Left(SX5->X5_DESCRI, 10) == cData
				If SX5->(RecLock( "SX5" , .F.))
					SX5->X5_DESCRI := cX5Descr
					SX5->(MsUnlock())
				EndIf
				Exit
			EndIF
			SX5->(dbSkip())
		End While
	EndIf
ElseIf nOpcao == 3 // Exclusao
	If SX5->(Dbseek(xFilial("SX5",cFil)+"63"))
		While SX5->( !Eof() .and. X5_TABELA == "63")
			If Left(SX5->X5_DESCRI, 10) == cData
				If SX5->(RecLock("SX5", .F., .T.))
					dbDelete()
					SX5->(MsUnlock())
				EndIf
				Exit
			EndIF
			SX5->(dbSkip())
		End While
	EndIf
EndIf

RestArea(aArea)
Return