/** * Displays a single Cardapio model. * @param integer $id * @return mixed */ public function actionView($id) { //Recebe os itens do cardápio $itensCardapio = Itemcardapio::find()->where(['idCardapio' => $id])->orderBy('ordem ASC')->all(); //Recebe os insumos do Produto Venda do item do Cardápio $insumosProdutos = []; foreach ($itensCardapio as $ic) { //Array para guardar os nomes dos insumos do Produto Venda $aux = []; $produtoVenda = Produto::findOne($ic->idProduto); if ($produtoVenda != null) { $insumos = Insumo::findAll(['idProdutoVenda' => $produtoVenda->idProduto]); foreach ($insumos as $i) { array_push($aux, $i->produtoInsumo->nome); } //Adiciona os insumos produtos na lista de insumos do produto //do item do cardápio array_push($insumosProdutos, $aux); } } return $this->render('view', ['modelCardapio' => $this->findModel($id), 'itensCardapio' => $itensCardapio, 'insumosProdutos' => $insumosProdutos]); }
/** * Verifica a quantidade no estoque antes de efetuar um * pedido * @params $idProduto int, $qtdProdutoPedido int * @return array */ public function verificaQtdEstProdutoPedido($idProduto, $qtdProdutoPedido) { //Receba o produto $produto = Produto::findOne($idProduto); //Recebe o insumo que está com o estoque com quantidade mínima $insumoFaltando = []; if ($produto != null & $qtdProdutoPedido > 0) { $insumosProduto = Insumo::findAll(['idprodutoVenda' => $idProduto]); if (count($insumosProduto) > 0) { foreach ($insumosProduto as $inspro) { $insumo = Produto::findOne($inspro->idprodutoInsumo); if ($insumo != null) { if ($insumo->quantidadeEstoque - $inspro->quantidade * $qtdProdutoPedido < $insumo->quantidadeMinima) { array_push($insumoFaltando, $insumo); } } } } } return $insumoFaltando; }