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