× Linguagem de Programação ADVPL

Perguntas Documento de Entrada (Ped. Compra [F6])

Mais
10 anos 2 meses atrás - 10 anos 2 meses atrás #24839 por Darkbeo
Prezados,

Alguém já fez ou tem alguma ideia de como travar a seleção do pedido de compra mais antigo (Data de Entrega) para o produto informado?

Exemplo: Estou dando entrada em um Documento de Entrada e quando for informar os Produtos desse documento travar para que o usuário só consiga escolher os Pedidos de Compra [F6] mais antigos (Data de Entrega) daquele Produto.

Isso é possível ?
Ultima edição: 10 anos 2 meses atrás por Darkbeo. Razão: Correções

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24841 por inocenciojr
Roberto,

Não sei se existe um ponto de entrada exato pra isso, mas seria o caso um User Function que verificasse a SC7 em busca de todos os pedidos daquele produto e na hora de selecionar verificar se o numero bate com o mais antigo. Algo tipo assim.

Select * From RetSQLName("SC7") WHERE D2_PRODUTO = C7_PRODUTO ORDER BY C7_NUM

IF D2_PEDC > C7_NUM

MSGALERT("Favor escolher o pedido mais antigo para o produto", "Erro")
EndIf

Os campos nem sei se estão certos. É apenas uma idéia

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24842 por Darkbeo
Inocencio, Boa Tarde!

Também pensei em fazer essa validação executando um SELECT e fazer essa verificação no P.E. MT100LOK o problema é que esse P.E. só é executado no final de tudo, depois que o usuário já terminou a digitação de todo o documento.

Queria tentar fazer isso no ato da digitação de cada produto... Linha a Linha (aCols)

Mesmo assim fico grato pela atenção.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24843 por inocenciojr
Roberto,

E se você colocar essa função como gatilho no campo de seleção do pedido de compra?

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24851 por admin
tdn.totvs.com/pages/releaseview.action?pageId=6085425

ou

tdn.totvs.com/pages/releaseview.action?pageId=6085390

User Function MT100C7L()
Local aArea := GetArea()
Local nFreeQt
Local nX
dbSelectArea('SC7')
dbSetOrder(3)
If dbSeek(xFilial() + cA100For + '02')
While !Eof .And. SC7->C7_FORNECE == cA100For .And. SC7->C7_LOJA == '02'
nFreeQt := SC7->C7_QUANT - SC7->C7_QUJE - SC7->C7_QTDACLA
If nFreeQt > 0
aAdd(aArrSldo, {nFreeQt, RecNo()})
Aadd(aArrayF4, Array(Len(aCampos)))
For nX := 1 To Len(aCampos)
If aCampos[nX][3] != 'V'
aArrayF4[Len(aArrayF4)][nX] := FieldGet(FieldPos(aCampos[nX][1]))
Else
aArrayF4[Len(aArrayF4)][nX] := CriaVar(aCampos[nX][1],.T.)
Endif
Next
Endif
dbSkip()
End
Endif
RestArea(aArea)
Return NIL

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 2 meses atrás #24852 por admin

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.137 segundos
Joomla templates by a4joomla