Bom dia Prezados.
Sou iniciante no ADVPL, e estou com uma duvida.
Estou fazendo uma validação para o campo C6_PRODUTO, que se o produto digitado neste campo tiver o cadastro de ativo N1_AQUISIC inferior a 12 meses, ele não permite concluir o Pedido de Venda.
Como sou novo no ADVPL estou tendo dificuldades em desenvolver o PE, fiz algo porém ao debugar as minhas variáveis não estão sendo chamadas no programa.
#Include 'Protheus.ch'
User Function VldAtvFix()
Local nNow := DATE()
Local dAtv := SN1->N1_AQUISIC
Local lRet := .T.
Local nPosProd := ASCan(aHeader, {|x|, Upper(Alltrim(x[2])) == "C6_PRODUTO"})
Local cCodProd := aCols[n,nPosProd]
Local cCalc := (nNow - dAtv) / 365
DbSelectArea("SN1")
SN1->(DbSetOrder(1)) // N1_FILIAL+N1_PRODUTO
If SN1->(DbSeek(xFilial("SN1") + cCodProd))
If cCalc <= 12
lRet := .F.
MsgAlert("Atenção!!! A Data do Ativo é inferior a 12 meses, Entrar em Contato com o Departamento Fiscal!!!", "VLDATVFIX")
EndIf
EndIf
Return lRet
Alguém poderia me da um help?
Qual PE está usando chefia?
— Leandro Lemos 18 de Jan de 2022Você colocou a sua função na validação do campo ou está utilizando dentro de algum Ponto de Entrada? Se estiver usando ponto de entrada, qual?
— Giordano Trabach Xavier 18 de Jan de 2022Boa noite senhores.
Não sei se é a melhor forma de desenvolver mas eu criei um arquivo .prw do zero, não utilizei nenhum PE
— Edito 19 de Jan de 2022Bom dia! Mas onde você está chamando a sua função? Você adicionou ela na validação do campo através da Base de Dados do Configurador?
— Giordano Trabach Xavier 19 de Jan de 2022Boa tarde Xavier, sim eu adicionei na validação do campo no CFG, debugando ele vai até o If onde posiciono na SN1 e depois já vai direto para o return, não entra na condição , será que no lugar da SN1 eu deveria posicionar a SC6
— edieesec 19 de Jan de 2022Nesta linha If SN1->(DbSeek(xFilial("SN1") + cCodProd)) tem que ficar assim If DbSeek(xFilial("SN1") + cCodProd) não precisa colocar o Alis SN1-> na frente do dbSeek
— Antonio Eduardo Clemente 27 de Sep de 2022