/**
  * 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;
 }
Esempio n. 2
0
 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)]);
 }