예제 #1
0
 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);
     }
 }
예제 #3
0
 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);
     }
 }
예제 #4
0
 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')));
 }
예제 #6
0
 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 
예제 #8
0
 /**
  * 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;
 }
예제 #9
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();
 }
예제 #10
0
 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;
 }
예제 #11
0
 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()));
 }