public function actionIndex() { $this->tituloManual = "Novo pedido"; $modelPizzaria = Pizzaria::model()->find(); $modelBanner = Banner::model()->ativos()->find(); if (!$this->validaSituacao()) { $this->render('indisponivel', array('modelPizzaria' => $modelPizzaria, 'modelBanner' => $modelBanner)); Yii::app()->end(); } $dataBebidas = new Produto(); $dataPratosLanche = new Produto(); $dataPromocao = new Promocao(); $modelSabor = array(); $modelTamanho = array(); $arrayTipoSabor = array(); $listCombinado = array(); switch ($modelPizzaria->tipo_restaurante) { case TipoRestaurante::_TIPO_PIZZARIA_: $modelSabor = Sabor::model()->ativos()->findAll(); $modelTamanho = Tamanho::getArrayTamanho(); $arrayTipoSabor = TipoSabor::getArrayTipoSabor(); break; default: $listCombinado = CHtml::listData(Combinado::model()->ativos()->findAll(), 'id', 'nome'); break; } $this->render('index', array('modelPedido' => new Pedido(), 'loginForm' => new LoginForm(), 'modelCliente' => new Cliente(), 'modelUsuario' => new Usuario(), 'dataBebidas' => $dataBebidas->ativos()->bebidas()->search(), 'dataPratosLanche' => $dataPratosLanche->ativos()->pratoLanche()->search(), 'dataPromocao' => $dataPromocao->ativas()->search(), 'modelSabor' => $modelSabor, 'modelTamanho' => $modelTamanho, 'arrayTipoSabor' => $arrayTipoSabor, 'modelPizzaria' => $modelPizzaria, 'arrayBairro' => CHtml::listData(EnderecoPermitido::model()->ativos()->findAll(array('group' => 'bairro', 'distinct' => true)), 'bairro', 'bairro'), 'arrayFormaPagamento' => CHtml::listData(FormaPagamento::model()->ativos()->findAll(), 'id', 'nome'), 'listCombinado' => $listCombinado, 'modelBanner' => $modelBanner)); }
public function actionAjaxGetArrayTamanhoBorda() { if (Yii::app()->request->isPostRequest && isset($_POST['tamanho'])) { $array = TamanhoBorda::getArrayDescricaoFormatadaByTamanho($_POST['tamanho']); $modelTamanho = Tamanho::model()->findByPk($_POST['tamanho']); echo CJSON::encode(array('items' => $array, 'max_qtd_sabor' => $modelTamanho->max_qtd_sabor)); } else { throw new CHttpException(400); } }
public function actionAjaxGetArrayPizza() { if (Yii::app()->request->isAjaxRequest) { $modelTamanho = Tamanho::model()->findByPk($_POST['tamanho']); $arrayTamanhoBorda = TamanhoBorda::getArrayDescricaoFormatadaByTamanho($modelTamanho->id); $arrayTamanhoTipoMassa = TamanhoTipoMassa::getArrayDescricaoFormatadaByTamanho($modelTamanho->id); $arrayTamanhoAdicional = TamanhoAdicional::getArrayDescricaoFormatadaByTamanho($modelTamanho->id); echo CJSON::encode(array('arrayTamanhoBorda' => $arrayTamanhoBorda, 'arrayTamanhoTipoMassa' => $arrayTamanhoTipoMassa, 'arrayTamanhoAdicional' => $arrayTamanhoAdicional, 'max_qtd_sabor' => $modelTamanho->max_qtd_sabor)); } else { throw new CHttpException(400); } }
public function executa() { $id = $_POST['id']; $descricao = $_POST['nome']; $sigla = $_POST['sigla']; //Validações $validar = new Validar(); $validaNome = Validacoes::validaVazio($descricao); $validaSigla = Validacoes::validaVazio($sigla); //Validar a amiga é especial if ($validaNome && $validaSigla) { $dao = new MercadoDAO(); $tamanho = new Tamanho(); $tamanho->set_id($id); $tamanho->set_descricao($descricao); $tamanho->set_sigla($sigla); $dao->insereTamanho($tamanho); header('Location: ' . $this->getBaseUrl() . 'tamanhos'); } else { echo '<script>alert("Voce deve informar todos os dados"); window.history.go(-1);</script>'; exit; } }
public function actionSaveAll() { $this->tituloManual = "Gerenciador de preços de adicionais extra"; $return = true; $modelItem = Adicional::model()->naoExcluido()->findAll(); // Alterar 2 if (isset($_POST['TamanhoAdicional']) && !empty($_POST['TamanhoAdicional']['adicional_id'])) { // Alterar 1 $arrayItem = $_POST['TamanhoAdicional']['adicional_id']; // Alterar 3 foreach ($_POST['TamanhoAdicional']['preco'] as $key_preco => $preco) { // Alterar 2 if (empty($preco)) { continue; } foreach ($arrayItem as $item) { // Alterar 2 $tamanho_id = $_POST['TamanhoAdicional']['tamanho_id'][$key_preco]; // Alterar 2 $model = TamanhoAdicional::model()->findByAttributes(array('adicional_id' => $item, 'tamanho_id' => $tamanho_id)); // Alterar 3 if (empty($model)) { $model = new TamanhoAdicional(); } $model->adicional_id = $item; // Alterar 2 $model->tamanho_id = $tamanho_id; $model->preco = $preco; if (!$model->save()) { $return = false; } } } } $this->render('save_all', array('return' => $return, 'arrayTamanho' => CHtml::listData(Tamanho::model()->naoExcluido()->findAll(), 'id', 'descricao'), 'modelItens' => $modelItem, 'arrayItens' => CHtml::listData($modelItem, 'id', 'descricao'))); }
public static function getArrayTamanho() { $model = Tamanho::model()->ativos()->findAll(); $tamanhos = array(); foreach ($model as $item) { $tamanhos[$item->id] = $item->descricao . " (" . $item->tamanho . ")"; } return $tamanhos; }
?> <option value="<?php echo $categoria; ?> "><?php echo $categoria; ?> </option> <?php } ?> </select> <br/> <label>Tamanho*</label> <?php $tamanhos = Tamanho::todos(); ?> <br/><select id="<?php echo Proxy::encrypt('tamanho'); ?> " name="<?php echo Proxy::encrypt('tamanho'); ?> "> <?php foreach ($tamanhos as $tamanho) { ?> <option value="<?php echo $tamanho; ?> "><?php
/** * 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 Tamanho the loaded model * @throws CHttpException */ public function loadModel($id) { $model = Tamanho::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
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(); }
public function getTamanho($idTamanho) { $tabela = 'mrc_tamanho'; $dados = array('idtamanho', 'descricao', 'sigla'); $where = 'idtamanho = ?'; $dadosWhere = array($idTamanho); $resultado = Transacao::selectBasico($tabela, $dados, $where, $dadosWhere); $tamanho = new Tamanho(); foreach ($resultado as $r) { $tamanho->set_id($r['idtamanho']); $tamanho->set_descricao($r['descricao']); $tamanho->set_sigla($r['sigla']); } return $tamanho; }
public function actionIndex() { $this->tituloManual = "Cardápios"; $this->render('index', array('modelSabor' => Sabor::model()->naoExcluido()->ordenarPorSalgada()->findAll(), 'listTamanho' => CHtml::listData(Tamanho::model()->naoExcluido()->findAll(), 'id', 'descricao'), 'listAdicional' => CHtml::listData(Adicional::model()->naoExcluido()->findAll(), 'id', 'descricao'), 'listMassa' => Produto::getArrayListMassaCardapio(), 'listBebidas' => Produto::getArrayListBebidasCardapio())); }