/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Stage::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['create_time' => 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(['id' => $this->id, 'deadline' => $this->deadline, 'status' => $this->status, 'create_time' => $this->create_time, 'update_time' => $this->update_time, 'user_id' => $this->user_id, 'project_id' => $this->project_id]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'description', $this->description])->andFilterWhere(['user_id' => Yii::$app->user->identity->id]); return $dataProvider; }
/** * Find Stage by given id * * @param int $id * * @return \Illuminate\Support\Collection|null|static|Stage */ public function findStageById($id) { return Stage::find($id); }
public function notifyStage() { //Samy tupoi variant reweniya uvedomleny // $stages = Stage::find()->where(['user_id' => Yii::$app->user->identity->id, 'status' => [R::STAGE_CREATED, R::STAGE_PROCESS, R::STAGE_APPROVED, R::STAGE_DONE], 'notify_status' => R::NOTIFY_ACTIVE])->all(); $stages = Stage::find()->where(['user_id' => Yii::$app->user->identity->id, 'notify_status' => R::NOTIFY_ACTIVE])->all(); foreach ($stages as $stage) { // if ($stage->notify_times == 1) { $stage->notify_status = R::NOTIFY_NOTIFIED; $stage->save(); // } else { // $stage->notify_times += 1; // $stage->save(); // } } }
<body> <?php $this->beginBody(); ?> <div class="wrap"> <?php $items = []; if (!Yii::$app->user->isGuest) { $n_sr = isset($this->params['n_sr']) ? $this->params['n_sr'] : false; $n_ar = isset($this->params['n_ar']) ? $this->params['n_ar'] : false; $n_s = isset($this->params['n_s']) ? $this->params['n_s'] : false; $n_a = isset($this->params['n_a']) ? $this->params['n_a'] : false; $logout = ['label' => '<img src="' . Yii::$app->user->identity->avatar . '" style="width:16px;height:16px">', 'items' => [['label' => 'Выход', 'url' => ['/site/logout'], 'linkOptions' => ['data-method' => 'post']], ['label' => 'Профиль', 'url' => ['/user/view?id=' . Yii::$app->user->identity->id]]]]; $manager = Bid::find()->where(['status' => R::BID_SENT_TO_MANAGER])->count(); $teammate = Stage::find()->where(['user_id' => Yii::$app->user->identity->id, 'status' => R::STAGE_CREATED])->count(); if (Yii::$app->user->identity->role == R::ADMIN) { $items = [['label' => 'Архив', 'items' => [['label' => 'Проекты', 'url' => ['/leader/project-done']], ['label' => 'Поручения', 'url' => ['/leader/assignment-done']]]], ['label' => 'Журнал', 'url' => ['/logbook/logbook/logbooks']], ['label' => 'Пользователи', 'url' => ['/user/index']], ['label' => 'Отчеты' . ($n_sr || $n_ar ? '<span class="circle"></span>' : ''), 'items' => [['label' => 'Проекты' . ($n_sr ? '<span class="circle"></span>' : ''), 'url' => ['/leader/stage-reports']], ['label' => 'Поручения' . ($n_ar ? '<span class="circle"></span>' : ''), 'url' => ['/leader/assignment-reports']]]], ['label' => 'Поручения', 'url' => ['/leader/assignments']], ['label' => 'Проекты', 'url' => ['/leader/index']]]; } if (Yii::$app->user->identity->role == R::DESIGNER || Yii::$app->user->identity->role == R::FRONTEND || Yii::$app->user->identity->role == R::COPYRIGHTER || Yii::$app->user->identity->role == R::PROTOTYPER || Yii::$app->user->identity->role == R::TESTER || Yii::$app->user->identity->role == R::BACKEND || Yii::$app->user->identity->role == R::CONTENTER) { $items = [['label' => 'Журнал', 'url' => ['/logbook/logbook/index']], ['label' => 'Отчеты' . ($n_sr || $n_ar ? '<span class="circle"></span>' : ''), 'items' => [['label' => 'Проекты' . ($n_sr ? '<span class="circle"></span>' : ''), 'url' => ['/team/stage-reports']], ['label' => 'Поручения' . ($n_ar ? '<span class="circle"></span>' : ''), 'url' => ['/team/assignment-reports']]]], ['label' => 'Поручения' . ($n_a ? '<span class="circle"></span>' : ''), 'url' => ['/team/assignments']], ['label' => 'Работы' . ($n_s ? '<span class="circle"></span>' : ''), 'url' => ['/team/index']]]; } if (Yii::$app->user->identity->role == R::CLIENT) { $items = [['label' => 'Проекты', 'url' => ['/client/projects']], ['label' => 'Уведомления' . ($n_sr ? '<span class="circle"></span>' : ''), 'url' => ['/client/reports']]]; } array_push($items, $logout); // array_push($items, $avatar); } else { $items = [['label' => 'Регистрация', 'url' => ['/user/fast-create']], ['label' => 'Вход', 'url' => ['/site/login']]]; } NavBar::begin(['brandLabel' => 'G5 Control', 'brandUrl' => Yii::$app->homeUrl, 'options' => ['class' => 'navbar-inverse navbar-fixed-top']]);
public function getStageNotification() { if ($this->role == R::ADMIN) { // $bid = Bid::find()->where(['status' => [R::BID_SENT_TO_MANAGER, R::BID_REFUSED_BY_CLIENT, R::BID_APPROVED_BY_CLIENT], 'notify_status' => R::NOTIFY_ACTIVE])->count(); // if ($bid == 0) { // return false; // } else { // return true; // } } elseif ($this->role == R::DESIGNER || $this->role == R::FRONTEND || $this->role == R::COPYRIGHTER || $this->role == R::PROTOTYPER || $this->role == R::TESTER || $this->role == R::BACKEND || $this->role == R::CONTENTER) { $stages = Stage::find()->where(['user_id' => $this->id, 'status' => [R::STAGE_CREATED, R::STAGE_APPROVED, R::STAGE_DONE], 'notify_status' => R::NOTIFY_ACTIVE])->count(); if ($stages == 0) { return false; } else { return true; } } }