- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- MSExecAuto Pedido de Venda
×
Linguagem de Programação ADVPL
Perguntas MSExecAuto Pedido de Venda
- will
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 81
- Obrigados Recebidos: 0
10 anos 4 semanas atrás #25862
por will
MSExecAuto Pedido de Venda foi criado por will
Boa Tarde Gente, solicito uma ajuda, estou criando um msexecauto no pedido de venda que me gera um erro.
Segue o Código:
Static Function GeraPedRefatur()
Local _aCabPv := {}
Local _aItemPv := {}
Local _cCliente := ZB1->ZB1_CLIENTE
Local _cLoja := ZB1->ZB1_LOJA
Local _dDia := ZB1->ZB1_EMISSA
Local nItem := 0
Local nSaldo := 0
&& Cabecalho Pedido de Vendas
_aCabPV:={ {"C5_FILIAL" ,XFILIAL("ZB1") ,Nil},;
{"C5_TIPO" ,"N" ,Nil},; // Tipo de pedido
{"C5_CLIENTE",_cCliente ,Nil},; // Codigo do cliente
{"C5_LOJACLI",_cLoja ,Nil},; // Loja do cliente
{"C5_EMISSAO",dDatabase ,Nil},; // 'Data de emissao
{"C5_DTENTR" ,_dDia ,Nil},; // 'Data de entrega
{"C5_PBRUTO" ,0 ,Nil},; //
{"C5_PESOL" ,0 ,Nil}} //
DbSelectArea("ZB2")
dbSetOrder(1)
While ZB2->(!EOF())
If ZB1->ZB1_CODREF == ZB2->ZB2_CODREF .AND. ZB1->ZB1_SEQ = ZB2->ZB2_SEQ
RegToMemory("SC6")
&& Itens Pedido de Vendas
nItem := nItem + 1
nSaldo := Val(StrTran(cvaltochar(ZB2->ZB2_SALDO),",","."))
AAdd(_aItemPV,{ {"C6_FILIAL" ,XFILIAL("ZB2") ,Nil},;
{"C6_ITEM" ,StrZero(nItem,2) ,Nil},; // Numero do Item no Pedido
{"C6_PRODUTO" ,ZB2->ZB2_PRODUTO ,Nil},; // Codigo do Produto
{"C6_DESCRI" ,ZB2->ZB2_DESCRI ,Nil},; // Codigo do Produto
{"C6_QTDVEN" ,nSaldo ,Nil},; // Quantidade Vendida
{"C6_PRUNIT" ,ZB2->ZB2_NVUNIT ,NIL},; // PRECO DE LISTA
{"C6_PRCVEN" ,ZB2->ZB2_NVUNIT ,Nil},; // Preco Unitario Liquido
{"C6_VALOR" ,Round(nSaldo*ZB2->ZB2_NVUNIT,2) ,Nil},; // Valor Total do Item
{"C6_ENTREG" ,dDataBase ,Nil},; // Data da Entrega
{"C6_TES" ,ZB2->ZB2_TES ,Nil},; // Tipo de Entrada/Saida do Item
{"C6_IDENTB6" ,"" ,Nil},; // Percentual de Desconto
{"C6_NFORI" ,"" ,Nil},; // Percentual de Desconto
{"C6_SERIORI" ,"" ,Nil},; // Comissao Vendedor
{"C6_ITEMORI" ,"",Nil}}) // Quantidade Liberada
ZB2->(dbSkip())
LOOP
ELSE
ZB2->(dbSkip())
Endif
ENDDO
ZB2->( DBCLOSEAREA() )
lMsHelpAuto := .F.
lMsErroAuto := .F.
Begin transaction
MSExecAuto({|x,y| Mata410(x,y)},_aCabPv,_aItemPV,3)
If !lMsErroAuto
//GravaLog(1,_cCliente,_cLoja,_dDia,StrZero(_nConta,2))
MsgAlert("Incluido pedido cliente : "+_cCliente)
Alert(SC5->C5_NUM)
Else
DisarmTransaction()
//GravaLog(2,_cCliente,_cLoja,_dDia,StrZero(_nConta,2))
mostraerro()
EndIf
End transaction
//fGeralog()
msgInfo("Processamento concluido com sucesso!")
Return (.T.)
SEgue o ERRO apresentado em tela
Tabela SC5 27/10/2014 16:15:36
Filial - C5_FILIAL := 02
Tipo Pedido - C5_TIPO := N
Cliente - C5_CLIENTE := 000581
Loja - C5_LOJACLI := 01
DT Emissao - C5_EMISSAO := 27/10/2014
Data Entrega - C5_DTENTR := 23/10/2014
Peso Bruto - C5_PBRUTO := 0
Peso Liquido - C5_PESOL := 0
Tabela SC6 27/10/2014 16:15:36
Erro no Item 1
Filial - C6_FILIAL := 02
Item - C6_ITEM := 01
Produto - C6_PRODUTO := 100118
Descricao - C6_DESCRI := FILE DE PEITO TEMP. PCT 18 KG
Quantidade - C6_QTDVEN := 10 < -- Invalido
Prc Lista - C6_PRUNIT := 4.35
Prc Unitario - C6_PRCVEN := 4.35
Vlr.Total - C6_VALOR := 43.5
Entrega - C6_ENTREG := 27/10/2014
Tipo Saida - C6_TES := 501
Ident.Poder3 - C6_IDENTB6 :=
N.F.Original - C6_NFORI :=
Serie Orig. - C6_SERIORI :=
Item NF.Orig - C6_ITEMORI :=
Fala que está com erro no campo quantidade.
Alguém pode me ajudar
Segue o Código:
Static Function GeraPedRefatur()
Local _aCabPv := {}
Local _aItemPv := {}
Local _cCliente := ZB1->ZB1_CLIENTE
Local _cLoja := ZB1->ZB1_LOJA
Local _dDia := ZB1->ZB1_EMISSA
Local nItem := 0
Local nSaldo := 0
&& Cabecalho Pedido de Vendas
_aCabPV:={ {"C5_FILIAL" ,XFILIAL("ZB1") ,Nil},;
{"C5_TIPO" ,"N" ,Nil},; // Tipo de pedido
{"C5_CLIENTE",_cCliente ,Nil},; // Codigo do cliente
{"C5_LOJACLI",_cLoja ,Nil},; // Loja do cliente
{"C5_EMISSAO",dDatabase ,Nil},; // 'Data de emissao
{"C5_DTENTR" ,_dDia ,Nil},; // 'Data de entrega
{"C5_PBRUTO" ,0 ,Nil},; //
{"C5_PESOL" ,0 ,Nil}} //
DbSelectArea("ZB2")
dbSetOrder(1)
While ZB2->(!EOF())
If ZB1->ZB1_CODREF == ZB2->ZB2_CODREF .AND. ZB1->ZB1_SEQ = ZB2->ZB2_SEQ
RegToMemory("SC6")
&& Itens Pedido de Vendas
nItem := nItem + 1
nSaldo := Val(StrTran(cvaltochar(ZB2->ZB2_SALDO),",","."))
AAdd(_aItemPV,{ {"C6_FILIAL" ,XFILIAL("ZB2") ,Nil},;
{"C6_ITEM" ,StrZero(nItem,2) ,Nil},; // Numero do Item no Pedido
{"C6_PRODUTO" ,ZB2->ZB2_PRODUTO ,Nil},; // Codigo do Produto
{"C6_DESCRI" ,ZB2->ZB2_DESCRI ,Nil},; // Codigo do Produto
{"C6_QTDVEN" ,nSaldo ,Nil},; // Quantidade Vendida
{"C6_PRUNIT" ,ZB2->ZB2_NVUNIT ,NIL},; // PRECO DE LISTA
{"C6_PRCVEN" ,ZB2->ZB2_NVUNIT ,Nil},; // Preco Unitario Liquido
{"C6_VALOR" ,Round(nSaldo*ZB2->ZB2_NVUNIT,2) ,Nil},; // Valor Total do Item
{"C6_ENTREG" ,dDataBase ,Nil},; // Data da Entrega
{"C6_TES" ,ZB2->ZB2_TES ,Nil},; // Tipo de Entrada/Saida do Item
{"C6_IDENTB6" ,"" ,Nil},; // Percentual de Desconto
{"C6_NFORI" ,"" ,Nil},; // Percentual de Desconto
{"C6_SERIORI" ,"" ,Nil},; // Comissao Vendedor
{"C6_ITEMORI" ,"",Nil}}) // Quantidade Liberada
ZB2->(dbSkip())
LOOP
ELSE
ZB2->(dbSkip())
Endif
ENDDO
ZB2->( DBCLOSEAREA() )
lMsHelpAuto := .F.
lMsErroAuto := .F.
Begin transaction
MSExecAuto({|x,y| Mata410(x,y)},_aCabPv,_aItemPV,3)
If !lMsErroAuto
//GravaLog(1,_cCliente,_cLoja,_dDia,StrZero(_nConta,2))
MsgAlert("Incluido pedido cliente : "+_cCliente)
Alert(SC5->C5_NUM)
Else
DisarmTransaction()
//GravaLog(2,_cCliente,_cLoja,_dDia,StrZero(_nConta,2))
mostraerro()
EndIf
End transaction
//fGeralog()
msgInfo("Processamento concluido com sucesso!")
Return (.T.)
SEgue o ERRO apresentado em tela
Tabela SC5 27/10/2014 16:15:36
Filial - C5_FILIAL := 02
Tipo Pedido - C5_TIPO := N
Cliente - C5_CLIENTE := 000581
Loja - C5_LOJACLI := 01
DT Emissao - C5_EMISSAO := 27/10/2014
Data Entrega - C5_DTENTR := 23/10/2014
Peso Bruto - C5_PBRUTO := 0
Peso Liquido - C5_PESOL := 0
Tabela SC6 27/10/2014 16:15:36
Erro no Item 1
Filial - C6_FILIAL := 02
Item - C6_ITEM := 01
Produto - C6_PRODUTO := 100118
Descricao - C6_DESCRI := FILE DE PEITO TEMP. PCT 18 KG
Quantidade - C6_QTDVEN := 10 < -- Invalido
Prc Lista - C6_PRUNIT := 4.35
Prc Unitario - C6_PRCVEN := 4.35
Vlr.Total - C6_VALOR := 43.5
Entrega - C6_ENTREG := 27/10/2014
Tipo Saida - C6_TES := 501
Ident.Poder3 - C6_IDENTB6 :=
N.F.Original - C6_NFORI :=
Serie Orig. - C6_SERIORI :=
Item NF.Orig - C6_ITEMORI :=
Fala que está com erro no campo quantidade.
Alguém pode me ajudar
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
- will
- Autor do Tópico
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 81
- Obrigados Recebidos: 0
10 anos 1 semana atrás #26144
por will
Respondido por will no tópico MSExecAuto Pedido de Venda
Obrigado foi solucionado na empresa temos um fator de conversão no SB1, tem que mutiplicar a quantidade por esse valor, assim realizado erro foi solucionado
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- MSExecAuto Pedido de Venda
Tempo para a criação da página:0.109 segundos