menu
Fórum Adianti
menu Menu
Não permitir retirada quando saldo for menor que o solicitado Bom dia amigos! Sou novo no uso do framework, e estou com a seguinte dúvida: 1 - Tenho um formulário que alimenta uma tabela estoque e toda vez que faço retirado de um produto, preciso que antes da inserção seja verificado, se tem a quantidade de produto em estoque, senão informar saldo insuficiente. 2 - O meu saldo está calculado em uma view. ** Quando uso o metodo abaixo ocorr...
PW
Não permitir retirada quando saldo for menor que o solicitado  
Bom dia amigos!
Sou novo no uso do framework, e estou com a seguinte dúvida:

1 - Tenho um formulário que alimenta uma tabela estoque e toda vez que faço retirado de um produto, preciso que antes da inserção seja verificado, se tem a quantidade de produto em estoque, senão informar saldo insuficiente.

2 - O meu saldo está calculado em uma view.


** Quando uso o metodo abaixo ocorre este erro, estou a quase uma semana quebrando a cabeça para resolver este problema: "Fatal error: Uncaught Error: Cannot use object of type stdClass as array in C:/.."

3 - Segue abaixo meu método:

  1. <?php
  2. public function onSave()
  3.     {
  4.         try
  5.         {  
  6.             $objSaidaEquipamentosModel = new SaidaEquipamentosModel ;           
  7.             $objSaldoEstoque = new ViewSaldoEstoqueModel;
  8.             
  9.             $data $this->form->getData(); // get form data as array
  10.             
  11.             // Insere equipamento
  12.             TTransaction::open('DBS1'); // open a transaction
  13.                        
  14.             //**********Salvar na tabela SaidaEquipamentos *************************************
  15.             $objSaidaEquipamentosModel->idEquipamento $data->idEquipamento;
  16.             $objSaidaEquipamentosModel->idFuncionario $data->idFuncionario;
  17.             $objSaidaEquipamentosModel->dtSaida $data->dtSaida;
  18.             $objSaidaEquipamentosModel->quantidade $data->quantidade;
  19.            
  20.       /**********************************************************************************/
  21.             
  22.             /*Verificar se o equipamento selecionado no form é igual ao equipamento da view
  23.              E se quantididade digitada para retirada é maior do que a quantidade do equipamento calculado (Saldo) na view 
  24.              */
  25.                        
  26.             $naoPermitirInsercaoTbl $objSaldoEstoque::where('Id_SaldoEquipView','=',$data['idEquipamento'])-                     >where('Saldo','<',$data['quantidade'])->load();
  27.             if ($naoPermitirInsercaoTbl)
  28.             {
  29.                 throw new Exception('Saldo ');
  30.             }
  31.             
  32.             $objSaidaEquipamentosModel->store(); // salva o objeto            
  33.             TTransaction::close(); // fecha a transação            
  34.             $this->onReload();
  35.         }
  36.         catch (Exception $e// in case of exception
  37.         {
  38.             new TMessage('error'$e->getMessage()); // shows the exception error message
  39.             $this->form->setData$this->form->getData() ); // keep form data
  40.             TTransaction::rollback(); // undo all pending operations
  41.         }
  42.         $this->limpar();
  43.     }
  44. ?>

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (2)


LA

nao seria o count() ao inves do load()?
NR

A função $this->form->getData() retorna um objeto (stdclass) e não um array, então você precisa alterar a forma de acesso aos atributos de $data:
  1. <?php
  2. $naoPermitirInsercaoTbl $objSaldoEstoque::where('Id_SaldoEquipView','=',$data->idEquipamento)->where('Saldo','<',$data->quantidade)->load();
  3. ?>