public function actionAddpacote() { $searchModel = new InscreveSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); //$id_evento = Yii::$app->request->queryParams['id_evento']; //$id_pacote = Yii::$app->request->queryParams['id_pacote']; $id_evento = Yii::$app->request->post('id_evento'); -($id_pacote = Yii::$app->request->post('id_pacote')); $model = $this->findModel($id_evento); $inscreve = new Inscreve(); //primeiro verifica se possui vagas o pacote !!!! é necessário em razão da concorrencia das requisicoes //caso não tenha vagas é redirecionado ao index if ($inscreve->possuiVagasPacote($id_pacote) != 0) { Yii::$app->getSession()->setFlash('danger', ['type' => 'danger', 'message' => 'Inscrição no evento ' . $model->sigla . ' não foi efetuada, pois as vagas referente a esse pacote estão esgotadas', 'title' => 'Inscrição', 'positonY' => 'bottom', 'positonX' => 'right']); return Yii::$app->getResponse()->redirect(array('/inscreve/', 'mensagem' => 'erro')); } else { if ($inscreve->inscreverComPacote($id_evento, $id_pacote) == 0) { Yii::$app->getSession()->setFlash('danger', ['type' => 'danger', 'message' => 'Inscrição no evento ' . $model->sigla . ' não foi efetuada, pois você já está inscrito nesse evento', 'title' => 'Inscrição', 'positonY' => 'bottom', 'positonX' => 'right']); return Yii::$app->getResponse()->redirect(array('/inscreve/', 'mensagem' => 'erro')); } else { //caso ótimo: quando há vagas! $reduzir = new Inscreve(); $reduzir->reduzirVagas($id_pacote, $id_evento, 2); // redução das vagas no banco de dados ! //o valor 2 é pq há pacotes! //2 significa pacotes ; 1 significa sem pacotes Yii::$app->getSession()->setFlash('success', ['type' => 'success', 'message' => 'Inscrição no evento ' . $model->sigla . ' Efetuada com Sucesso', 'title' => 'Inscrição', 'positonY' => 'bottom', 'positonX' => 'right']); return Yii::$app->getResponse()->redirect(array('/inscreve/', 'mensagem' => 'sucesso')); } } }