Esempio n. 1
0
 /**
  * Creates a new Pedido model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Pedido();
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'id' => $model->pedi_codigo]);
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }
 /**
  * Creates a new Pedido model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Pedido();
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'idPedido' => $model->idPedido, 'RRHH_idRRHH' => $model->RRHH_idRRHH, 'tiporrhh_idTipoRRHH' => $model->tiporrhh_idTipoRRHH, 'Cliente_idCliente' => $model->Cliente_idCliente]);
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }
Esempio n. 3
0
 /**
  * Creates a new Pedido model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Pedido();
     $model->owner = Yii::$app->user->identity->getId();
     $model->estado_idEstado = 1;
     $model->fechaOrden = (new \DateTime())->format('Y-m-d');
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['pick', 'idPedido' => $model->idPedido]);
     } else {
         return $this->render('create', ['model' => $model]);
     }
 }
 /**
  * Creates a new Pedido model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     //Carrega demais modelos
     $modelPedido = new Pedido();
     $itemPedido = new Itempedido();
     $mensagem = "";
     //Informa ao usuário mensagens de erro na view
     $totalPedidoPagamento = "";
     $situacaopedido = ArrayHelper::map(Situacaopedido::find()->all(), 'idSituacaoPedido', 'titulo');
     $produtosVenda = ArrayHelper::map(Produto::find()->where(['isInsumo' => 0])->orderBy('nome ASC')->all(), 'idProduto', 'nome');
     $formasPagamento = ArrayHelper::map(Formapagamento::find()->all(), 'idTipoPagamento', 'titulo');
     //Recebe todas as mesas registradas
     $mesa = ArrayHelper::map(Mesa::find()->all(), 'idMesa', 'numeroDaMesa');
     //Atribuindo valor padrão para o total pedido
     $modelPedido->totalPedido = 0;
     //Guarda o valor somado total dos itens pedido
     $totalDoPedido = 0;
     if ($modelPedido->load(Yii::$app->request->post())) {
         //Carrega demais modelos
         //Inicia a transação:
         $transaction = \Yii::$app->db->beginTransaction();
         try {
             //Tenta salvar um registro de Pedido:
             if ($modelPedido->save() && $modelPedido->cadastrarNovaHistoricoSituacaoPedido(intval($modelPedido->idPedido), intval($modelPedido->idSituacaoAtual), Yii::$app->getUser()->id)) {
                 //alterei
                 //Carrega os dados dos itens do Pedido:
                 $itemPedidoPost = Yii::$app->request->post()['Itempedido'];
                 $itensInseridos = true;
                 for ($i = 0; $i < count($itemPedidoPost['idProduto']); $i++) {
                     $itemPedido = new Itempedido();
                     $itemPedido->idProduto = $itemPedidoPost['idProduto'][$i];
                     $itemPedido->quantidade = $itemPedidoPost['quantidade'][$i];
                     $produtoVenda = Produto::find()->where(['idProduto' => $itemPedido->idProduto])->one();
                     $itemPedido->total = floatval(number_format($produtoVenda->valorVenda * $itemPedido->quantidade, 2));
                     $totalPedidoPagamento += $itemPedido->total;
                     $itemPedido->idPedido = $modelPedido->idPedido;
                     $totalDoPedido += $itemPedido->total;
                     //Verifica a quantidade em estoque de insumos
                     $verificaEstoque = $itemPedido->verificaQtdEstProdutoPedido($itemPedido->idProduto, $itemPedido->quantidade);
                     if (count($verificaEstoque) <= 0) {
                         if ($itemPedido->save()) {
                             Insumo::atualizaQtdNoEstoqueInsert($itemPedido->idProduto, $itemPedido->quantidade);
                         }
                     } else {
                         $insumosFaltando = "";
                         foreach ($verificaEstoque as $i => $insumo) {
                             $insumosFaltando .= $insumo->nome;
                             if ($i < count($verificaEstoque) - 1) {
                                 $insumosFaltando .= ", ";
                             }
                         }
                         $mensagem = "<b>Pedido não foi alterado com sucesso! </b>Quantidade dos insumos(" . $insumosFaltando . ")\n                              ficarão abaixo da quantidade mínima de insumos em estoque.";
                         $transaction->rollBack();
                         //desfaz alterações no BD
                         $itensInseridos = false;
                         break;
                         //encerra o laço for
                     }
                 }
                 //alterirei aqui
                 if ($modelPedido->idSituacaoAtual == Pedido::CONCLUIDO) {
                     $caixa = new Caixa();
                     $caixa = $caixa->getCaixaAberto(Yii::$app->user->getId());
                     if ($caixa != null) {
                         $caixa = Caixa::findOne($caixa->idcaixa);
                         $caixa->valoremcaixa += $totalPedidoPagamento;
                         $caixa->valorapurado += $totalPedidoPagamento;
                         $caixa->valorlucro += number_format($caixa->calculaValorLucroPedido($modelPedido->idPedido), 2);
                         if (!$caixa->save()) {
                             $mensagem = "Não foi possível salvar os dados de algum item do Pedido";
                             $transaction->rollBack();
                             //desfaz alterações no BD
                             $itensInseridos = false;
                             echo Json::encode(false);
                         }
                     }
                     //print_r($itemPedido);
                     //return $this->actionFinalizarPedido($formaPagamento, $idPedido);
                 }
                 //Testa se todos os itens foram inseridos (ou tudo ou nada):
                 if ($itensInseridos && $modelPedido->save()) {
                     $transaction->commit();
                     return $this->redirect(['view', 'id' => $modelPedido->idPedido]);
                 }
             } else {
                 $mensagem = "Não foi possível salvar os dados do Pedido";
             }
         } catch (\Exception $exception) {
             $transaction->rollBack();
             $mensagem = "Ocorreu uma falha inesperada ao tentar salvar o Pedido";
         }
     }
     //        } else {
     $modelPedido->idSituacaoAtual = Pedido::EM_ANDAMENTO;
     return $this->render('create', ['modelPedido' => $modelPedido, 'situacaopedido' => $situacaopedido, 'produtosVenda' => $produtosVenda, 'itemPedido' => $itemPedido, 'formasPagamento' => $formasPagamento, 'mensagem' => $mensagem, 'mesa' => $mesa]);
     // }
 }