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.
#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