Пример #1
0
 public function afterSave()
 {
     $oProduto = Produto::model()->findByPk($this->produto_id);
     $oProduto->scenario = 'alteracaoCompra';
     if ($this->isNewRecord) {
         $oProduto->quantidade = $oProduto->quantidade + $this->quantidade;
         $oProduto->save();
         $oFinanceiro = new Financeiro();
         $oFinanceiro->salvar(2, $this);
     } else {
         //            $oProduto->quantidade = $oProduto->quantidade - $this->quantidade;
         //            $oProduto->save();
         //            if ($this->qntAntigaTmp != $this->quantidade) {
         //                if ($this->qntAntigaTmp < $this->quantidade) {
         //                    $diffQuantidade = $this->quantidade - $this->qntAntigaTmp;
         //                    $oProduto->quantidade = $oProduto->quantidade + $diffQuantidade;
         //                } else {
         //                    $diffQuantidade = $this->qntAntigaTmp - $this->quantidade;
         //                    $oProduto->quantidade = $oProduto->quantidade - $diffQuantidade;
         //                }
         //                $oProduto->save();
         //            }
     }
     return parent::afterSave();
 }
Пример #2
0
 /**
  * This is the default 'index' action that is invoked
  * when an action is not explicitly requested by users.
  */
 public function actionIndex()
 {
     if (!Yii::app()->user->isAdmin()) {
         $this->redirect(array('../index.php/venda'));
     }
     $totalProdutos = Produto::model()->getTotal();
     $totalVendasHoje = Venda::model()->getTotalVendaHoje();
     $totalVendasPrazoHoje = Venda::model()->getTotalvendasPrazoHoje();
     $totalCliente = Cliente::model()->getTotal();
     $totalPagamentos = Pagamento::model()->getToalPagamentosDia();
     $totalFornecedores = Fornecedor::model()->getTotal();
     $totalVendasVista = $totalVendasHoje - $totalVendasPrazoHoje;
     $data = array('totalProdutos' => $totalProdutos, 'totalVendaHoje' => $totalVendasHoje, 'totalVendasPrazoHoje' => $totalVendasPrazoHoje, 'totalCliente' => $totalCliente, 'totalPagamentos' => $totalPagamentos, 'totalFornecedores' => $totalFornecedores, 'totalVendasVista' => $totalVendasVista, 'itensMaisVendidos' => Produto::model()->getItensMaisVendidos());
     $this->render('index', $data);
 }
 public function actionAjaxGetItemCombinado()
 {
     $combinado = array();
     if (Yii::app()->request->isPostRequest) {
         if (!empty($_POST['combinado'])) {
             $itemcombinado = ItemCombinado::model()->findAllByAttributes(array('combinado_id' => $_POST['combinado']));
             $combinado = $itemcombinado[0]->combinados;
             $array = array();
             foreach ($itemcombinado as $item) {
                 $array[] = $item->produtos;
             }
         } else {
             $array = Produto::model()->ativos()->lanches()->findAll();
         }
         echo CJSON::encode(array('item_combinados' => $array, 'combinado' => $combinado));
     } else {
         throw new CHttpException(400);
     }
 }
Пример #4
0
 public function afterSave()
 {
     if ($this->status == self::FECHADA && $this->isNewRecord) {
         $oFinanceiro = new Financeiro();
         $oFinanceiro->salvar(1, $this->ordemServico, $this->usuario->nome);
         foreach ($this->ordemServico->ordemServicoItens as $item) {
             if ($item->tipo_item_id == OrdemServicoItem::PRODUTO) {
                 $oLogRetiradaProduto = new LogRetiradaProduto();
                 $oLogRetiradaProduto->produto_id = $item->item_id;
                 $oLogRetiradaProduto->quantidade = 1;
                 $oLogRetiradaProduto->observacao = 'Ordem de Serviço: ' . $this->ordem_servico_id;
                 $oLogRetiradaProduto->data_hora = date("Y-m-d H:i:s");
                 $oLogRetiradaProduto->usuario_id = Yii::app()->user->getId();
                 $oLogRetiradaProduto->ordem_servico_id = $this->ordem_servico_id;
                 if (!$oLogRetiradaProduto->save()) {
                     die(var_dump($oLogRetiradaProduto->getErrors()));
                 }
                 if ($item->item_id != 0) {
                     $oProduto = Produto::model()->findByPk($item->item_id);
                     $oProduto->decrementarQuantidade();
                 }
             }
         }
     } else {
         if ($this->status == self::CANCELADA) {
             $oFinanceiro = Financeiro::model()->findByAttributes(array('tipo_item' => Financeiro::ORDEM_SERVICO, 'tipo_item_id' => $this->ordem_servico_id));
             $oFinanceiro->salvar(Financeiro::ORDEM_SERVICO, $this->ordemServico, $this->usuario->nome, 1);
             foreach ($this->ordemServico->ordemServicoItens as $item) {
                 if ($item->tipo_item_id == OrdemServicoItem::PRODUTO) {
                     $oLogRetiradaProduto = LogRetiradaProduto::model()->findByAttributes(array('ordem_servico_id' => $this->ordem_servico_id, 'produto_id' => $item->item_id));
                     $oLogRetiradaProduto->excluido = true;
                     if (!$oLogRetiradaProduto->save()) {
                         die(var_dump($oLogRetiradaProduto->getErrors()));
                     }
                     $oProduto = Produto::model()->findByPk($item->item_id);
                     $oProduto->incrementarQuantidade();
                 }
             }
         }
     }
     parent::afterSave();
 }
Пример #5
0
 public function actionClient()
 {
     $cliente = Cliente::model()->findByPk(Yii::app()->user->getId());
     $pedido = Pedido::open($cliente);
     $this->comandoExcluirItemPedido($pedido);
     if (isset($_POST['Produto'])) {
         $produto = Produto::model()->findByPk($_POST['Produto']['id']);
         if (count($produto) > 0) {
             $pedido->addItem($produto, $_POST['Produto']['qtd']);
         }
     }
     if (isset($_POST['refresh'])) {
         if ($pedido->batchItemUpdate($_POST)) {
             Yii::app()->user->setFlash('success', 'Pedido atualizado com sucesso!');
         } else {
             Yii::app()->user->setFlash('error', 'Falha ao atualizar o pedido. Alguns itens econtram-se com estoque limitado.');
         }
     }
     $this->render('show', array('pedido' => $pedido));
 }
Пример #6
0
 /**
  * Updates a particular model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id the ID of the model to be updated
  */
 public function actionUpdate($id)
 {
     $model = $this->loadModel($id);
     $oClientes = Cliente::model()->ordemNome()->findAll();
     $oLogItemNaoCadastrador = new LogItemNaoCadastrado();
     $oOrdemServicoItem = new OrdemServicoItem();
     $oServicos = Servico::model()->ordenarTitulo()->naoExcluido()->findAll();
     $oProdutos = Produto::model()->ordenarTitulo()->naoExcluido()->findAll();
     if (isset($_POST['OrdemServico'])) {
         $model->attributes = $_POST['OrdemServico'];
         if ($model->save()) {
             $oOrdemServicoItem->ordem_servico_id = $model->id;
             if (!empty($_POST['OrdemServicoItem'])) {
                 $oOrdemServicoItem->salvarItens($_POST['OrdemServicoItem']);
             }
             if (!empty($_POST['LogItemNaoCadastrado'])) {
                 $oOrdemServicoItem->salvarItensNaoCadastrados($_POST['LogItemNaoCadastrado']);
             }
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     $this->render('update', array('model' => $model, 'oClientes' => $oClientes, 'oOrdemServicoItem' => $oOrdemServicoItem, 'valor_total' => $model->getValorTotal(), 'oLogItemNaoCadastrador' => $oLogItemNaoCadastrador, 'oServicos' => $oServicos, 'oProdutos' => $oProdutos));
 }
Пример #7
0
 public function actionView()
 {
     $produto = Produto::model()->findByPk(Yii::app()->getRequest()->getParam('id'));
     $this->render('view', array('produto' => $produto));
 }
Пример #8
0
 public function getProduto($param)
 {
     $query = Produto::model()->findAllBySql("select * from produto where descricao like '%" . $param . "%' limit 0,5");
     return $query;
 }
Пример #9
0
 private function atualizaEstoque($idProduto, $quantidade)
 {
     $produto = Produto::model()->findByPk($idProduto);
     $produto->estoque -= $quantidade;
     if ($produto->estoque < 0) {
         $produto->estoque = 0;
     }
     $produto->save();
 }
Пример #10
0
 /**
  * Manages all models.
  */
 public function actionAdmin()
 {
     $model = new LogRetiradaProduto('search');
     $model->unsetAttributes();
     $oSearchForm = new SearchForm();
     $aLogsRetiradasProdutos = array();
     $oLogsRetiradasProdutos = LogRetiradaProduto::model()->findAll();
     if (!empty($oLogsRetiradasProdutos)) {
         foreach ($oLogsRetiradasProdutos as $log) {
             $aLogsRetiradasProdutos['produto_id'][] = $log->produto_id;
             $aLogsRetiradasProdutos['usuario_id'][] = $log->usuario_id;
         }
         $oProdutos = Produto::model()->naoExcluido()->ordenarTitulo()->findAll(array('condition' => 'id in (' . implode(",", $aLogsRetiradasProdutos['produto_id']) . ')'));
         $oUsuarios = Usuario::model()->ordenarNome()->findAll(array('condition' => 'id in (' . implode(",", $aLogsRetiradasProdutos['usuario_id']) . ')'));
     } else {
         $oProdutos = Produto::model()->naoExcluido()->ordenarTitulo()->findAll();
         $oUsuarios = Usuario::model()->ordenarNome()->findAll();
     }
     if (isset($_GET['LogRetiradaProduto'])) {
         $model->attributes = $_GET['LogRetiradaProduto'];
         $oSearchForm->request = $_GET['LogRetiradaProduto'];
     }
     $headers = $model->getHeadersRelatorio();
     $this->exportarRelatorio($model->search(), 'Relatório Retirada Estoque - ', $headers, date('YmdHis') . '_relatorio_retirada_estoque.csv');
     $this->render('admin', array('model' => $model, 'oProdutos' => $oProdutos, 'oUsuarios' => $oUsuarios, 'exibeFormularioBusca' => $oSearchForm->checaRequisicaoVazia()));
 }
Пример #11
0
 private function organizarEmCaixas($produtos)
 {
     $tipo = !Yii::app()->user->isGuest ? Clientetipo::model()->findByPk(Yii::app()->user->codclientetipo) : 0;
     $caixas = array();
     $total = 0;
     foreach ($produtos as $prod) {
         $produto = Produto::model()->findByPk($prod->codproduto);
         // quantidade do produto
         $quantidade = $prod->quantidade;
         $prod_copy = $prod;
         // adicionar o nome do produto
         $prod_copy->name = $produto->titulo;
         // adicionar o valor do  produto
         $prod_copy->price = $produto->valor;
         // adicionar o valor total
         $prod_copy->total = $prod_copy->price * $quantidade;
         // muda-se a quantidade do produto para incrementá-la em cada caixa
         $prod_copy->quantidade = 1;
         // valor bruto do produto
         $prod_copy->peso = $produto->categoria->peso * $quantidade;
         // todas as dimensões da caixa serão em cm e kg
         $prod_copy->width = $this->getDimensaoEmCm('cm', $produto->categoria->largura);
         $prod_copy->height = $this->getDimensaoEmCm('cm', $produto->categoria->altura);
         $prod_copy->length = $this->getDimensaoEmCm('cm', $produto->categoria->comprimento);
         // O peso do produto não é unitário como a dimensão. É multiplicado pela quantidade. Se quisermos o peso unitário, teremos que dividir pela quantidade.
         $prod_copy->weight = $this->getPesoEmKg('kg', $prod_copy->peso) / $quantidade;
         $cx_num = 0;
         for ($i = 1; $i <= $quantidade; $i++) {
             // valida as dimensões do produto com as dos Correios
             if ($this->validar($prod_copy)) {
                 // cria-se a caixa caso ela não exista.
                 isset($caixas[$cx_num]['weight']) ? true : ($caixas[$cx_num]['weight'] = 0);
                 isset($caixas[$cx_num]['height']) ? true : ($caixas[$cx_num]['height'] = 0);
                 isset($caixas[$cx_num]['width']) ? true : ($caixas[$cx_num]['width'] = 0);
                 isset($caixas[$cx_num]['length']) ? true : ($caixas[$cx_num]['length'] = 0);
                 $new_width = $caixas[$cx_num]['width'] + $prod_copy->width;
                 $new_height = $caixas[$cx_num]['height'] + $prod_copy->height;
                 $new_length = $caixas[$cx_num]['length'] + $prod_copy->length;
                 $new_weight = $caixas[$cx_num]['weight'] + $prod_copy->weight;
                 $cabe_do_lado = $new_width < $this->largura_max && $new_width + $caixas[$cx_num]['height'] + $caixas[$cx_num]['length'] < $this->soma_dim_max;
                 $cabe_no_fundo = $new_length < $this->comprimento_max && $new_length + $caixas[$cx_num]['width'] + $caixas[$cx_num]['height'] < $this->soma_dim_max;
                 $cabe_em_cima = $new_height < $this->altura_max && $new_height + $caixas[$cx_num]['width'] + $caixas[$cx_num]['length'] < $this->soma_dim_max;
                 $peso_dentro_limite = $new_weight <= $this->peso_max ? true : false;
                 // o produto cabe na caixa
                 if (($cabe_do_lado || $cabe_no_fundo || $cabe_em_cima) && $peso_dentro_limite) {
                     // já existe o mesmo produto na caixa, assim incrementa-se a sua quantidade
                     if (isset($caixas[$cx_num]['produtos'][$prod_copy->codproduto])) {
                         $caixas[$cx_num]['produtos'][$prod_copy->codproduto]->quantidade++;
                     } else {
                         $caixas[$cx_num]['produtos'][$prod_copy->codproduto] = $prod_copy;
                     }
                     // aumenta-se o peso da caixa
                     $caixas[$cx_num]['weight'] += $prod_copy->weight;
                     // ajusta-se as dimensões da nova caixa
                     if ($cabe_do_lado) {
                         $caixas[$cx_num]['width'] += $prod_copy->width;
                         // a caixa vai ficar com a altura do maior produto que estiver nela
                         $caixas[$cx_num]['height'] = max($caixas[$cx_num]['height'], $prod_copy->height);
                         // a caixa vai ficar com o comprimento do maior produto que estiver nela
                         $caixas[$cx_num]['length'] = max($caixas[$cx_num]['length'], $prod_copy->length);
                     } elseif ($cabe_no_fundo) {
                         $caixas[$cx_num]['length'] += $prod_copy->length;
                         // a caixa vai ficar com a altura do maior produto que estiver nela
                         $caixas[$cx_num]['height'] = max($caixas[$cx_num]['height'], $prod_copy->height);
                         // a caixa vai ficar com a largura do maior produto que estiver nela
                         $caixas[$cx_num]['width'] = max($caixas[$cx_num]['width'], $prod_copy->width);
                     } elseif ($cabe_em_cima) {
                         $caixas[$cx_num]['height'] += $prod_copy->height;
                         //a caixa vai ficar com a altura do maior produto que estiver nela
                         $caixas[$cx_num]['width'] = max($caixas[$cx_num]['width'], $prod_copy->width);
                         //a caixa vai ficar com a largura do maior produto que estiver nela
                         $caixas[$cx_num]['length'] = max($caixas[$cx_num]['length'], $prod_copy->length);
                     }
                 } else {
                     $cx_num++;
                     $i--;
                 }
             } else {
                 $caixas = array();
                 break 2;
                 // sai dos dois foreach
             }
         }
     }
     return $caixas;
 }
Пример #12
0
 public function beforeSave()
 {
     $retorno = parent::beforeSave();
     $modelPizzaria = new Pizzaria();
     if (!$this->isNewRecord) {
         return $retorno;
     }
     // Se tiver promoção, direcionar os itens as suas propriedades.
     if (isset($this->_promocoes)) {
         foreach ($this->_promocoes as &$promocao) {
             $modelIP = ItemPromocao::model()->ativos()->findByPk($promocao['item_promocao']);
             if (!empty($modelIP->produto_id)) {
                 $this->_produtos[] = array('produto_id' => $modelIP->produto_id, 'promocao' => 1, 'quantidade' => !empty($promocao['quantidade']) ? $promocao['quantidade'] : null, 'preco' => $modelIP->promocoes->valor);
             } else {
                 $this->_pizzas[] = array('sabores' => array($modelIP->tamanhoSabores->sabor_id), 'tamanho_id' => $modelIP->tamanhoSabores->tamanho_id, 'preco' => $modelIP->promocoes->valor, 'promocao' => 1);
             }
         }
     } else {
         $this->_promocoes = null;
     }
     if (isset($this->_produtos)) {
         foreach ($this->_produtos as &$produto) {
             $modelProduto = Produto::model()->ativos()->findByPk($produto['produto_id']);
             // Se for um produto promocional é o valor da promocao
             $this->preco_total += !isset($produto['promocao']) ? $modelProduto->preco * $produto['quantidade'] : $produto['preco'];
         }
     }
     if (isset($this->_combinados)) {
         foreach ($this->_combinados as &$combinado) {
             // Se for um combinado promocional é o valor da promocao
             if (!empty($combinado['combinado_id'])) {
                 $modelCombinado = Combinado::model()->ativos()->findByPk($combinado['combinado_id']);
                 $combinado['preco'] = $modelCombinado->preco;
             } else {
                 foreach ($combinado['itens_combinado'] as $produto) {
                     $modelProduto = Produto::model()->ativos()->findByPk($produto['produto_id']);
                     $combinado['preco'] += $modelProduto->preco * $produto['quantidade'];
                 }
             }
             $this->preco_total += $combinado['preco'];
         }
     }
     if (isset($this->_pizzas) && $modelPizzaria->tipo_restaurante == TipoRestaurante::_TIPO_PIZZARIA_) {
         foreach ($this->_pizzas as &$pizza) {
             $modelTamanho = Tamanho::model()->ativos()->findByPk($pizza['tamanho_id']);
             if (count($pizza['sabores']) > $modelTamanho->max_qtd_sabor) {
                 return false;
             }
             $valorTamanhoBorda = 0;
             // Valida se a pizza tem borda recheada (se não tiver permitido ignora).
             if (isset($pizza['tamanho_borda_id']) && !empty($pizza['tamanho_borda_id']) && $modelPizzaria->borda_pizza) {
                 $modelTamanhoBorda = TamanhoBorda::model()->ativos()->findByAttributes(array('tamanho_id' => $modelTamanho->id, 'borda_id' => $pizza['tamanho_borda_id']));
                 $pizza['tamanho_borda_id'] = $modelTamanhoBorda->id;
                 $valorTamanhoBorda = $modelTamanhoBorda->preco;
             }
             $valorTipoMassa = 0;
             // Valida se a pizza tem massa diferenciada (se não tiver permitido ignora).
             if (isset($pizza['tamanho_tipo_massa_id']) && !empty($pizza['tamanho_tipo_massa_id']) && $modelPizzaria->massa_pizza) {
                 $modelTamanhoTipoMassa = TamanhoTipoMassa::model()->ativos()->findByAttributes(array('tamanho_id' => $modelTamanho->id, 'tipo_massa_id' => $pizza['tamanho_tipo_massa_id']));
                 $pizza['tamanho_tipo_massa_id'] = $modelTamanhoTipoMassa->id;
                 $valorTipoMassa = $modelTamanhoTipoMassa->preco;
             }
             $valorAdicionais = 0;
             $valorSabor = 0;
             $i = 0;
             foreach ($pizza['sabores'] as &$sabor) {
                 $modelTamanhoSabor = TamanhoSabor::model()->ativos()->findByAttributes(array('tamanho_id' => $modelTamanho->id, 'sabor_id' => $sabor));
                 $sabor = $modelTamanhoSabor->id;
                 // Se for uma pizza promocional, considere apenas o valor da promoção e só é permitido um sabor por pizza.
                 if (isset($pizza['promocao'])) {
                     $valorSabor = $pizza['preco'];
                     break;
                 }
                 if ($modelTamanhoSabor->preco > $valorSabor) {
                     $valorSabor = $modelTamanhoSabor->preco;
                 }
                 if ($i > $modelTamanho->max_qtd_sabor) {
                     break;
                 }
                 $i++;
             }
             if (isset($pizza['adicionais']) && $modelPizzaria->adicional_pizza) {
                 foreach ($pizza['adicionais'] as &$adicional) {
                     $modelTA = TamanhoAdicional::model()->naoExcluido()->findByAttributes(array('tamanho_id' => $modelTamanho->id, 'adicional_id' => $adicional));
                     $adicional = $modelTA->id;
                     $valorAdicionais += $modelTA->preco;
                 }
             }
             $pizza['preco_total'] = $valorSabor + $valorAdicionais + $valorTipoMassa + $valorTamanhoBorda;
             $this->preco_total += $pizza['preco_total'];
         }
     }
     if ($this->forma_pagamento_id != FormaPagamento::_TIPO_DINHEIRO_ || $this->valor_pago == 0) {
         $this->valor_pago = $this->preco_total;
     } else {
         if ($this->preco_total > floatval($this->valor_pago)) {
             return false;
         }
     }
     return parent::beforeSave();
 }
 /**
  * Deletes a particular model.
  * If deletion is successful, the browser will be redirected to the 'admin' page.
  * @param integer $id the ID of the model to be deleted
  */
 public function actionDelete($id)
 {
     $model = $this->loadModel($id);
     $model->excluida = 1;
     $conditions = 'sub_categoria_id = ' . $model->id;
     $produto = Produto::model()->find($conditions);
     $modelPendentes = "";
     // Deleta todos os registros dependentes
     if (!empty($produto)) {
         $modelPendentes = Produto::model()->updateAll(array('excluido' => 1), $conditions);
     }
     if (empty($modelPendentes)) {
         $model->delete();
     } else {
         $model->save();
     }
     // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
     if (!isset($_GET['ajax'])) {
         $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
     }
 }
					<th>ESTOQUE</th>
					<th>IMPRESSORAS</th>
					<th>QUANTIDADE</th>
					<th></th>
				</tr>
			</thead>
			<tbody>

				<?php 
$criteria = new CDbCriteria();
$criteria->together = true;
$criteria->join = '			INNER JOIN categoria_produto ON t.id = categoria_produto.produto_id 
												INNER JOIN categoria ON categoria_produto.categoria_id = categoria.id';
$criteria->addCondition("categoria.id = 2");
//id2 => Cartuchos
$produtos = Produto::model()->findAll($criteria);
?>
				<?php 
foreach ($produtos as $key => $p) {
    ?>
					<tr>
						<td><?php 
    echo $p->nome;
    ?>
</td>
						<td><?php 
    echo $p->estoque();
    ?>
</td>
						<td></td>
						<td><input type="text" name="quantidade" class="quantidade" value="1" /></td>
Пример #15
0
<!-- produtos -->
<div id="produtos">
	<table>
		<thead>
			<tr>
				<th>NOME</th>
				<th>ESTOQUE</th>
				<th>IMPRESSORAS</th>
			</tr>
		</thead>
		<tbody>
			<?php 
$produtos = Produto::model()->findAll();
?>
			<?php 
foreach ($produtos as $key => $p) {
    ?>
				<tr>
					<td><?php 
    echo $p->nome;
    ?>
</td>
					<td><?php 
    echo $p->estoque();
    ?>
</td>
					<td></td>
				</tr>
			<?php 
}
?>
Пример #16
0
 /**
  * Manages all models.
  */
 public function actionAdmin()
 {
     $model = new Compra('search');
     $model->unsetAttributes();
     $oSearchForm = new SearchForm();
     $oCompras = Compra::model()->findAll();
     $aCompras = array();
     if (!empty($oCompras)) {
         foreach ($oCompras as $compra) {
             $aCompras['produto_id'][] = $compra->produto_id;
             $aCompras['usuario_id'][] = $compra->usuario_id;
         }
         $oProdutos = Produto::model()->naoExcluido()->ordenarTitulo()->findAll(array('condition' => 'id in (' . implode(",", $aCompras['produto_id']) . ')'));
         $oUsuarios = Usuario::model()->ordenarNome()->findAll(array('condition' => 'id in (' . implode(",", $aCompras['usuario_id']) . ')'));
     } else {
         $oProdutos = Produto::model()->naoExcluido()->ordenarTitulo()->findAll();
         $oUsuarios = Usuario::model()->ordenarNome()->findAll();
     }
     if (isset($_GET['Compra'])) {
         $model->attributes = $_GET['Compra'];
         $oSearchForm->request = $_GET['Compra'];
     }
     $this->render('admin', array('model' => $model, 'oProdutos' => $oProdutos, 'oUsuarios' => $oUsuarios, 'exibeFormularioBusca' => $oSearchForm->checaRequisicaoVazia()));
 }
Пример #17
0
 public static function getArraySimplesFormatado()
 {
     $model = Produto::model()->ativos()->findAll();
     foreach ($model as $item) {
         $array[$item->id] = $item->nome . " (" . $item->descricao . ")";
     }
     return $array;
 }
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return Produto the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Produto::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
Пример #19
0
 public function batchItemUpdate($post_array)
 {
     $transaction = Yii::app()->db->beginTransaction();
     try {
         $erros = false;
         foreach ($post_array['ItemPedido'] as $item) {
             $produto = Produto::model()->findByPk($item['produto_id']);
             if (count($produto) > 0) {
                 $itempedido = $this->getItem($produto);
                 $produto->returnToInventory($itempedido->getAttribute('quantidade'));
                 $quantidade = $item['quantidade'];
                 if ($produto->getFromInventory($quantidade)) {
                     if (count($itempedido) > 0) {
                         $itempedido->setAttribute('quantidade', $quantidade);
                         if ($quantidade == 0) {
                             $itempedido->delete();
                         } else {
                             if (!$itempedido->update(array('quantidade'))) {
                                 throw new CHttpException(500, "Falha ao atualizar carrinho de compras");
                             }
                         }
                     } else {
                         throw new CHttpException(500, "O inventario foi atualizado sem atualizacao de item de produto");
                     }
                 } else {
                     // O estoque encontra-se baixo
                     $erros = true;
                 }
             }
         }
         $transaction->commit();
         return !$erros;
     } catch (Exception $e) {
         Yii::log("FALHA AO ATUALIZAR CARRINHO {$e->getMessage()}");
         $transaction->rollback();
     }
     return false;
 }