本文整理汇总了PHP中Produto::model方法的典型用法代码示例。如果您正苦于以下问题:PHP Produto::model方法的具体用法?PHP Produto::model怎么用?PHP Produto::model使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Produto
的用法示例。
在下文中一共展示了Produto::model方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: afterSave
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: actionIndex
/**
* 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);
}
示例3: actionAjaxGetItemCombinado
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: afterSave
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: actionClient
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: actionUpdate
/**
* 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: actionView
public function actionView()
{
$produto = Produto::model()->findByPk(Yii::app()->getRequest()->getParam('id'));
$this->render('view', array('produto' => $produto));
}
示例8: getProduto
public function getProduto($param)
{
$query = Produto::model()->findAllBySql("select * from produto where descricao like '%" . $param . "%' limit 0,5");
return $query;
}
示例9: atualizaEstoque
private function atualizaEstoque($idProduto, $quantidade)
{
$produto = Produto::model()->findByPk($idProduto);
$produto->estoque -= $quantidade;
if ($produto->estoque < 0) {
$produto->estoque = 0;
}
$produto->save();
}
示例10: actionAdmin
/**
* 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: organizarEmCaixas
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: beforeSave
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();
//.........这里部分代码省略.........
示例13: actionDelete
/**
* 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'));
}
}
示例14: CDbCriteria
<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:
<!-- 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
}
?>