/** * Creates a new AccionCentralizadaVariables model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new AccionCentralizadaVariables(); $accion_centralizada = AccionCentralizada::find(['estatus' => 1])->all(); $accion_especifica = AcAcEspec::find()->where(['id' => $model->acc_accion_especifica, 'estatus' => 1])->all(); $ue = UnidadEjecutora::find(['estatus' => 1])->select(["unidad_ejecutora.id as id", "unidad_ejecutora.nombre as name"])->where(['id' => $model->unidad_ejecutora])->asArray()->all(); $connection = \Yii::$app->db; $transaction = $connection->beginTransaction(); try { if ($model->load(Yii::$app->request->post()) && $model->save()) { $model_usuarios = new AccionCentralizadaVariablesUsuarios(); $model_usuarios->id_variable = $model->id; $usuarios = Yii::$app->request->post('id_usuario'); $i = 0; while (count(Yii::$app->request->post('id_usuario')) != $i) { //funcion en el modelo para guardar if ($model_usuarios->usuarios_agregar($model->id, $usuarios[$i])) { $i++; } else { $transaction->rollback(); $i = count($request->post('id_usuario')); } } // termina el while $transaction->commit(); return $this->redirect(['responsable-acc-variable/create', 'id_variable' => $model->id]); } else { return $this->render('create', ['model' => $model, 'accion_centralizada' => $accion_centralizada, 'accion_especifica' => $accion_especifica, 'ue' => $ue]); } } catch (\Exception $e) { $transaction->rollBack(); throw $e; } }
/** * operacion para agregar o eliminar los usuarios que vienen del combo select de variables * @param array $usuarios * @return Mixed */ public function uejecutoras($usuarios) { //buscar si quitaron un usuario si es asi borrar la que quitaron if ($usuarios == null) { $usuarios = ''; } $ace = AccionCentralizadaVariablesUsuarios::find()->select('accion_centralizada_variables_usuarios.id')->where(['accion_centralizada_variables_usuarios.id_variable' => $this->id])->andwhere(['accion_centralizada_variables_usuarios.estatus' => 1])->andwhere(['not in', 'accion_centralizada_variables_usuarios.id_usuario', $usuarios])->asArray()->all(); if ($ace != null) { $model_cambiar = new AccionCentralizadaVariablesUsuarios(); foreach ($ace as $key => $value) { $model_cambiar->usuario_eliminar($value); } } //buscar si agregaron un usuario si es asi almacenar las nuevos y guardar $ace = AccionCentralizadaVariablesUsuarios::find()->select('accion_centralizada_variables_usuarios.id_usuario')->where(['accion_centralizada_variables_usuarios.id_variable' => $this->id])->andwhere(['accion_centralizada_variables_usuarios.estatus' => 1])->andwhere(['in', 'accion_centralizada_variables_usuarios.id_usuario', $usuarios])->asArray()->all(); $i = 0; $tabla[] = null; foreach ($ace as $key => $value) { $tabla[] = $value['id_usuario']; } //si viene vacio if ($usuarios == null) { $usuarios = []; } $nuevo = array_diff($usuarios, $tabla); foreach ($nuevo as $key => $value) { $model_variable_usuario = new AccionCentralizadaVariablesUsuarios(); $model_variable_usuario->id_usuario = $value; $model_variable_usuario->id_variable = $this->id; $model_variable_usuario->save(); } }
/** * mostrar nombre de los usuarios asociados a las variables * @param int $id * @return string */ public function obtener_usuario_variables($id) { $ue = ""; $uej = AccionCentralizadaVariablesUsuarios::find()->select(['user_accounts.username as name'])->innerjoin('user_accounts', 'user_accounts.id=accion_centralizada_variables_usuarios.id_usuario')->where(['accion_centralizada_variables_usuarios.id_variable' => $id])->andwhere(['accion_centralizada_variables_usuarios.estatus' => 1])->asArray()->all(); foreach ($uej as $key => $value) { $ue .= $value['name'] . ", "; } $ue = substr($ue, 0, -2); return $ue; }
/** * Determinar si posee variables activas * @return boolean */ public function hasVariables() { $model = AccionCentralizadaVariablesUsuarios::find()->where(['id_usuario' => $this->Id])->andwhere(['estatus' => 1])->One(); if ($model != null) { return true; } else { return false; } //fin del else }