/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider * */ public function search($params) { $query = Actividad::find(); $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; } if (Yii::$app->user->identity->rol_id == '3') { $query->andFilterWhere(['actividad.id_actividad' => $this->id_actividad, 'actividad.id_subproceso' => $this->id_subproceso, 'actividad.id_analista' => Yii::$app->user->identity->id, 'actividad.id_usuario' => $this->id_usuario, 'actividad.id_via' => $this->id_via, 'actividad.id_bd' => $this->id_bd, 'actividad.id_organizacion' => $this->id_organizacion, 'actividad.id_distrito' => $this->id_distrito, 'actividad.id_empresa' => $this->id_empresa, 'actividad.id_proyecto' => $this->id_proyecto, 'actividad.id_proy_ep' => $this->id_proy_ep, 'actividad.id_dato_cargado' => $this->id_dato_cargado, 'actividad.ndlis' => $this->ndlis, 'actividad.nlis' => $this->nlis, 'actividad.nlas' => $this->nlas, 'actividad.ntiff' => $this->ntiff, 'actividad.npdf' => $this->npdf, 'actividad.npds' => $this->npds, 'actividad.id_anio_pozo' => $this->id_anio_pozo, 'actividad.id_macro' => $this->id_macro, 'actividad.id_detallada' => $this->id_detallada, 'actividad.fecha_requerimiento' => $this->fecha_requerimiento, 'actividad.hora_requerimiento' => $this->hora_requerimiento, 'actividad.fecha_atencion' => $this->fecha_atencion, 'actividad.hora_ini' => $this->hora_ini, 'actividad.hora_fin' => $this->hora_fin, 'actividad.HH' => $this->HH, 'actividad.id_status' => $this->id_status, 'actividad.detalle' => $this->pozo, 'actividad.pozo' => $this->pozo])->orderBy(['actividad.fecha_requerimiento' => SORT_DESC]); } //$query->joinWith(['analistaid']); if (Yii::$app->user->identity->rol_id == '4') { $query->joinWith(['analistaid' => function ($q) { $q->where('user.supervisor LIKE "%' . Yii::$app->user->identity->username . '%"'); }]); $query->andFilterWhere(['actividad.id_actividad' => $this->id_actividad, 'actividad.id_subproceso' => $this->id_subproceso, 'actividad.id_analista' => $this->id_analista, 'actividad.id_usuario' => $this->id_usuario, 'actividad.id_via' => $this->id_via, 'actividad.id_bd' => $this->id_bd, 'actividad.id_organizacion' => $this->id_organizacion, 'actividad.id_distrito' => $this->id_distrito, 'actividad.id_empresa' => $this->id_empresa, 'actividad.id_proyecto' => $this->id_proyecto, 'actividad.id_proy_ep' => $this->id_proy_ep, 'actividad.id_dato_cargado' => $this->id_dato_cargado, 'actividad.ndlis' => $this->ndlis, 'actividad.nlis' => $this->nlis, 'actividad.nlas' => $this->nlas, 'actividad.ntiff' => $this->ntiff, 'actividad.npdf' => $this->npdf, 'actividad.npds' => $this->npds, 'actividad.id_anio_pozo' => $this->id_anio_pozo, 'actividad.id_macro' => $this->id_macro, 'actividad.id_detallada' => $this->id_detallada, 'actividad.fecha_requerimiento' => $this->fecha_requerimiento, 'actividad.hora_requerimiento' => $this->hora_requerimiento, 'actividad.fecha_atencion' => $this->fecha_atencion, 'actividad.hora_ini' => $this->hora_ini, 'actividad.hora_fin' => $this->hora_fin, 'actividad.HH' => $this->HH, 'actividad.id_status' => $this->id_status, 'actividad.pozo' => $this->pozo])->orderBy(['actividad.fecha_requerimiento' => SORT_DESC]); } $query->joinWith(['macro' => function ($q) { $q->where('actividad_macro.nombre LIKE "%' . $this->macroNombre . '%"'); }]); $query->joinWith(['empresaid' => function ($q) { $q->where('empresa.nombre LIKE "%' . $this->empresaNombre . '%"'); }]); $query->joinWith(['analistaid' => function ($q) { $q->where('user.username LIKE "%' . $this->analistaUsername . '%"'); }]); $query->joinWith(['organizacionid' => function ($q) { $q->where('organizacion.nombre LIKE "%' . $this->organizacionNombre . '%"'); }]); $query->joinWith(['distritoid' => function ($q) { $q->where('distrito.nombre LIKE "%' . $this->distritoNombre . '%"'); }]); $query->joinWith(['aplicdbid' => function ($q) { $q->where('aplicaciones_db.nombre LIKE "%' . $this->aplicacionNombre . '%"'); }]); $query->joinWith(['detalladaid' => function ($q) { $q->where('actividad_detallada.nombre LIKE "%' . $this->detalladaNombre . '%"'); }]); return $dataProvider; }
public function getCodigoActividad() { $user = User::find()->where(['username' => Yii::$app->user->identity->username])->asArray()->one(); $proceso = Proceso::find()->where(['id' => ArrayHelper::getValue($user, 'id_proceso')])->one(); $nombreAnalista = ArrayHelper::getValue($user, 'nombre'); $apellidoAnalista = ArrayHelper::getValue($user, 'apellido'); $division = Division::find()->where(['id' => ArrayHelper::getValue($user, 'id_division')])->one(); $divisionAnalista = ArrayHelper::getValue($division, 'nombre'); $procesoAnalista = "0"; if (ArrayHelper::getValue($proceso, 'id') == '1') { $procesoAnalista = "MD"; } elseif (ArrayHelper::getValue($proceso, 'id') == '2') { $procesoAnalista = "MC"; } else { $procesoAnalista = "SFT"; } $actividad = Actividad::find()->Where(['like', 'id_analista', Yii::$app->user->identity->id])->orderBy(['id_actividad' => SORT_DESC])->asArray()->one(); $fechaActual = $this->fecha_requerimiento; $anioAct = StringHelper::explode(date('Y/m/d'), '/')[0]; $fechaUlt = ArrayHelper::getValue($actividad, 'fecha_requerimiento'); $anioUlt = StringHelper::explode($fechaUlt, '-')[0]; if (!ArrayHelper::getValue($actividad, 'codigo_caso') == '' && $anioAct == $anioUlt) { $ultimaActividad = explode('-', ArrayHelper::getValue($actividad, 'codigo_caso'))[3] + 1; } else { $ultimaActividad = 1; } $codigoActividad = strtoupper($divisionAnalista) . '-' . $procesoAnalista . '-' . substr($nombreAnalista, 0, 1) . substr($apellidoAnalista, 0, 1) . '-' . $ultimaActividad; return $codigoActividad; }
public function actionClonar($id) { $obj = Actividad::find()->where(['id_actividad' => $id])->one(); $fechar = StringHelper::explode(ArrayHelper::getValue($obj, 'fecha_requerimiento'), '-'); $fechaa = StringHelper::explode(ArrayHelper::getValue($obj, 'fecha_atencion'), '-'); $diar = $fechar[2] + 1; $diaa = $fechaa[2] + 1; $clone = new Actividad(['attributes' => $obj->getAttributes(), 'codigo_caso' => $obj->getCodigoActividad(), 'fecha_requerimiento' => $fechar[0] . '-' . $fechar[1] . '-' . $diar, 'fecha_atencion' => $fechaa[0] . '-' . $fechaa[1] . '-' . $diaa]); $clone->save(); return $this->render('view', ['model' => $this->findModel($clone->id_actividad)]); }