public function partidaAsignada($attribute, $params) { $criteria = new CDbCriteria(); $usuario = Usuarios::model()->findByPk(Yii::app()->user->getId()); if ($this->nombre) { $accion = Acciones::model()->find('codigo=:codigo', array(':codigo' => $this->nombre)); $presupuestopartidaproyecto = PresupuestoPartidaAcciones::model()->findAll('accion_id=:accion_id and ente_organo_id=:ente_organo_id and anho=:anho', array(':accion_id' => $accion->accion_id, ':ente_organo_id' => $usuario->ente_organo_id, ':anho' => Yii::app()->params['trimestresFechas'][Yii::app()->session['trimestreSeleccionado']]['anho'])); foreach ($presupuestopartidaproyecto as $key => $value) { $value->presupuesto_partida_id; $partida = PresupuestoPartidas::model()->find('presupuesto_partida_id=:presupuesto_partida_id and ente_organo_id=:ente_organo_id and tipo=:tipo and anho=:anho', array(':ente_organo_id' => $usuario->ente_organo_id, ':presupuesto_partida_id' => $value->presupuesto_partida_id, ':tipo' => 'A', ':anho' => Yii::app()->params['trimestresFechas'][Yii::app()->session['trimestreSeleccionado']]['anho'])); if ($partida->partida_id == $this->{$attribute}) { $this->addError($attribute, 'Esta partida ya tiene asignado dinero para esta acción centralizada!'); //$partida = $attribute['especifica']; break; } } } //$criteria->condition = "ente_organo_id=".$usuario->ente_organo_id ; //$criteria->addSearchCondition('t.nombre', $this->nombre); //$criteria->compare('LOWER(nombre)',strtolower($this->nombre),true); }
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)); }