Lançado Adianti Framework 8.1!
Clique aqui para saber mais
Fazer adição/multiplicação ao inserir valor duplicado no PosForm Olá , boa tarde. Alguém sabe como alterar o formulário http://www.adianti.com.br/framework_files/tutor/index.php?class=POSFormView para que quando eu for inserir um valor duplicado ele faça a adição e multiplicação dos campos Price, Amount e Total ao invés de atualizar o registro?...

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (1)


NR

Ricelli, isso acontece porque o itens são armazenados em um array associativo onde a chave é o id do produto. Para mudar esse comportamento teria que alterar a função onAddItem para verificar se o produto em questão já está no array e aí fazer as operações desejadas(soma,multiplicação,etc...):
  1. <?php
  2. public function onAddItem()
  3. {
  4.     try
  5.     {
  6.         $this->form_item->validate(); // validate form data
  7.         
  8.         $items TSession::getValue('items'); // get items from session
  9.         $item $this->form_item->getData('SaleItem');
  10.         if (isset($items$item->product_id ]))
  11.         {
  12.              $it $items$item->product_id ];
  13.              $it->amount += $item->amount;
  14.              $it->discount += $item->discount;
  15.              ...
  16.              $items$item->product_id ] = $it// add the item
  17.         }
  18.         else
  19.         {
  20.             $items$item->product_id ] = $item// add the item
  21.         }
  22.         TSession::setValue('items'$items); // store back tthe session
  23.         $this->form_item->clear(); // clear form
  24.         $this->onReload(); // reload data
  25.     }
  26.     catch (Exception $e// in case of exception
  27.     {
  28.         new TMessage('error''<b>Error</b> ' $e->getMessage());
  29.     }
  30. }
  31. ?>