- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Amarração entre produtos
×
Linguagem de Programação ADVPL
Perguntas Amarração entre produtos
- FernandoAlfonso
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 1
- Obrigados Recebidos: 0
11 anos 5 meses atrás #14743
por FernandoAlfonso
Amarração entre produtos foi criado por FernandoAlfonso
Opaa..
Seguinte, estou com um probleminha..
Tenho esse programa para validar o faturamento de um produto, ou seja, só posso vender produto MA se incluir em primeiro o o produto MO
Porém, precisa fazer um complemento de ICMS..
Preciso criar uma linha de validação, se o pedido for diferente de complemento de ICMS continua com o programa, travando a confirmação do pedido... se for pedido de complemento de ICMS, ele permite incluir apenas o produto MA.
Segue programa
Local _lRet := .t.
Local _cProduto :=""
Local _nQtdVen :=0
If SM0->M0_CODFIL=="06" //.and. Date()>=ctod("01/04/13")
If n=1 .and. Left(M->C6_PRODUTO,2)="MA"
MsgBox ("Produto "+Trim(M->C6_PRODUTO)+" deve ser informado após produto MO"+Trim(Subs(M->C6_PRODUTO,3,13)),"VL_C6_PRODUTO","INFO")
_lRet:=.f.
ElseIf n>1
_cProduto:=aCols[n-1,aScan(aHeader,{|x|Alltrim(x[2])=="C6_PRODUTO"})]
_nQtdVen :=aCols[n-1,aScan(aHeader,{|x|Alltrim(x[2])=="C6_QTDVEN"})]
If Left(_cProduto,2)="MO" .and. M->C6_PRODUTO="MA"+Subs(_cProduto,3,13)
aCols[n,aScan(aHeader,{|x|Alltrim(x[2])=="C6_QTDVEN"})]:=_nQtdVen
elseIf Left(M->C6_PRODUTO,2)="MO" .and. Left(_cProduto,2)="MO"
MsgBox ("Produto "+Trim(M->C6_PRODUTO)+" deve ser informado antes de produto MA"+Trim(Subs(M->C6_PRODUTO,3,13)),"VL_C6_PRODUTO","INFO")
_lRet:=.f.
elseIf Left(M->C6_PRODUTO,2)="MA" .and. _cProduto<>"MO"+Subs(M->C6_PRODUTO,3,13)
MsgBox ("Produto "+Trim(M->C6_PRODUTO)+" deve ser informado após produto MO"+Trim(Subs(M->C6_PRODUTO,3,13)),"VL_C6_PRODUTO","INFO")
_lRet:=.f.
endif
Endif
endif
return(_lRet)
Seguinte, estou com um probleminha..
Tenho esse programa para validar o faturamento de um produto, ou seja, só posso vender produto MA se incluir em primeiro o o produto MO
Porém, precisa fazer um complemento de ICMS..
Preciso criar uma linha de validação, se o pedido for diferente de complemento de ICMS continua com o programa, travando a confirmação do pedido... se for pedido de complemento de ICMS, ele permite incluir apenas o produto MA.
Segue programa
Local _lRet := .t.
Local _cProduto :=""
Local _nQtdVen :=0
If SM0->M0_CODFIL=="06" //.and. Date()>=ctod("01/04/13")
If n=1 .and. Left(M->C6_PRODUTO,2)="MA"
MsgBox ("Produto "+Trim(M->C6_PRODUTO)+" deve ser informado após produto MO"+Trim(Subs(M->C6_PRODUTO,3,13)),"VL_C6_PRODUTO","INFO")
_lRet:=.f.
ElseIf n>1
_cProduto:=aCols[n-1,aScan(aHeader,{|x|Alltrim(x[2])=="C6_PRODUTO"})]
_nQtdVen :=aCols[n-1,aScan(aHeader,{|x|Alltrim(x[2])=="C6_QTDVEN"})]
If Left(_cProduto,2)="MO" .and. M->C6_PRODUTO="MA"+Subs(_cProduto,3,13)
aCols[n,aScan(aHeader,{|x|Alltrim(x[2])=="C6_QTDVEN"})]:=_nQtdVen
elseIf Left(M->C6_PRODUTO,2)="MO" .and. Left(_cProduto,2)="MO"
MsgBox ("Produto "+Trim(M->C6_PRODUTO)+" deve ser informado antes de produto MA"+Trim(Subs(M->C6_PRODUTO,3,13)),"VL_C6_PRODUTO","INFO")
_lRet:=.f.
elseIf Left(M->C6_PRODUTO,2)="MA" .and. _cProduto<>"MO"+Subs(M->C6_PRODUTO,3,13)
MsgBox ("Produto "+Trim(M->C6_PRODUTO)+" deve ser informado após produto MO"+Trim(Subs(M->C6_PRODUTO,3,13)),"VL_C6_PRODUTO","INFO")
_lRet:=.f.
endif
Endif
endif
return(_lRet)
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
11 anos 5 meses atrás #14768
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Amarração entre produtos
Cara pra verificar o tipo do pedido usa a variavel M->C5_TIPO
M->C5_TIPO = 'N' Normal
M->C5_TIPO = 'D' Devolucao
etc
Só FIquei meio confuso com o MA e MO rs.
M->C5_TIPO = 'N' Normal
M->C5_TIPO = 'D' Devolucao
etc
Só FIquei meio confuso com o MA e MO rs.
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Amarração entre produtos
Tempo para a criação da página:0.149 segundos