public function testRetrive() { Yii::import("application.models.Produto"); $produto = new Produto(); $produto->setAttribute('categoria_id', 1); $produto->setAttribute('nome', 'Panasonic'); $result = $produto->search()->getData(); $this->assertTrue($result[0]->getAttribute('nome') == $this->produtos['produto_01']['nome']); }
public function actionBusca() { $this->layout = "search"; $produto = new Produto(); $session = new CHttpSession(); $session->open(); $session->setTimeout(120); $categoria = null; if (isset($_POST['Produto'])) { $produto->setAttribute('categoria_id', $_POST['Produto']['categoria_id']); $categoria = Categoria::model()->findByPk($_POST['Produto']['categoria_id']); $produto->setAttribute('nome', $_POST['Produto']['nome']); $session["post_produto"] = $_POST['Produto']; } if (isset($session["post_produto"])) { $produto->setAttributes($session["post_produto"]); } $dataProvider = $produto->search(); $this->render('busca', array('dataProvider' => $dataProvider, 'categoria' => $categoria, 'modelo_consulta' => $produto)); }
public function removeItem(Produto $produto) { $item = ItemPedido::model()->find("produto_id= {$produto->getPrimaryKey()} AND pedido_id= {$this->getPrimaryKey()}"); if (count($item) > 0) { $transaction = Yii::app()->db->beginTransaction(); try { $quatidade_a_ser_reposta = $item->getAttribute("quantidade"); if ($item->delete()) { $produto->setAttribute("qtd_estoque", $produto->getAttribute("qtd_estoque") + $quatidade_a_ser_reposta); if (!$produto->update(array("qtd_estoque"))) { throw new CHttpException(500, 'Um produto foi removido e não houve reposição de estoque!'); } $transaction->commit(); return true; } } catch (Exception $e) { $transaction->rollback(); } } return false; }