/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = AcEspUej::find(); $query->joinWith(['idAccionEspecifica.idAcCentr', 'idAccionEspecifica', 'idUe']); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'id_ue' => $this->id_ue, 'id_ac_esp' => $this->id_ac_esp]); //Ordenamiento $dataProvider->sort->attributes['nombre_central'] = ['asc' => ['accion_centralizada.nombre_accion' => SORT_ASC], 'desc' => ['accion_centralizada.nombre_accion' => SORT_DESC]]; $dataProvider->sort->attributes['nombre_acc'] = ['asc' => ['accion_centralizada_accion_especifica.nombre' => SORT_ASC], 'desc' => ['accion_centralizada_accion_especifica.nombre' => SORT_DESC]]; $dataProvider->sort->attributes['nombre_ue'] = ['asc' => ['unidad_ejecutora.nombre' => SORT_ASC], 'desc' => ['unidad_ejecutora.nombre' => SORT_DESC]]; $query->andFilterWhere(['like', 'accion_centralizada.nombre_accion', $this->nombre_central]); $query->andFilterWhere(['like', 'accion_centralizada_accion_especifica.nombre', $this->nombre_acc]); $query->andFilterWhere(['like', 'unidad_ejecutora.nombre', $this->nombre_ue]); return $dataProvider; }
/** * Funcion de respuesta para el AJAX de * acciones especificas unidad ejecutora * @return array JSON */ public function actionAce2() { $request = Yii::$app->request; if ($request->isAjax) { Yii::$app->response->format = Response::FORMAT_JSON; if ($request->isPost) { //Acciones Especificas $ace = AcEspUej::find()->where(['id_ue' => $request->post('id_unidad')])->andwhere(['id_ac_esp' => $request->post('id_especifica')])->One(); if ($ace != NULL) { return $ace->id; } else { return null; } } } }
function uejecutoras($id_uej) { /* Vaciar Si viene null */ if ($id_uej == null) { $id_uej = ''; } /* Query para buscar si quitaron una unidad si trae algo hay q borrarlas */ $ace = AcEspUej::find()->select('accion_centralizada_ac_especifica_uej.id')->where(['accion_centralizada_ac_especifica_uej.id_ac_esp' => $this->id])->andwhere(['accion_centralizada_ac_especifica_uej.estatus' => 1])->andwhere(['not in', 'accion_centralizada_ac_especifica_uej.id_ue', $id_uej])->asArray()->all(); /* Si encontró algo, son las unidades que deben ser eliminadas */ if ($ace != null) { foreach ($ace as $key => $value) { $model_cambiar = AcEspUej::findOne($value); $model_cambiar->delete(); //$model_cambiar->cambiar();//campo eliminar se llena } } /* Ya se borraron ahora query para buscar si agregaron una unidad nueva, si es asi almacenar y guardar */ $ace = AcEspUej::find()->select('accion_centralizada_ac_especifica_uej.id_ue')->where(['accion_centralizada_ac_especifica_uej.id_ac_esp' => $this->id])->andwhere(['accion_centralizada_ac_especifica_uej.estatus' => 1])->andwhere(['in', 'accion_centralizada_ac_especifica_uej.id_ue', $id_uej])->asArray()->all(); /* Declaro arreglo donde se guardará los nuevos elementos agregados */ $tabla[] = null; foreach ($ace as $key => $value) { $tabla[] = $value['id_ue']; } //si viene null lo declaro arreglo vacio if ($id_uej == null) { $id_uej = []; } /* Guardo en $nuevo los elementos nuevos que se han agregado. */ $nuevo = array_diff($id_uej, $tabla); foreach ($nuevo as $key => $value) { $model_uej = new AcEspUej(); $model_uej->id_ue = $value; $model_uej->id_ac_esp = $this->id; $model_uej->save(); } }
public function notificacion_cargar($evento) { if ($evento->name == 'pedido_aprobado') { //buscando los usuarios que tenga asignado esa unidad ejecutora y accion_especifica $usuarios = AcEspUej::find()->select(["accion_centralizada_asignar.usuario"])->innerjoin('accion_centralizada_asignar', 'accion_centralizada_ac_especifica_uej.id=accion_centralizada_asignar.accion_especifica_ue')->where(['accion_centralizada_asignar.accion_especifica_ue' => $this->id])->andWhere(['accion_centralizada_ac_especifica_uej.estatus' => 1])->asArray()->all(); foreach ($usuarios as $key => $usuario) { Notification::notify(Notification::KEY_PEDIDO_ACC_APROBADO, $usuario['usuario'], $this->id); } } }
public function actionAprobar($id) { $model = AcEspUej::find()->where(['id' => $id])->One(); Yii::$app->response->format = Response::FORMAT_JSON; if ($model->id != null && $model->toggleAprobar()) { return ['forceClose' => true, 'forceReload' => '#aprobar']; } else { return ['title' => 'Ocurrió un error.', 'content' => '<span class="text-danger">No se pudo realizar la operación. Error desconocido</span>', 'footer' => Html::button('Close', ['class' => 'btn btn-default pull-left', 'data-dismiss' => "modal"])]; return; } }
/** * Updates an existing AcAcEspec model. * For ajax request will return json object * and for non-ajax request if update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $request = Yii::$app->request; $model = $this->findModel($id); $model_nuevo = $model; $model->fecha_inicio = date_format(date_create($model->fecha_inicio), 'd/m/Y'); $model->fecha_fin = date_format(date_create($model->fecha_fin), 'd/m/Y'); $unidades_ejecutoras = ArrayHelper::map(UnidadEjecutora::find()->all(), 'id', 'nombre'); $verificar = ArrayHelper::map(AcEspUej::find()->where('id_ac_esp= :id', ['id' => $model->id])->andwhere(['estatus' => 1])->all(), 'id', 'id_ue'); if ($request->isAjax) { /* * Process for ajax request */ Yii::$app->response->format = Response::FORMAT_JSON; if ($request->isGet) { return ['title' => "Modificando Accion Especifica #" . $id, 'content' => $this->renderAjax('_form', ['model' => $model, 'unidades_ejecutoras' => $unidades_ejecutoras, 'precarga' => $verificar]), 'footer' => Html::button('Close', ['class' => 'btn btn-default pull-left', 'data-dismiss' => "modal"]) . Html::button('Save', ['class' => 'btn btn-primary', 'type' => "submit"])]; } else { if ($model->load($request->post())) { $uni_eje = $request->post('id_ue'); $i = 0; $id_ac_esp = $request->post('AcEspUej'); $connection = \Yii::$app->db; $transaction = $connection->beginTransaction(); try { if ($model->save()) { $salvar = $model->uejecutoras($uni_eje); $transaction->commit(); // buscando las unidades ejecutoras relacionadas para mostrarla en la vista $unidad_ejecutora = new AcEspUej(); $ue = $unidad_ejecutora->obtener_uej_relacionadas($model->id); return ['forceReload' => 'true', 'contenedorUrl' => Url::to(['ac-ac-espec/index', 'ac_centralizada' => $model->id_ac_centr]), 'title' => "Accion Especifica #" . $id, 'content' => $this->renderPartial('view', ['model' => $model, 'rows' => $ue]), 'footer' => Html::button('Close', ['class' => 'btn btn-default pull-left', 'data-dismiss' => "modal"]) . Html::a('Edit', ['update', 'id' => $id], ['class' => 'btn btn-primary', 'role' => 'modal-remote'])]; } else { //si falla la actulización padre return ['title' => "Update AcAcEspec #" . $id, 'content' => $this->renderAjax('_form', ['model' => $model, 'unidades_ejecutoras' => $unidades_ejecutoras, 'precarga' => $verificar]), 'footer' => Html::button('Close', ['class' => 'btn btn-default pull-left', 'data-dismiss' => "modal"]) . Html::button('Save', ['class' => 'btn btn-primary', 'type' => "submit"])]; } } catch (Exception $e) { $transaction->rollback(); } } else { return ['title' => "Update AcAcEspec #" . $id, 'content' => $this->renderPartial('update', ['model' => $this->findModel($id)]), 'footer' => Html::button('Close', ['class' => 'btn btn-default pull-left', 'data-dismiss' => "modal"]) . Html::button('Save', ['class' => 'btn btn-primary', 'type' => "submit"])]; } } } else { /* * Process for non-ajax request */ if ($model->load($request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('update', ['model' => $model]); } } }