コード例 #1
0
 /**
  * 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));
 }