- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Pontos de Entrada
- ITENS PEDIDO DE COMPRA
Perguntas ITENS PEDIDO DE COMPRA
- manoelcarlosjunior
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 116
- Obrigados Recebidos: 0
7 anos 7 meses atrás #32000
por manoelcarlosjunior
ITENS PEDIDO DE COMPRA foi criado por manoelcarlosjunior
SALVE MASTER´S ADVPL !!!
Galera preciso que o Protheus não gere pedido de compra cujos itens sejam em maior quantidade que os itens da solicitação de compra.
Achei um ponto MT120PCOK Só to apanhandonos campos que tenho que comparar alguém tem algum exemplo ?
Abç
Manoel Carlos Júnior
Galera preciso que o Protheus não gere pedido de compra cujos itens sejam em maior quantidade que os itens da solicitação de compra.
Achei um ponto MT120PCOK Só to apanhandonos campos que tenho que comparar alguém tem algum exemplo ?
Abç
Manoel Carlos Júnior
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
7 anos 7 meses atrás #32001
por admin
Respondido por admin no tópico ITENS PEDIDO DE COMPRA
Cara veja se ajuda, este ponto de entrada permite a validação do pedido de compra ou não após pressionar o botão confirma.
/*
±±ºPrograma ³mt120ok ºAutor ³Microsiga º Data ³ 11/11/03 º±±
±±ºDesc. ³ Apos digitacao do pedido de compras º±±
// Creio que seja durante a importação dos itens da SC para o PC, executado para cada item
*/
user function mt120ok()
local careasc1 := GetArea('SC1'), carea := GetArea(), _i
sc1->( dbsetorder(1) )
nPosCLVL := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_CLVL" } )
nPosNUMSC := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_NUMSC" } )
nPosITEMSC := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_ITEMSC" } )
nPosOBS := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_OBS" } )
nPosITEMCTA := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_ITEMCTA" } )
nPosCC := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_CC" } )
nPosCONTA := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_CONTA" } )
nPosVLRORC := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_VLRORC" } )
For _i := 1 to len(aCols)
If sc1->( dbseek( xfilial() + aCols[_i,nPosNUMSC] + aCols[_i,nPosITEMSC] ) )
aCols[_i,nPosOBS] := sc1->c1_obs
aCols[_i,nPosITEMCTA] := sc1->c1_itemcta
aCols[_i,nPosCC] := sc1->c1_cc
aCols[_i,nPosCONTA] := sc1->c1_conta
aCols[_i,nPosCLVL] := sc1->c1_clvl
aCols[_i,nPosVLRORC] := sc1->c1_vlrorc
Endif
Next
RestArea(careasc1)
RestArea(carea)
Return(.t.)
Por favor Acessar ou Registrar para participar da conversa.
- manoelcarlosjunior
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 116
- Obrigados Recebidos: 0
7 anos 7 meses atrás #32014
por manoelcarlosjunior
Respondido por manoelcarlosjunior no tópico ITENS PEDIDO DE COMPRA
Muito obrigado meu amigo o P.E. é exatamente esse o problema é que to apanhando na sintaxe na logica pois eu posso compra os itens do pedido com a solicitação mais o protheus deixa adicionar novas linhas no pedido de compra e eu posso pedir mais do produto em um outra linha. Não sei se fui claro.
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
7 anos 7 meses atrás - 7 anos 7 meses atrás #32020
por admin
Respondido por admin no tópico ITENS PEDIDO DE COMPRA
Veja se ajuda, não testei.
/*
±±ºPrograma ³mt120ok ºAutor ³Microsiga º Data ³ 11/11/03 º±±
±±ºDesc. ³ Apos digitacao do pedido de compras º±±
// Creio que seja durante a importação dos itens da SC para o PC, executado para cada item
*/
user function mt120ok()
local careasc1 := GetArea('SC1'), carea := GetArea(), _i
sc1->( dbsetorder(1) )
nPosNUMSC := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_NUMSC" } )
nPosITEMSC := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_ITEMSC" } )
nPosQUANT := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_QUANT" } )
nPosPRODUTO := ascan( aheader,{ |aVal| alltrim( aVal[2] ) == "C7_PRODUTO" } )
aProdSC1 := {} // Monta Array de Produtos Originados de SC
For _i := 1 to len(aCols)
If !aCols[_i][Len(aHeader)+1] .And. !Empty(aCols[_i,nPosNUMSC]) // Linha Nao Esta Deletada
nAchou := Ascan(aProdSC1,{|x| x[1]==aCols[_i,nPosPRODUTO]})
If Empty(nAchou)
AAdd(aProdSC1,{aCols[_i,nPosPRODUTO],;
aCols[_i,nPosQUANT]})
Else
aProdSC1[nAchou,2] += aCols[_i,nPosQUANT]
Endif
Endif
Next
// Valida Produtos Digitados a Mais no Pedido de Compras
// Caso o Produto já existe no array de SC´s então não permite a validação da tela
lRet := .T.
For _i := 1 to len(aCols)
If !aCols[_i][Len(aHeader)+1] .And. Empty(aCols[_i,nPosNUMSC]) // Linha Nao Esta Deletada
nAchou := Ascan(aProdSC1,{|x| x[1]==aCols[_i,nPosPRODUTO]})
If !Empty(nAchou)
MsgStop("Atenção Linha " + Str(_i,3) + " Produto " + aCols[_i,nPosPRODUTO] + " Já Foi Importado de Solicitação de Compras, Não Pode Ser Informado Novamente !")
lRet := .F.
Endif
Endif
Next
RestArea(careasc1)
RestArea(carea)
Return(lRet)
Ultima edição: 7 anos 7 meses atrás por admin.
Por favor Acessar ou Registrar para participar da conversa.
- manoelcarlosjunior
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 116
- Obrigados Recebidos: 0
7 anos 7 meses atrás #32035
por manoelcarlosjunior
Respondido por manoelcarlosjunior no tópico ITENS PEDIDO DE COMPRA
Muito Obrigado meu amigo deu certo a questão de acrescentar mas uma linha, mas o total de produtos em relação a solicitação de compra ainda esta passando colocar uma quantidade maior agora mudou a sentença. Infelizmente não da pra colocar imagens aqui na empresa que estou é bloqueado. se quiserem posso mandar por e-mail os prints da tela.
Ex.:
No caso abri uma solicitação com quantidade de 5 produtos na primeira linha solicitei 3
Na segunda linha fiz referência a mesma solicitação e ele fez a subtração normal mas quando efetivo ou confirmo eu posso alterar a quantidade mesmo na solicitação só tendo um valor inferior.
Não quero que o valor seja maior que a quantidade referida na solicitação de compra.
Conseguindo achar a solução posto aqui, assim nos ajudando.
Forte abraço !
Ex.:
No caso abri uma solicitação com quantidade de 5 produtos na primeira linha solicitei 3
Na segunda linha fiz referência a mesma solicitação e ele fez a subtração normal mas quando efetivo ou confirmo eu posso alterar a quantidade mesmo na solicitação só tendo um valor inferior.
Não quero que o valor seja maior que a quantidade referida na solicitação de compra.
Conseguindo achar a solução posto aqui, assim nos ajudando.
Forte abraço !
Por favor Acessar ou Registrar para participar da conversa.
- manoelcarlosjunior
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 116
- Obrigados Recebidos: 0
7 anos 7 meses atrás #32037
por manoelcarlosjunior
Respondido por manoelcarlosjunior no tópico ITENS PEDIDO DE COMPRA
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Pontos de Entrada
- ITENS PEDIDO DE COMPRA
Tempo para a criação da página:0.144 segundos