示例#1
0
 protected function afterFind()
 {
     //$this->calculaGastosVerbas();
     $this->defineClassFromStatus();
     $this->instrumento_juridico = InstrumentoJuridico::load(json_decode($this->instrumento_juridico));
     $this->convenio = Convenio::load(json_decode($this->convenio));
     //Coloca a situação do projeto
     if ($this->situacao == null) {
         $this->situacao = 0;
     }
     $this->situacao_text = $this->situacoes[$this->situacao];
     if ($this->nome_curto == null || $this->nome_curto == '') {
         $this->nome_curto = substr($this->nome, 0, 20);
     }
     //Calcula o financeiro novo
     $this->calcFinanceiro();
 }
 /**
  * Updates a particular model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id the ID of the model to be updated
  */
 public function actionUpdate($id)
 {
     $model = $this->loadModel($id);
     if (isset($_POST['Projeto'])) {
         if (isset($_POST['Projeto']['pessoas'])) {
             $model->pessoas = $_POST['Projeto']['pessoas'];
         }
         $orcamentos = null;
         if (isset($_POST['Orcamento'])) {
             $orcamentos = $_POST['Orcamento'];
         }
         if (isset($_POST['InstrumentoJuridico'])) {
             $model->instrumento_juridico = json_encode($_POST['InstrumentoJuridico']);
         }
         if (isset($_POST['Convenio'])) {
             $model->convenio = json_encode($_POST['Convenio']);
         }
         $model->attributes = $_POST['Projeto'];
         $connection = Yii::app()->db;
         $transaction = $connection->beginTransaction();
         try {
             //Retira a permisssão do coordenador antigo
             //$this->deleteDafaultPermissions($model);
             if ($model->save()) {
                 if (!$this->salvaOrcamento($model->cod_projeto, $orcamentos)) {
                     $model->addError('orcamentos', "Erro ao salvar orçamentos");
                 }
                 //Atualiza permissão do coordenador
                 //$this->createDafaultPermissions($model);
                 if (!$this->salvaPessoas($model->cod_projeto, explode(',', $model->pessoas))) {
                     $model->addError('pessoas', "Erro ao adicionar equipe");
                 }
                 //Verifica erros e gera exceção
                 if ($model->hasErrors()) {
                     throw new CHttpException(500, "ERRO AO SALVAR PROJETO");
                 }
                 //Salva definitivamente todas as alterações no banco
                 $transaction->commit();
                 //Redireciona
                 $this->redirect(array('view', 'id' => $model->cod_projeto));
             }
         } catch (Exception $e) {
             $transaction->rollBack();
             $model->instrumento_juridico = InstrumentoJuridico::load(json_decode($model->instrumento_juridico));
             $model->convenio = Convenio::load(json_decode($model->convenio));
         }
     }
     $this->render('update', array('model' => $model));
 }