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:
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:
- <?php
- public function onSave()
- {
- try
- {
- $objSaidaEquipamentosModel = new SaidaEquipamentosModel ;
- $objSaldoEstoque = new ViewSaldoEstoqueModel;
- $data = $this->form->getData(); // get form data as array
- // Insere equipamento
- TTransaction::open('DBS1'); // open a transaction
- //**********Salvar na tabela SaidaEquipamentos *************************************
- $objSaidaEquipamentosModel->idEquipamento = $data->idEquipamento;
- $objSaidaEquipamentosModel->idFuncionario = $data->idFuncionario;
- $objSaidaEquipamentosModel->dtSaida = $data->dtSaida;
- $objSaidaEquipamentosModel->quantidade = $data->quantidade;
- /**********************************************************************************/
- /*Verificar se o equipamento selecionado no form é igual ao equipamento da view
- E se quantididade digitada para retirada é maior do que a quantidade do equipamento calculado (Saldo) na view
- */
- $naoPermitirInsercaoTbl = $objSaldoEstoque::where('Id_SaldoEquipView','=',$data['idEquipamento'])- >where('Saldo','<',$data['quantidade'])->load();
- if ($naoPermitirInsercaoTbl)
- {
- throw new Exception('Saldo ');
- }
- $objSaidaEquipamentosModel->store(); // salva o objeto
- TTransaction::close(); // fecha a transação
- $this->onReload();
- }
- catch (Exception $e) // in case of exception
- {
- new TMessage('error', $e->getMessage()); // shows the exception error message
- $this->form->setData( $this->form->getData() ); // keep form data
- TTransaction::rollback(); // undo all pending operations
- }
- $this->limpar();
- }
- ?>
nao seria o count() ao inves do load()?
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: