/** * 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); $modelIM = new ItensMultimidia(); $modelSU = new Status(); $modelSN = new StatusNegocios(); /* Pega o usuario_id através do id itens da tabela itensTroca */ $modelItens = Itens::model()->find(array('select' => '*', 'condition' => 'itens_id=:itens_id', 'params' => array(':itens_id' => $model->itens_id))); $modelSU2 = StatusNegocios::model()->findAll(array('select' => '*', 'condition' => 'itens_id=:itens_id', 'params' => array(':itens_id' => $id))); $sts_selected = array(); foreach ($modelSU2 as $values) { $sts_selected[$values->status_id] = $values->status_id; } $modelIM2 = ItensMultimidia::model()->find(array('select' => '*', 'condition' => 'itens_id=:itens_id', 'params' => array(':itens_id' => $id), 'order' => 'itens_multimidia_id DESC')); // Uncomment the following line if AJAX validation is needed $this->performAjaxValidation($model); if (isset($_POST['Itens'])) { $model->attributes = $_POST['Itens']; $modelIM->attributes = $_POST['ItensMultimidia']; $modelIM->itens_multimidia_caminho = CUploadedFile::getInstance($modelIM, 'itens_multimidia_caminho'); $sts_selected_form = array(); if (isset($_POST['Status'])) { //$sts_selected_form=$_POST['Status']; if (isset($_POST['Status']) && !empty($_POST['Status'])) { foreach ($_POST['Status'] as $key => $values) { if (!empty($values)) { foreach ($values as $values2) { $sts_selected_form[$values2] = $values2; } } } } } //print_r($sts_selected).'<br>'; //print_r($sts_selected_form).'<br>'; exit; /* Compara o array do status do banco com os status do form e retorna a diferença */ $diff_sts = array_diff_assoc($sts_selected, $sts_selected_form); if (count($diff_sts) > 0) { $sts_del = implode(",", $diff_sts); /* Exclui os que não vieram no form */ $cri = new CDbCriteria(); $cri->condition = "itens_id='{$id}' AND status_id in({$sts_del})"; StatusNegocios::model()->deleteAll($cri); } /* Compara o array do status do form com os status do banco e retorna. Se retornar um novo registro a inserir */ $diff_sts2 = array_diff_assoc($sts_selected_form, $sts_selected); foreach ($diff_sts2 as $values) { $modelSN = new StatusNegocios(); $modelSN->itens_id = $id; $modelSN->status_id = $values; $modelSN->save(); } $model->itens_dt_modificacao = new CDbExpression('NOW()'); $transaction = Yii::app()->db->beginTransaction(); try { $itens_precos = ""; $itens_receita_anual = ""; $itens_ebitda = ""; $itens_resultado_operacional = ""; $itens_fluxo_de_caixa = ""; for ($i = 2; $i <= 5; $i++) { $i_preco = $_POST['Itens']['itens_preco_' . $i]; $i_receita_anual = $_POST['Itens']['itens_receita_anual_' . $i]; $i_ebitda = $_POST['Itens']['itens_ebitda_' . $i]; $i_resultado_operacional = $_POST['Itens']['itens_resultado_operacional_' . $i]; $i_fluxo_de_caixa = $_POST['Itens']['itens_fluxo_de_caixa_' . $i]; if (!empty($i_preco)) { $itens_precos .= $i_preco . ";"; } if (!empty($i_receita_anual)) { $itens_receita_anual .= $i_receita_anual . ";"; } if (!empty($i_ebitda)) { $itens_ebitda .= $i_ebitda . ";"; } if (!empty($i_resultado_operacional)) { $itens_resultado_operacional .= $i_resultado_operacional . ";"; } if (!empty($i_fluxo_de_caixa)) { $itens_fluxo_de_caixa .= $i_fluxo_de_caixa . ";"; } } $model->itens_preco .= ";" . $itens_precos; $model->itens_receita_anual .= ";" . $itens_receita_anual; $model->itens_ebitda .= ";" . $itens_ebitda; $model->itens_resultado_operacional .= ";" . $itens_resultado_operacional; $model->itens_fluxo_de_caixa .= ";" . $itens_fluxo_de_caixa; if ($model->save()) { //Yii::app()->upload->atualizar($model, Yii::app()->params['uploadPath'] . DIRECTORY_SEPARATOR . Yii::app()->params['uploadPathMultimidiaItens']); $model2 = Itens::model()->findByPk($model->itens_id); if (isset($_POST['ItensMultimidia']) && !empty($_FILES['ItensMultimidia']['name']['itens_multimidia_caminho'])) { $seq_rand = md5(date("Ymd h:i:s")) . rand(5, 15); $nm = $seq_rand . "." . $model->extensionImg($modelIM->itens_multimidia_caminho->type); $nm_thumb = $seq_rand . "_." . $model->extensionImg($modelIM->itens_multimidia_caminho->type); $caminho = Yii::app()->params['uploadPath'] . DIRECTORY_SEPARATOR . Yii::app()->params['uploadPathMultimidiaItens']; $file = $caminho . $model->itens_id . DIRECTORY_SEPARATOR . $nm; $file_thumb = $caminho . $model->itens_id . DIRECTORY_SEPARATOR . $nm_thumb; if (!is_dir($caminho . $model->itens_id)) { mkdir($caminho . $model->itens_id); } $modelIM->itens_id = $model2->itens_id; $modelIM->itens_multimidia_caminho->saveAs($caminho . $model->itens_id . DIRECTORY_SEPARATOR . $nm, true); $modelIM->itens_multimidia_caminho = $nm; $modelIM->save(); //Yii::app()->canvas->carrega($file)->redimensiona( 242, 202, 'crop' )->grava($file); //Yii::app()->canvas->carrega($file)->redimensiona( 96, 80, 'crop' )->grava($file_thumb); Yii::app()->canvas->carrega($file)->redimensiona(242, 202, '')->grava($file); Yii::app()->canvas->carrega($file)->redimensiona(96, 80, '')->grava($file_thumb); } $transaction->commit(); $this->redirect(array('admin')); } } catch (CDbException $e) { $transaction->rollback(); $model->addError(null, $e->getMessage()); } } $this->render('update', array('model' => $model, 'modelIM' => $modelIM, 'modelIM2' => $modelIM2, 'modelSU' => $modelSU, 'sts_selected' => $sts_selected, 'modelSN' => $modelSN)); }