public function actionAdicionarProduto($id) { $pedido = $this->findModel($id); $model = new \app\models\PedidoProduto(); $model->pedi_codigo = $id; if ($model->load(Yii::$app->request->post())) { if ($model->prod_codigo != null) { $produto = \app\models\Produto::findOne($model->prod_codigo); $model->pepr_nome = $produto->prod_nome; $model->pepr_valor = $produto->prod_valor; $pedidoProduto = \app\models\PedidoProduto::findOne(['prod_codigo' => $model->prod_codigo]); if ($pedidoProduto != null) { $pedidoProduto->pepr_quantidade += $model->pepr_quantidade; if ($pedidoProduto->save()) { Yii::$app->session->setFlash('success', 'Produto alterado com sucesso!'); return $this->redirect(['view', 'id' => $pedidoProduto->pedi_codigo]); } } } if ($model->save()) { Yii::$app->session->setFlash('success', 'Produto adicionado com sucesso!'); return $this->redirect(['view', 'id' => $model->pedi_codigo]); } } return $this->render('adicionarProduto', ['model' => $model, 'pedido' => $pedido]); }
/** * Calcula o lucro do Pedido * @param $idPedido * @return float */ public function calculaValorLucroPedido($idPedido) { $itensPedido = Itempedido::find()->where(['idPedido' => $idPedido])->all(); $lucroTotal = 0; if (count($itensPedido) > 0) { foreach ($itensPedido as $ip) { $produto = Produto::findOne($ip->idProduto); if ($produto != null) { $quantidade = $ip->quantidade; $valorProduto = $produto->valorVenda; $precoCustoProduto = $produto->calculoPrecoProduto($produto->idProduto); $diferenca = $valorProduto * $quantidade - $precoCustoProduto * $quantidade; $lucroTotal += $diferenca; } } } return number_format($lucroTotal, 2); }
/** * Recupera a foto do produto * @param $idProduto * @return string */ public function actionGetFotoProduto($idProduto) { if (isset($idProduto)) { $produto = Produto::findOne($idProduto); if ($produto != null) { return Json::encode([$produto->nome, base64_encode($produto->foto)]); } else { return Json::encode(false); } } throw new NotFoundHttpException('Passe o id do Produto.'); }
/** * Retorna os itens do pedido para o index de Pedido * @return array|null */ public function getItensPedido() { $itensPedido = Itempedido::findAll($this->idPedido); $aux = []; if (count($itensPedido) > 0) { //Guarda os nomes e quantidades dos itens pedido $aux = []; foreach ($itensPedido as $ip) { $produto = Produto::findOne($ip->idProduto); if ($produto != null) { array_push($aux, [$produto->nome, $ip->quantidade]); } } return $aux; } else { return null; } }
/** * Recupera a foto do produto * @param $idProduto * @return string */ public function actionGetFotoProduto($idProduto) { if (isset($idProduto)) { $produto = Produto::findOne($idProduto); if ($produto != null) { return Json::encode([$produto->nome, base64_encode($produto->foto)]); } else { return Json::encode(false); } } }
/** * Retorna um array de json de produtos que contem o no nome o texto digitado na busca * @param null $q * @param null $idProduto * @return array */ public function actionProdutoList($q = null, $idProduto = null) { \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $out = ['results' => ['id' => '', 'text' => '']]; if (!is_null($q)) { $query = new Query(); $query->select('idProduto AS id, nome AS text')->from('produto')->where(['like', 'nome', $q])->andWhere(['isInsumo' => 1])->limit(20); $command = $query->createCommand(); $data = $command->queryAll(); $out['results'] = array_values($data); } elseif ($idProduto > 0) { $out['results'] = ['id' => $idProduto, 'text' => Produto::findOne($idProduto)->nome]; } return $out; }
/** * Verifica a quantidade no estoque antes de efetuar um * pedido * @param $qtdProdutoPedido int * @return bool */ public function verificaQtdEstProdutoPedido($qtdProdutoPedido) { $produto = Produto::findOne($this->idProduto); if ($produto != null & $qtdProdutoPedido > 0) { if ($produto->quantidadeEstoque - $qtdProdutoPedido > $produto->quantidadeMinima) { return true; } else { return false; } } else { return false; } }
/** * Finds the Produto model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Produto the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Produto::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
public function actionListarDisponiveisRemoto($search = null, $id = null) { $user = User::find()->where(['iduser' => Yii::$app->user->id])->one(); $idLoja = $user->loja_idloja; \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $out = ['results' => ['id' => '', 'text' => '']]; if (!is_null($search)) { $query = new Query(); $query->select('idproduto AS id, referencia AS text')->from('produto')->where("referencia LIKE '%{$search}%' and idproduto in(select produto_idproduto from estoque where loja_idloja = {$idLoja} and quantidade > 0)")->limit(20); $command = $query->createCommand(); $data = $command->queryAll(); $out['results'] = array_values($data); } elseif ($id > 0) { $out['results'] = ['id' => $id, 'text' => Produto::findOne($id)->referencia]; } echo Json::encode($out); }
/** * 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; }