Conheça as melhorias da versão 8.0, 8.1, 8.2!
Clique aqui para saber mais
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. $data = $this->form->getData(); // get form data as array
  9. // Insere equipamento
  10. TTransaction::open('DBS1'); // open a transaction
  11. //**********Salvar na tabela SaidaEquipamentos *************************************
  12. $objSaidaEquipamentosModel->idEquipamento = $data->idEquipamento;
  13. $objSaidaEquipamentosModel->idFuncionario = $data->idFuncionario;
  14. $objSaidaEquipamentosModel->dtSaida = $data->dtSaida;
  15. $objSaidaEquipamentosModel->quantidade = $data->quantidade;
  16. /**********************************************************************************/
  17. /*Verificar se o equipamento selecionado no form é igual ao equipamento da view
  18. E se quantididade digitada para retirada é maior do que a quantidade do equipamento calculado (Saldo) na view
  19. */
  20. $naoPermitirInsercaoTbl = $objSaldoEstoque::where('Id_SaldoEquipView','=',$data['idEquipamento'])- >where('Saldo','<',$data['quantidade'])->load();
  21. if ($naoPermitirInsercaoTbl)
  22. {
  23. throw new Exception('Saldo ');
  24. }
  25. $objSaidaEquipamentosModel->store(); // salva o objeto
  26. TTransaction::close(); // fecha a transação
  27. $this->onReload();
  28. }
  29. catch (Exception $e) // in case of exception
  30. {
  31. new TMessage('error', $e->getMessage()); // shows the exception error message
  32. $this->form->setData( $this->form->getData() ); // keep form data
  33. TTransaction::rollback(); // undo all pending operations
  34. }
  35. $this->limpar();
  36. }
  37. ?>

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 (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. ?>