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?
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?
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
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?
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
Nesta 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
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
send presents to Pakistan since these are the times that one would never forget because giving and receiving gifts in friendship or love contains the enjoyment of both sides. People give gifts to their loved ones or friends on a daily basis as well as on special occasions such as birthdays, anniversaries, Ramadan, Eid, Mother's Day, Father's Day, Graduations, and Social Events to express their love, importance, gratitude, inspiration respect, and admiration, or any other emotion.
Receiving or sending a present is a common experience for nearly everyone; what makes it even more memorable is purchasing online from anywhere in the world and having it delivered to Pakistan fresh, elegantly packaged, and prepared.
send gifts to Karachi
Bom dia!
Se a condição do DbSeek não está entrando, é porque o registro não existe na tabela em questão ou existe alguma diferença entre o tamanho dos campos do conteúdo que está passando. Por exemplo: seu código do Produto na SC6 tem 20 de tamanho e o código de produto na SN1 tem 30 de tamanho.
Verifique se o produto em questão existe na SN1, se existir, verifique o tamanho dos campos se estão iguais. Caso não estiver, você pode utilizar a função PADR para completar com espaços em branco, por exemplo:
SN1->(DbSeek(xFilial("SN1") + PADR(cCodProd, TamSx3('N1_PRODUTO')[1])))
Além disso, confirme se o índice da SN1 está correto com o que está no seu banco de dados/SIX. Em minha base de testes por exemplo, o campo N1_PRODUTO não compõe o primeiro índice da tabela. O mesmo é composto pelos campos N1_FILIAL, N1_CBASE e N1_ITEM.
Observação: Existe um pequeno erro na sua variável dAtv, pois ela está obtendo o conteúdo do campo da SN1 antes do posicionamento. O correto é preencher ela após o posicionamento na tabela, dentro da condição do DbSeek, para só então calcular o conteúdo da variável cCalc.
Xavier muito obrigado, add o PADR, Alterei para o índice correto, e arrumei a variável dAtv para pegar o valor do campo N1_AQUISIC, depois de carregar o campo, com essas 3 alterações a validação funcionou, muito obrigado pela explicação e pela paciência
ship off Pakistan since these are the times that one could always remember presents since giving and getting gifts in kinship or love contains the delight in the two sides. Individuals give presents to their friends and family or companions consistently as well as on exceptional events like birthday events, commemorations, Ramadan, Eid, Mother's Day, Father's Day, Graduations, and Get-togethers to communicate their adoration, significance, appreciation, motivation regard, and reverence, or some other inclination.
Getting or sending a present is a typical encounter for almost everybody; what makes it considerably more essential is buying on the web from anyplace on the planet and having it conveyed to Pakistan new, carefully bundled, and ready.
send gifts to Pakistan