Dúvida ao Salvar/Comitar dados Tempo Real


#1

Bom dia amigos, tudo bem?

Estou com uma pequena dúvida em relação a um procedimento aqui que estou fazendo.

Estou criando um processo semelhante ao copiar linhas (Pedido de Venda), porém eu quero tratar para que caso um produto já conste no pedido, ele faça a soma das quantidade e agrupe tudo em uma única linha.

Até certo ponto está funcionando…o problema ocorre quando, por exemplo abaixo:

Pedido 1:

  • Produto A - Qtd: 5
  • Produto B - Qtd: 20

Pedido 2:

  • Produto C - Qtd: 15
  • Produto A - Qtd: 10
  • Produto A - Qtd: 20

Considerando que cada produto atualmente esta em uma linha separada. Porém, digamos que eu queira copiar os itens do Pedido 2 para dentro do Pedido 1 através deste meu processo.

Tenho as linhas a serem copiadas e vou percorre-lás.

Vai verificar que o Produto C não consta e vai adiciona-lo.
Logo após chega na primeira linha do Produto A. Dai teria que somar 5 + 10 e salvar e já comitar a quantidade para 15. Porém isso não ocorre.

Quando chega na segunda linha do Produto A, eu busco a quantidade salva (line.getQtyEntered) porém ele me retorna só os 5 e soma com 20…e por fim salva em 25, sendo que deveria ser 35.

Estou usando o orderLine.save(get_TrxName()); e mesmo assim não resolveu.

Alguma sugestão?

Abraços


#2

Dá uma olhada na classe CalloutOrder para verificar como as quantidades são tratadas. Na linha do pedido tem vários campos de quantidade que precisam ser tratados para que sua função funcione corretamente.


#3

Boa tarde Ricardo,

Sim, dos diversos campos estou ciente.

Meu problema é que a transação comita tudo para o banco pelo que notei ao final do processo e não de forma instantânea.

Queria saber se tem uma forma de fazer isso? Tentei as outras formas de salvar e não consegui.

Estou tentando inserindo direto no banco por SQL a quantidade, porém não acho como sendo a forma correta.


#4

Bom,

Resolvi aqui colocando um prepareIt() sempre que salvar uma informação em determinada linha.

Pelo que verifiquei resolveu meu problema.