public function actionFinalizarPedido($formaPagamento, $idPedido)
 {
     if ($formaPagamento != null && $idPedido != null) {
         $pagamento = Pagamento::find()->where(['idPedido' => $idPedido])->one();
         if ($pagamento != null) {
             $pedido = $this->findModel($idPedido);
             $pagamento->formapagamento_idTipoPagamento = $formaPagamento;
             //Inicia a transação:
             $transaction = \Yii::$app->db->beginTransaction();
             try {
                 $itensInseridos = true;
                 if ($pagamento->save()) {
                     if ($pedido != null) {
                         $situacaoPedido = Pedido::CONCLUIDO;
                         $pedido->idSituacaoAtual = $situacaoPedido;
                         if ($pedido->save() && $pedido->cadastrarNovaHistoricoSituacaoPedido(intval($pedido->idPedido), intval($pedido->idSituacaoAtual), Yii::$app->getUser()->id)) {
                             $caixa = new Caixa();
                             $caixa = $caixa->getCaixaAberto();
                             if ($caixa != null) {
                                 $caixa = Caixa::findOne($caixa->idcaixa);
                                 $caixa->valoremcaixa += $pedido->totalPedido;
                                 $caixa->valorapurado += $pedido->totalPedido;
                                 $caixa->valorlucro += number_format($caixa->calculaValorLucroPedido($pedido->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);
                                 }
                             } else {
                                 $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('caixanull');
                             }
                         } else {
                             $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);
                         }
                     } else {
                         $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);
                     }
                 } else {
                     $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);
                 }
                 //Testa se todos os itens foram inseridos (ou tudo ou nada):
                 if ($itensInseridos) {
                     $transaction->commit();
                     echo Json::encode($pedido->idSituacaoAtual);
                 }
             } catch (\Exception $exception) {
                 $transaction->rollBack();
                 $mensagem = "Ocorreu uma falha inesperada ao tentar salvar o Pedido";
             }
         } else {
             echo Json::encode(false);
         }
     } else {
         echo Json::encode(false);
     }
 }
 /**
  * Finds the Caixa model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Caixa the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($modelCaixa = Caixa::findOne($id)) !== null) {
         return $modelCaixa;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }