/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params, $consDentro = null) { // OJO uso AccesosSearch para que me tome los attributelabels de las propiedades nuevas (antes tenia Accesos) if ($consDentro) { $pageSize = isset($_GET['per-page']) ? $_GET['per-page'] : \Yii::$app->params['accesos.defaultPageSize']; $query = AccesosSearchAut::find()->andWhere(['egr_fecha' => null, 'estado' => 1]); } else { $pageSize = isset($_GET['per-page']) ? $_GET['per-page'] : \Yii::$app->params['accesosAut.defaultPageSize']; $query = AccesosSearchAut::find(); } $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => $pageSize], 'sort' => ['defaultOrder' => ['ing_hora' => SORT_DESC], 'enableMultiSort' => true]]); $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_acceso' => $this->id_acceso, 'id_persona' => $this->id_persona, 'ing_id_vehiculo' => $this->ing_id_vehiculo, 'ing_fecha' => $this->fecSP2EN($this->ing_fecha), 'ing_hora' => $this->ing_hora, 'ing_id_porton' => $this->ing_id_porton, 'ing_id_user' => $this->ing_id_user, 'egr_id_vehiculo' => $this->egr_id_vehiculo, 'egr_fecha' => $this->fecSP2EN($this->egr_fecha), 'egr_hora' => $this->egr_hora, 'egr_id_porton' => $this->egr_id_porton, 'egr_id_user' => $this->egr_id_user, 'ing_id_llave' => $this->ing_id_llave, 'egr_id_llave' => $this->egr_id_llave, 'id_concepto' => $this->id_concepto, 'cant_acomp' => $this->cant_acomp, 'created_by' => $this->created_by, 'created_at' => $this->created_at, 'updated_by' => $this->updated_by, 'updated_at' => $this->updated_at, 'estado' => $this->estado, 'id_autorizante' => $this->id_autorizante, 'id_uf' => $this->id_uf]); $query->andFilterWhere(['like', 'id', $this->id])->andFilterWhere(['like', 'motivo', $this->motivo])->andFilterWhere(['like', 'control', $this->control])->andFilterWhere(['like', 'motivo_baja', $this->motivo_baja])->andFilterWhere(['like', 'r_ing_usuario', $this->r_ing_usuario])->andFilterWhere(['like', 'r_egr_usuario', $this->r_egr_usuario])->andFilterWhere(['like', 'r_apellido', $this->r_apellido])->andFilterWhere(['like', 'r_nombre', $this->r_nombre])->andFilterWhere(['like', 'r_nombre2', $this->r_nombre2])->andFilterWhere(['like', 'r_nro_doc', $this->r_nro_doc])->andFilterWhere(['like', 'r_aut_apellido', $this->r_aut_apellido])->andFilterWhere(['like', 'r_aut_nombre', $this->r_aut_nombre])->andFilterWhere(['like', 'r_aut_nombre2', $this->r_aut_nombre2])->andFilterWhere(['like', 'r_aut_nro_doc', $this->r_aut_nro_doc])->andFilterWhere(['like', 'r_ing_patente', $this->r_ing_patente])->andFilterWhere(['like', 'r_ing_marca', $this->r_ing_marca])->andFilterWhere(['like', 'r_ing_modelo', $this->r_ing_modelo])->andFilterWhere(['like', 'r_ing_color', $this->r_ing_color])->andFilterWhere(['like', 'r_egr_patente', $this->r_egr_patente])->andFilterWhere(['like', 'r_egr_marca', $this->r_egr_marca])->andFilterWhere(['like', 'r_egr_modelo', $this->r_egr_modelo])->andFilterWhere(['like', 'r_egr_color', $this->r_egr_color])->andFilterWhere(['like', 'desc_concepto', $this->desc_concepto]); if (isset($params['resetFechas'])) { \Yii::$app->session->remove('accesosFecDesdeF'); \Yii::$app->session->remove('accesosFecHastaF'); $this->fecdesde = null; $this->fechasta = null; unset($params['resetFechas']); } if (!empty($this->fecdesde) && !empty($this->fechasta)) { // cada vez que se envia el form con el rango de fechas se guardan las fechas en sesion \Yii::$app->session->set('accesosFecDesdeF', $this->fecdesde); \Yii::$app->session->set('accesosFecHastaF', $this->fechasta); // para el between entre datetimes se debe agregar un dia mas a la fecha hasta $f = new \DateTime($this->fechasta); //$f->add(new \DateInterval('P1D')); $query->andFilterWhere(['between', 'ing_fecha', $this->fecdesde, $f->format('Y-m-d')]); } else { $sfd = \Yii::$app->session->get('accesosFecDesdeF') ? \Yii::$app->session->get('accesosFecDesdeF') : ''; $sfh = \Yii::$app->session->get('accesosFecHastaF') ? \Yii::$app->session->get('accesosFecHastaF') : ''; // si todavia están en sesion las variables del rango de fechas se hace el between y se elimina created_at if ($sfd && $sfh) { // para el between entre datetimes se debe agregar un dia mas a la fecha hasta $f = new \DateTime(\Yii::$app->session->get('accesosFecHastaF')); //$f->add(new \DateInterval('P1D')); $query->andFilterWhere(['between', 'ing_fecha', \Yii::$app->session->get('accesosFecDesdeF'), $f->format('Y-m-d')]); $this->created_at = ''; } else { $query->andFilterWhere(['like', 'ing_fecha', $this->created_at]); } } return $dataProvider; }
public function actionConsDentro() { $searchModel = new AccesosSearchAut(); //Yii::trace($searchModel->attributeLabels()); // para mejorar los tiempos se proponen las fechas desde y hasta, el usuario las puede cambiar if (!\Yii::$app->session->get('accesosFecDesdeF') || !\Yii::$app->session->get('accesosFecHastaF')) { $fecUltAcc = Accesos::find()->max('ing_fecha'); if (!\Yii::$app->session->get('accesosFecDesdeF')) { $d = \Yii::$app->params['filtroConsAccesosDias']; $f = date('Y-m-d', strtotime('-' . $d . ' days', strtotime($fecUltAcc))); \Yii::$app->session->set('accesosFecDesdeF', $f); } if (!\Yii::$app->session->get('accesosFecHastaF')) { \Yii::$app->session->set('accesosFecHastaF', $fecUltAcc); } } $dataProvider = $searchModel->search(Yii::$app->request->queryParams, true); return $this->render('consdentro', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'consulta' => true]); }