Validação de Campo

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?

compartilhar
  • Qual PE está usando chefia?

    Leandro Lemos   18 de Jan de 2022
  • Você 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 2022
  • Boa 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 2022
  • Bom 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 2022
  • Boa 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 2022
Mostrar todos os 6 comentários>
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags protheus advpl campo ou faça a sua própria pergunta.