/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = ProyectoAccionEspecifica::find();
     // Join para la relacion
     $query->joinWith(['idUnidadEjecutora']);
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     //Ordenamiento
     $dataProvider->sort->attributes['nombreUnidadEjecutora'] = ['asc' => ['unidad_ejecutora.nombre' => SORT_ASC], 'desc' => ['unidad_ejecutora.nombre' => SORT_DESC]];
     $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(['proyecto_accion_especifica.id' => $this->id, 'id_proyecto' => $this->id_proyecto, 'id_unidad_ejecutora' => $this->id_unidad_ejecutora]);
     $query->andFilterWhere(['like', 'codigo_accion_especifica', $this->codigo_accion_especifica])->andFilterWhere(['like', 'nombre', $this->nombre]);
     $query->andFilterWhere(['like', 'unidad_ejecutora.nombre', $this->nombreUnidadEjecutora]);
     return $dataProvider;
 }
 /**
  * Acción AJAX para editar campos
  */
 public function actionUpdate($proyecto)
 {
     $accionesEspecificas = ProyectoAccionEspecifica::find()->where(['id_proyecto' => $proyecto])->all();
     $partidas = Partida::find()->all();
     $modelos = [];
     foreach ($accionesEspecificas as $key => $value) {
         $modelos[] = ProyectoDistribucionPresupuestaria::find()->where(['id_accion_especifica' => $value->id])->all();
     }
     $request = Yii::$app->request;
     if ($request->isAjax) {
         \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
         if (isset($_POST['hasEditable'])) {
             $model = $this->findModel($_POST['ProyectoDistribucionPresupuestaria']['id']);
             $model->cantidad = $_POST['cantidad_' . $model->id];
             if ($model->save()) {
                 return ['output' => $model->cantidad, 'message' => ''];
             } else {
                 return ['output' => '', 'message' => $model->getErrors('cantidad')];
             }
         }
     }
     return $this->render('editable', ['modelos' => $modelos, 'proyecto' => $proyecto, 'accionesEspecificas' => $accionesEspecificas, 'partidas' => $partidas]);
 }