Ejemplo n.º 1
0
 /**
  * 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;
             }
         }
     }
 }
Ejemplo n.º 3
0
 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();
     }
 }
Ejemplo n.º 4
0
 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;
     }
 }
Ejemplo n.º 6
0
 /**
  * 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]);
         }
     }
 }