public function actionAgregarcentralizada()
 {
     $model = new Acciones('crearaccion');
     $accionestodas = $this->obtenerAccionesCentralizadas();
     $criteria = new CDbCriteria();
     $criteria->condition = "activo=true";
     $fuentes = FuentesFinanciamiento::model()->findAll($criteria);
     $fuentesSel[] = new FuentePresupuesto();
     if (isset($_POST['Acciones'])) {
         $model->attributes = $_POST['Acciones'];
         $model->setScenario(!empty($model->subespecifica) ? 'crearaccionse' : 'crearaccion');
         $fuente_ids = $_POST['f']['fuente_id'];
         $montos = $_POST['f']['monto'];
         if (count($fuente_ids) == count($montos)) {
             $cantidad = count($fuente_ids);
             for ($i = 0; $i < $cantidad; $i++) {
                 $fuentePresu = new FuentePresupuesto();
                 $fuentePresu->fuente_id = $fuente_ids[$i];
                 $fuentePresu->monto = $montos[$i];
                 $fuentesSel[$i] = $fuentePresu;
             }
         }
         $verificar = true;
         foreach ($fuentesSel as $key => $fuentep) {
             $verificar = $fuentep->validate() && $verificar;
         }
         if ($model->validate() && $verificar) {
             //return;
             $usuario = Usuarios::model()->findByPk(Yii::app()->user->getId());
             $presupuesto_partida = new PresupuestoPartidas();
             $presupuesto_partida_acciones = new PresupuestoPartidaAcciones();
             $presupuesto_partida->partida_id = !empty($model->subespecifica) ? $model->subespecifica : $model->especifica;
             $presupuesto_partida->monto_presupuestado = 200;
             //$model->monto;  //aqui va la suma de todos los montos.
             $presupuesto_partida->fecha_desde = "1900-01-01";
             $presupuesto_partida->fecha_hasta = "2199-12-31";
             $presupuesto_partida->tipo = "A";
             $presupuesto_partida->anho = Yii::app()->params['trimestresFechas'][Yii::app()->session['trimestreSeleccionado']]['anho'];
             //date("Y");
             $presupuesto_partida->ente_organo_id = $usuario->ente_organo_id;
             //$presupuesto_partida->fuente_fianciamiento_id = $model->fuente;
             $presupuesto_partida_acciones->setScenario($model->scenario);
             $transaction = $presupuesto_partida->dbConnection->beginTransaction();
             // Transaction begin //Yii::app()->db->beginTransaction
             try {
                 if ($presupuesto_partida->save() && $verificar) {
                     $verificar = true;
                     $monto_total = 0;
                     //$cont = count($fuentesSel);
                     //aqui realmente es que tiene que ir.
                     foreach ($fuentesSel as $key => $fuentep) {
                         $fuentep->presupuesto_partida_id = $presupuesto_partida->presupuesto_partida_id;
                         $monto_total += $fuentep->monto;
                         $verificar = $fuentep->save() && $verificar;
                     }
                     $accion = Acciones::model()->find('codigo=:codigo', array(':codigo' => $model->nombre));
                     $presupuesto_partida_acciones->accion_id = $accion->accion_id;
                     $presupuesto_partida_acciones->presupuesto_partida_id = $presupuesto_partida->presupuesto_partida_id;
                     $presupuesto_partida_acciones->ente_organo_id = $usuario->ente_organo_id;
                     $presupuesto_partida_acciones->codigo_accion = $model->nombre;
                     if ($presupuesto_partida_acciones->save() && $verificar) {
                         $actualizar_presupuesto_partida = PresupuestoPartidas::model()->findByPk($presupuesto_partida->presupuesto_partida_id);
                         $actualizar_presupuesto_partida->monto_presupuestado = $monto_total;
                         $actualizar_presupuesto_partida->save(array('monto_presupuestado'));
                         $transaction->commit();
                         // committing
                         Yii::app()->user->setFlash('success', "Acción centralizada creada con éxito!");
                         $model = new Acciones('crearaccion');
                         unset($fuentesSel);
                         // borramos el arreglo para mandarlo limpio a la vista.
                         $fuentesSel[] = new FuentePresupuesto();
                     } else {
                         throw new Exception("Error Processing Request", 1);
                     }
                 } else {
                     throw new Exception("Error Processing Request", 1);
                 }
             } catch (Exception $e) {
                 //echo
                 Yii::app()->user->setFlash('error', $e);
                 $transaction->rollBack();
                 //return false;
             }
         } else {
             if ($model->nombre) {
                 //$prueba = $lista_acciones = CHtml::listData($accionestodas, 'codigo', 'nombre');
                 $partidas = $this->obtenerPartidas($model->nombre);
                 $partidas_principal = CHtml::listData($partidas, function ($partidas) {
                     return CHtml::encode($partidas->partida_id);
                 }, function ($partidas) {
                     return CHtml::encode($partidas->p1 . '-' . $partidas->nombre);
                 });
                 if ($model->partida) {
                     $tipo = Partidas::model()->findByPk($model->partida);
                     $generales = $this->GeneralXpartida($tipo->p1);
                     $generales_todas = CHtml::listData($generales, function ($generales) {
                         return CHtml::encode($generales->partida_id);
                     }, function ($generales) {
                         return CHtml::encode($generales->p1 . '-' . $generales->p2 . '-' . $generales->p3 . ' ' . $generales->nombre);
                     });
                     if ($model->general) {
                         $especificas_todas = $this->buscar_especifica($model->general);
                         $this->render('agregarcentralizada', array('acciones' => $model, 'accionestodas' => $accionestodas, 'fuentes' => $fuentes, 'partidas_principal' => $partidas_principal, 'generales_todas' => $generales_todas, 'especificas_todas' => $especificas_todas, 'fuentesSel' => $fuentesSel));
                     } else {
                         $this->render('agregarcentralizada', array('acciones' => $model, 'accionestodas' => $accionestodas, 'fuentes' => $fuentes, 'partidas_principal' => $partidas_principal, 'generales_todas' => $generales_todas, 'fuentesSel' => $fuentesSel));
                     }
                     Yii::app()->end();
                 } else {
                     $this->render('agregarcentralizada', array('acciones' => $model, 'accionestodas' => $accionestodas, 'fuentes' => $fuentes, 'partidas_principal' => $partidas_principal, 'fuentesSel' => $fuentesSel));
                 }
                 Yii::app()->end();
             } else {
                 $this->render('agregarcentralizada', array('acciones' => $model, 'accionestodas' => $accionestodas, 'fuentes' => $fuentes, 'fuentesSel' => $fuentesSel));
             }
             Yii::app()->end();
         }
     }
     $this->render('agregarcentralizada', array('acciones' => $model, 'accionestodas' => $accionestodas, 'fuentes' => $fuentes, 'fuentesSel' => $fuentesSel));
 }