public function getreportAction() { $user = $this->session->getCurrentUser(); $data = array(); $data['date_from'] = addslashes(trim(strip_tags($this->request->getPost('date_from')))); $data['date_to'] = addslashes(trim(strip_tags($this->request->getPost('date_to')))); $data['users_id'] = (int) $user->id; $data['ids'] = array(); if (!is_null($this->request->getPost('ids')) && is_array($this->request->getPost('ids'))) { foreach ($this->request->getPost('ids') as $id) { $data['ids'][] = (int) $id; } } $projectsModel = new Projects(); $reports = $projectsModel->getReports($data); $totalTime = 0; foreach ($reports as $key => &$item) { if ($item['t_sum'] === null) { unset($reports[$key]); } else { $totalTime += $item['t_sum']; $hours = floor($item['t_sum'] / 3600); $mins = floor(($item['t_sum'] - $hours * 3600) / 60); $item['t_sum'] = $hours . ' часов ' . $mins . ' минут'; } } $this->view->reports = array_values($reports); $hours = floor($totalTime / 3600); $mins = floor(($totalTime - $hours * 3600) / 60); $this->view->totalTime = $hours . ' часов ' . $mins . ' минут'; $dateFrom = new \DateTime($data['date_from']); $dateTo = new \DateTime($data['date_to']); $this->view->dateFrom = $dateFrom->format('d.m.Y'); $this->view->dateTo = $dateTo->format('d.m.Y'); }
private function getBooks($project_id, $page = 1) { if (!Session::exists('member')) { Router::redirect('home.index'); } $nb = self::NUMBER_ITEM_PER_PAGE; $member = Session::get('member'); $user = $this->checkUser($member['id'], $member['nickname']); $search = Helper::post('research'); $project = Projects::select()->where('id', $project_id)->andWhere('id_leader', $member['id'])->get(0, 1); if (empty($project)) { Router::url('home.index'); } $project = $project[0]; $book = UsersBook::select()->addFields(['users_book.status' => 'status', 'F.id' => 'id_from', 'F.nickname' => 'nickname_from', 'T.id' => 'id_to', 'T.nickname' => 'nickname_to'])->innerJoin('users', 'F')->onJoin('F.id', '=', 'users_book.id_user_from')->innerJoin('users', 'T')->onJoin('T.id', '=', 'users_book.id_user_to')->where('status', 2)->andGroup([new Condition('WHERE', '', 'users_book.id_user_from', '!=', $project->id_client, false), new Condition('WHERE', 'AND', 'users_book.id_user_to', '!=', $project->id_client, false)])->andGroup([new Condition('WHERE', '', 'F.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'F.mail', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.mail', 'LIKE', '%' . $search . '%', false)])->andGroup([new Condition('WHERE', '', 'id_user_from', '=', $member['id'], false), new Condition('WHERE', 'OR', 'id_user_to', '=', $member['id'], false)])->get(($page - 1) * $nb, $nb); $count = UsersBook::select()->addFields(['COUNT(*)' => 'nb_row'])->innerJoin('users', 'F')->onJoin('F.id', '=', 'users_book.id_user_from')->innerJoin('users', 'T')->onJoin('T.id', '=', 'users_book.id_user_to')->where('status', 2)->andGroup([new Condition('WHERE', '', 'F.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'F.mail', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.nickname', 'LIKE', '%' . $search . '%', false), new Condition('WHERE', 'OR', 'T.mail', 'LIKE', '%' . $search . '%', false)])->andGroup([new Condition('WHERE', '', 'id_user_from', '=', $member['id'], false), new Condition('WHERE', 'OR', 'id_user_to', '=', $member['id'], false)])->get(0, 1)[0]; $max_page = ceil($count->nb_row / $nb); if ($max_page == 0) { $max_page = 1; } $this->set('books', $book); $this->set('max_page', $max_page); $this->set('project', $project); $this->set('user', $user); $this->render('task/detail_user'); }
public function home() { $eureka = Eurekas::find('random'); $projects = Projects::find('all'); $posts = Posts::latest(); return compact('posts', 'eureka', 'projects'); }
public function run() { $query = Projects::find(); $countQuery = clone $query; $pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => 4]); $pages->pageSizeParam = false; $models = $query->offset($pages->offset)->limit($pages->limit)->all(); return $this->render('mywidget', ['projects' => $models, 'pages' => $pages]); }
public function index() { if (Session::exists('member')) { $member = Session::get('member'); $projects = Projects::select('P')->addFields(['TIMESTAMPDIFF(DAY, NOW(), P.deadline)' => 'nb_day', 'P.id' => 'project_id', 'P.name', 'P.price', 'P.deadline', 'U.id' => 'id_user_leader', 'U.nickname' => 'nickname_user_leader', 'UC.id' => 'id_user_client', 'UC.nickname' => 'nickname_user_client'])->innerJoin('users', 'U')->onJoin('U.id', 'P.id_leader')->leftJoin('tasks', 'T')->onJoin('T.id_project', 'P.id')->leftJoin('task_users', 'task_users')->onJoin('task_users.id_task', 'T.id')->leftJoin('users', 'UC')->onJoin('UC.id', 'P.id_client')->where('id_client', $member['id'])->orWhere('id_leader', $member['id'])->orWhere('task_users.id_user', $member['id'])->groupBy('project_id')->get(); $this->set('projects', $projects); } $this->script('projects'); $this->render('task/home', 'home.task.title'); }
public function actionDelete($id) { if (!($project = Projects::findOne($id)) == false) { if (Yii::$app->user->can('deleteProject', ['project' => $project])) { $project->deleted = true; $project->save(false); } } return $this->redirect(Url::toRoute('projects/index')); }
public function getProjects($user_id, $flag) { $arr_prj = Projects::where('user_id', $user_id)->where('project_flag', $flag)->get(); $total = Projects::where('user_id', $user_id)->where('project_flag', $flag)->count(); $arr_msg["MESSAGE"] = "SUCCESS"; $arr_msg["MESSAGE_ARRAY"] = $arr_prj; $arr_msg["STATUS"] = true; $arr_msg["TOTAL"] = $total; echo json_encode($arr_msg); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Projects::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); if (!($this->load($params) && $this->validate())) { return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]); $query->andFilterWhere(['like', 'project_name', $this->project_name]); return $dataProvider; }
public function actionForm($id = NULL) { $model = $id ? Visits::findOne($id) : new Visits(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { /* Check if it is a new record before we save it */ $newRecord = $model->isNewRecord; /* Attempt to save model */ if ($model->save(false)) { /* Only when the record is new */ if ($newRecord) { /* Register null-observations for un-checked boxes if available */ if (!$model->checked_all) { foreach ($model->project->boxes as $box) { if (in_array($box->id, $model->checked_boxes)) { Observations::createNullObservation($model->id, $box->id); } } } /* Register checked boxes */ if ($model->checked_boxes) { $model->unlinkAll('visitBox', true); foreach ($model->checked_boxes as $checkedBox) { $visitBoxModel = new VisitBoxes(); $visitBoxModel->box_id = $checkedBox; $visitBoxModel->link('visit', $model); $visitBoxModel->save(); } } /* Register null-observations for all boxes in project when "checked-all" is selected */ if ($model->checked_all) { foreach ($model->project->boxes as $box) { Observations::createNullObservation($model->id, $box->id); } } } /* Register observers by this visit */ if ($model->observers) { $model->unlinkAll('observers', true); foreach ($model->observers as $observer) { $visitObservers = new VisitObservers(); $visitObservers->observer_id = $observer; $visitObservers->link('visit', $model); $visitObservers->save(); } } /* Redirect on success */ return $this->redirect(Url::toRoute('visits/detail/' . $model->id)); } } return $this->render('form', ['model' => $model, 'projects' => Projects::find()->hasRights()->hasBoxes()->all()]); }
public function getUserFilesById($id, \App\models\User $user) { $this->setWhere(array('id' => $id)); $data = $this->select(); if (empty($data)) { throw new \Exception('Файл не найден!'); } if ($user->roles_id != 1) { $tasksModel = new Tasks(); if ($data[0]['tasks_id'] > 0) { $tasksModel->getOneMyTask($user, $data[0]['tasks_id']); } elseif ($data[0]['projects_id'] > 0) { $projectsModel = new Projects(); $project = $projectsModel->getProjectsDataById($data[0]['projects_id']); if ($project['initiator_id'] != $user->id) { throw new \Exception('Доступ запрещен!'); } } else { throw new \Exception('Доступ запрещен!'); } } return $data[0]; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Projects::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; } $query->andFilterWhere(['project_id' => $this->project_id, 'final_datetime' => $this->final_datetime, 'cyclical_project_id' => $this->cyclical_project_id]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'description', $this->description])->andFilterWhere(['like', 'logo_filepath', $this->logo_filepath]); return $dataProvider; }
public function actionForm($id = NULL) { $model = $id ? Boxes::findOne($id) : new \app\models\Boxes(); if (Yii::$app->request->getQueryParam('project_id')) { $model->project_id = Yii::$app->request->getQueryParam('project_id'); } if ($model->load(Yii::$app->request->post())) { $model->imageFile = UploadedFile::getInstance($model, 'imageFile'); if ($model->validate()) { // Clusters $cluster = Yii::$app->request->post('Boxes')['cluster']; if ($cluster) { if (ProjectClusters::find()->byCluster($cluster)->exists()) { $model->cluster_id = ProjectClusters::find()->byCluster($cluster)->one()['id']; } else { $clusterModel = new ProjectClusters(); $clusterModel->cluster = $cluster; $clusterModel->link('project', $model->project); $clusterModel->save(); $model->cluster_id = $clusterModel->id; } } else { $model->cluster_id = NULL; } /* Image */ if ($model->imageFile) { $model->upload(); } if ($model->deleteImage && !$model->imageFile) { $model->picture = NULL; } $model->save(); return $this->redirect(Url::toRoute('boxes/detail/' . $model->id)); } else { if (isset($_POST['Boxes']['cluster'])) { $model->cluster = Yii::$app->request->post('Boxes')['cluster']; } } } return $this->render('form', ['model' => $model, 'user' => $this->user, 'users' => Users::find()->select(['id', new \yii\db\Expression("CONCAT(username, ' (', fullname, ')') as username")])->all(), 'boxtypes' => Boxtypes::find()->all(), 'projects' => Projects::find()->select(['id', 'name'])->hasRights()->all()]); }
/** * Displays a single Members model. * @param string $id * @return mixed */ public function actionView($id) { $dataProviderForGroupAss = new ActiveDataProvider(['query' => GroupAssignments::find()]); $dataProviderForGroup = new ActiveDataProvider(['query' => Groups::find()]); $dataProviderForProject = new ActiveDataProvider(['query' => Projects::find()]); try { $modelPic = new UploadForm(); if (Yii::$app->request->isPost) { $modelPic->file = UploadedFile::getInstance($modelPic, 'file'); if ($modelPic->validate() && $modelPic !== null) { $fileName = round(microtime(true) * 1000); $uploadPath = 'uploads/' . $fileName . '.' . $modelPic->file->extension; $modelPic->file->saveAs($uploadPath); //save avatar to user $model = $this->findModel($id); $model->avatar = $uploadPath; $model->save(); } } } catch (\Exception $e) { } return $this->render('view', ['model' => $this->findModel($id), 'modelPic' => $modelPic, 'dataProviderForGroupAss' => $dataProviderForGroupAss, 'dataProviderForGroup' => $dataProviderForGroup, 'dataProviderForProject' => $dataProviderForProject]); }
private function ajaxSub($id = 0) { Users::redirectIf(false); $member = Session::get('member'); $project = Projects::findOrCreate('id', $id); if ($project->id == 0) { $dl = new \DateTime(); $deadline = $dl->format('d/m/Y H:i'); $url = Router::url('task:project.insert'); } else { if ($project->id_leader != $member['id']) { return; } $dl = new \DateTime($project->deadline); $deadline = $dl->format('d/m/Y H:i'); $url = Router::url('task:project.update', ['id' => $id]); } $this->set(['url' => $url, 'deadline' => explode(' ', $deadline), 'project' => $project]); $this->render('task/project_spec'); }
/** * @return \yii\db\ActiveQuery */ public function getProjects() { return $this->hasMany(Projects::className(), ['cyclical_project_id' => 'cyclical_project_id']); }
public function getBlur() { return Projects::getBlurOptions()[$this->blur]; }
?> <div class="help-block"><?php echo $model->getErrors('checked_boxes')[0]; ?> </div><?php } ?> </div> <?php } ?> <?php echo $form->field($model, 'count_completeness')->dropdownList(Visits::getCountCompletenessOptions()); ?> <?php echo $form->field($model, 'blur')->dropDownList(Projects::getBlurOptions()); ?> <?php echo $form->field($model, 'embargo')->widget(DatePicker::className(), ['type' => 1, 'options' => ['placeholder' => Yii::t('app', 'Selecteer datum')], 'pluginOptions' => ['format' => 'dd-mm-yyyy', 'todayHighlight' => true, 'autoclose' => true, 'weekStart' => 1]]); ?> <?php echo $form->field($model, 'remarks')->widget(\yii\redactor\widgets\Redactor::className(), ['clientOptions' => ['buttons' => ['formatting', 'bold', 'italic', 'unorderedlist', 'orderedlist', 'outdent', 'indent', 'link', 'alignment', 'horizontalrule']]]); ?> <div class="form-group"> <?php echo Html::submitButton(Yii::t('app', 'Opslaan'), ['class' => 'btn btn-primary pull-right']); ?> </div> <?php ActiveForm::end(); ?>
/** * Finds the Projects model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Projects the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Projects::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
public function show(Request $request, Response $response, $args) { $projects = new Projects($this->database); $this->view->render($response, 'project\\show.twig', array('projects' => $projects->GetAllProjects(), 'lang' => $this->language)); return $response; }
public function saveAction() { if (!$this->isXmlHttpRequest()) { throw new \Exception('Неверный тип запроса!'); } $user = $this->session->getCurrentUser(); $data = $this->request->getPost(); if (!isset($data['id']) || !isset($data['projects_id']) || !isset($data['name']) || !isset($data['description']) || !isset($data['deadline']) || !isset($data['task_priority_id'])) { throw new \Exception('Неверный тип запроса!'); } $data['id'] = (int) $data['id']; $data['projects_id'] = (int) $data['projects_id']; $data['name'] = trim(strip_tags($data['name'])); $data['description'] = trim(strip_tags($data['description'])); $data['deadline'] = trim($data['deadline']); $data['task_priority_id'] = (int) $data['task_priority_id']; if ($data['name'] == '' || $data['description'] == '' || $data['deadline'] == '') { throw new \Exception('Не заполнены обязательные поля!'); } $tasksModel = new Tasks(); $oldTask = array(); if ($data['id'] > 0) { $oldTask = $tasksModel->getTasksDataById((int) $data['id']); if ($user->roles_id == 2) { if ($oldTask['task_status_id'] != 1) { throw new Exception('Доступ запрещен!'); } if (isset($data['task_status_id'])) { unset($data['task_status_id']); } if (isset($data['initiator'])) { unset($data['initiator']); } if (isset($data['date_added'])) { unset($data['date_added']); } } } if (isset($data['add_file'])) { unset($data['add_file']); } $tasks_id = $tasksModel->save($data); $task = $tasksModel->getTasksDataById($tasks_id); if (!is_null($this->session->getUploadedFiles())) { $filesModel = new Files(); foreach ($this->session->getUploadedFiles() as $filesId) { $filesModel->update(array('projects_id' => $task['projects_id'], 'tasks_id' => $task['id']), array('id' => (int) $filesId)); } $this->session->unsetUploadedFiles(); } if ($data['id'] > 0) { $this->view->task = $task; } else { if ($data['projects_id'] > 0) { $projectsModel = new Projects(); $this->view->project = $projectsModel->getProjectsDataForEdit($data['projects_id']); } else { $this->view->task = $task; } } if ($data['id'] == 0) { $usersModel = new Users(); $usersModel->setWhere(array('id' => 1)); $result = $usersModel->select(); $superAdmin = $result[0]; $to = $superAdmin['user']; $subject = 'Поступила новая задача!'; $message = 'Новая задача : ' . $task['name'] . "\n"; $message .= 'По проекту: ' . ($task['p_name'] ? $task['p_name'] : 'Без проекта') . "\n"; $message .= 'Приоритет: ' . $task['tp_name'] . "\n"; $message .= 'Закончить до: ' . $task['deadline'] . "\n"; $message .= 'Описание: ' . "\n"; $message .= $task['description']; Mail::instance()->send($to, $subject, $message); } if ($data['id'] > 0 && isset($data['task_status_id']) && $data['task_status_id'] != $oldTask['task_status_id']) { $to = array(); $usersModel = new Users(); $usersModel->setWhere(array('id' => 1)); $result1 = $usersModel->select(); $to[] = $result1[0]['user']; $usersModel->setWhere(array('id' => (int) $task['executors_id'])); $result2 = $usersModel->select(); if ($result2 && $result2[0]['user'] != $result1[0]['user']) { $to[] = $result2[0]['user']; } $usersModel->setWhere(array('id' => (int) $task['initiator'])); $result3 = $usersModel->select(); $to[] = $result3[0]['user']; $subject = 'Изменение статуса задачи'; $message = 'По задаче "' . $task['name']; $message .= '" сменился статус на ' . $task['ts_name'] . "\n"; $message .= 'По проекту: ' . ($task['p_name'] ? $task['p_name'] : 'Без проекта'); Mail::instance()->send($to, $subject, $message); } $this->view->user = $user; }
public function getProject() { return $this->hasOne(Projects::className(), ['id' => 'project_id']); }
public function removeAction() { if (!$this->isXmlHttpRequest()) { throw new \Exception('Неверный тип запроса!'); } $data = $this->request->getPost(); if (!isset($data['id'])) { throw new \Exception('Неверный тип запроса!'); } $id = (int) $data['id']; $projectsModel = new Projects(); $projectsModel->remove($id); exit; }
}); Route::get('/login', function () { return view('admin.login'); }); Route::post('/login', function () { if (Auth::check() || Auth::attempt(Input::only('email', 'password'))) { return redirect('admin'); } return view('admin.login', ['msg' => 'Failed to login!']); }); Route::get('/logout', function () { Auth::logout(); return redirect('/'); }); Route::get('/blog', function () { return view('home'); }); Route::get('/contact', function () { return view('contact.contact'); }); Route::get('/projects', function () { return view('projects.projects', ['projects' => Projects::take(10)->get()]); }); Route::get('/blogs', function () { $blogs = Article::take(10)->get(); return view('blog.blogs', ['blogs' => $blogs]); }); Route::get('/blog/{id}', function ($id) { $blog = Article::find($id); return view('blog.blog', ['blog' => $blog]); });
<?php use fedemotta\datatables\DataTables; use yii\helpers\Html; use yii\helpers\Url; use app\models\Projects; ?> <div class="table-responsive"> <?php echo DataTables::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [['attribute' => 'name', 'label' => Yii::t('app', 'Projectnaam'), 'value' => function ($model, $key, $index, $column) { return Html::a($model['name'], Url::toRoute('projects/detail/' . $model['id'])); }, 'format' => 'html'], ['label' => Yii::t('app', 'Laatste invoer'), 'value' => function ($model, $key, $index, $column) { return Projects::getLastEntryWithIdentifier($model['id']) ? Projects::getLastEntryWithIdentifier($model['id'])['date'] : "-"; }], ['label' => Yii::t('app', 'Aantal kasten'), 'value' => function ($model, $key, $index, $column) { return $model['boxcount']; }]], 'clientOptions' => ['info' => false, 'responsive' => true, 'dom' => 'lfTrtip', 'tableTools' => ['aButtons' => [['sExtends' => 'copy', 'sButtonText' => Yii::t('app', 'Copy to clipboard')], ['sExtends' => 'csv', 'sButtonText' => Yii::t('app', 'Save to CSV')], ['sExtends' => 'pdf', 'sButtonText' => Yii::t('app', 'Save to PDF')], ['sExtends' => 'print', 'sButtonText' => Yii::t('app', 'Print')]]]]]); ?> </div>
public function getCounterProjects() { return $this->hasMany(Projects::className(), ['id' => 'project_id'])->viaTable('project_counters', ['user_id' => 'id']); }
public function run() { $query = Projects::find(); $data = Yii::$app->request->get('arr'); if ('on' == $data['clear']) { $data = []; } $pagesize = 4; if (!empty($data)) { foreach ($data as $key => $val) { if ('price' == $key) { switch ($val) { case '1': $query->where('price < :price', [':price' => 1000000]); break; case '2': $query->where(['between', 'price', 1000000, 3000000]); break; case '3': $query->where('price > :price', [':price' => 3000000]); break; } } if ('floor' == $key) { switch ($val) { case 1: $query->andWhere('floor = :floor', [':floor' => 1]); break; case 2: $query->andWhere('floor = :floor', [':floor' => 2]); break; case 3: $query->andWhere('floor = :floor', [':floor' => 3]); break; } } if ('material' == $key) { switch ($val) { case 1: $query->andWhere('material_brevno = :brevno', [':brevno' => 1]); $pagesize = 3; break; case 2: $query->andWhere('material_brus = :brus', [':brus' => 1]); $pagesize = 8; break; case 3: $query->andWhere('material_brevno = :brevno', [':brevno' => 1]); $query->andWhere('material_brus = :brus', [':brus' => 1]); break; } } if ('area' == $key) { switch ($val) { case 1: $query->andWhere('area < :area', [':area' => 100]); break; case 2: $query->andWhere(['between', 'area', 100, 300]); break; case 3: $query->andWhere('area > :area', [':area' => 300]); break; } } } } $countQuery = clone $query; $pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => $pagesize]); $pages->pageSizeParam = false; $models = $query->offset($pages->offset)->limit($pages->limit)->all(); return $this->render('mywidget', ['projects' => $models, 'pages' => $pages]); }