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.'); } }