Árvore de páginas


01. VISÃO GERAL

O ponto de entrada PN210VAL permite realizar validações no lançamento de abono na rotina de manutenção de apontamentos.
O ponto de entrada é executado na validação da linha, ao trocar de linha no grid e também ao confirmar as alterações.

O retorno do ponto de entrada determina se a linha alterada é válida ou não.

Rotina:

    • PONA210 - Manutenção de Abonos (A rotina é chamada ao utilizar a opção Abonar/Justificar na rotina de Manutenção de Apontamentos)

Parâmetros:

O ponto de entrada recebe por parâmetro as informações da linha digitada

ParamIxb[1] // informações da Linha com os campos da SPK

As variáveis private abaixo podem ser utilizadas para identificar qual evento está sendo abonado

cCodEve - Código do evento que está sendo abonado
nHrsEve - Horas calculadas para o evento

Retorno:

O ponto de entrada deve retornar um valor Lógico, .T. para verdadeiro ou .F. para falso

02. EXEMPLO DE UTILIZAÇÃO

Não permite abonar um evento de provento com um motivo de abono que tem vinculo um evento de desconto.

Filtro
#INCLUDE "RWMAKE.CH"

User Function PN210VAL()
	
	Local aLinha 		:= ParamIxb[1]
	Local nPosCodAbo	:= 0
	Local lRet			:= .T.
	Local cEvtAbo		:= ""
	
	nPosCodAbo := GdFieldPos( "PK_CODABO")
	
	If Posicione("SP9", 1, xFilial("SP9", SRA->RA_FILIAL) + cCodEve, "P9_TIPOCOD") $ "1|3" // Verifica se o evento que está sendo abonado é de Provento
		If nPosCodAbo > 0 .And. !Empty(aLinha[nPosCodAbo])
			cEvtAbo := Posicione("SP6", 1, xFilial("SP6", SRA->RA_FILIAL) + aLinha[nPosCodAbo], "P6_EVENTO") // Busca o evento vinculado ao motivo de abono
			If !Empty(cEvtAbo)
				If Posicione("SP9", 1, xFilial("SP9", SRA->RA_FILIAL) + cEvtAbo, "P9_TIPOCOD") $ "2|4" // Verifica se o evento do abono é de desconto
					MsgInfo("O motivo de abono utilizado utiliza um evento de desconto, utilize outro motivo.", "Atenção") // Não permite abonar um evento de provento com um de desconto
					lRet := .F.
				EndIf
			EndIf
		EndIf
	EndIf
	
Return lRet