/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate($projeto = null) { $model = new Atividade(); $model->cod_pessoa = Yii::app()->user->getId(); if ($projeto != null) { $model->projetos = $projeto; } // Uncomment the following line if AJAX validation is needed //$this->performAjaxValidation($model); if (isset($_POST['Atividade'])) { $model->attributes = $_POST['Atividade']; //Valida projetos if (isset($_POST['Atividade']['projetos'])) { $model->projetos = $_POST['Atividade']['projetos']; } //Valida pessoas if (isset($_POST['Atividade']['pessoas'])) { $model->pessoas = $_POST['Atividade']['pessoas']; } $model->cod_categoria = $_POST['Atividade']['cod_categoria']; //Atualiza a data de edição e criação $model->data_criacao = date('Y-m-d'); $model->data_edicao = date('Y-m-d'); if ($model->save()) { $this->salvaProjetos($model->cod_atividade, $model->projetos); $this->salvaPessoas($model->cod_atividade, $model->pessoas); $this->broadCast($model->cod_atividade, "adicionou você na atividade"); $this->redirect(array('view', 'id' => $model->cod_atividade)); } $connection = Yii::app()->db; $transaction = $connection->beginTransaction(); try { if ($model->save()) { if (!$this->salvaProjetos($model->cod_atividade, $model->projetos)) { $model->addError('projetos', "Erro ao salvar projetos"); } if (!$this->salvaPessoas($model->cod_atividade, $model->pessoas)) { $model->addError('pessoas', "Erro ao salvar pessoas"); } $this->broadCast($model->cod_atividade, "adicionou você na atividade"); if ($model->hasErrors()) { throw new CHttpException(500, "ERRO AO SALVAR ATIVIDADE"); } //Salva definitivamente todas as alterações no banco $transaction->commit(); $this->redirect(array('view', 'id' => $model->cod_atividade)); } } catch (Exception $e) { $transaction->rollBack(); } } $this->render('create', array('model' => $model)); }