Пример #1
0
 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]);
 }
Пример #2
0
 /**
  * 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.');
 }
Пример #4
0
 /**
  * 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;
     }
 }
Пример #5
0
 /**
  * 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;
 }
Пример #7
0
 /**
  * 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;
     }
 }
Пример #8
0
 /**
  * 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.');
     }
 }
Пример #9
0
 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);
 }
Пример #10
0
 /**
  * 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;
 }