'ASC']; $isArchive = false; if($post['data']['my']){ $post['options'][\Query::WHERE] = Project::getWhereForMe(); } $post['options'][\ModuleTable::COLUMN_RENDER]= [ Project::$TEAM => [ \ModuleTable::COLUMN_RENDER_LINK_ID => 'team/member/', \ModuleTable::COLUMN_RENDER_LINK_BLANK => false, \ModuleTable::COLUMN_RENDER_LINK_COLUMN_ID => Project::$TEAM, ], Project::$LEFT => [ \ModuleTable::COLUMN_RENDER_AS_HTML => true, ], Project::$SECTIONS => [ \ModuleTable::COLUMN_RENDER_AS_HTML => true, ], ]; if(isset($post['data']['archive'])){ $archive = intval($post['data']['archive']); $isArchive = boolval($archive); $justDirector = null; $or = []; if(!Rules::isAdmin()){ if(!(Rules::isGroupProjectEditor() || Emp::isMeAnyDepartmentDirector() )){ if($archive) { $or[] = \Where::_operator(Project::$DIRECTOR, '=', Emp::$AUTH_ID); } else { $projects = Project::getListForTable(); $pids = []; foreach ($projects as $v) { $pids[] = $v[Project::$ID]; } $or[] = \Where::_in(Project::$ID, $pids); } } } if($archive==0){ } else { $post['options'][\ModuleTable::COLUMN_LIST]= [ Project::$CODE, Project::$NAME, Project::$DATE, Project::$STEP, Project::$SECTIONS, Project::$DIRECTOR, Project::$LINK, Project::$CONTRACTOR, Project::$STATUS, Project::$LEFT, Project::$TEAM, Project::$ARCHIVE_DATE, ]; } $post['options'][\Query::WHERE] = \Where::_and([ \Where::_operator(Project::$ARCHIVE, '=',intval($post['data']['archive'])), $or ? \Where::_or($or) : null, ]); } $post['getData'] = true; $res = parent::getTableData($post); //$res['title'] = ['title'=>'Проекты','subtitle'=>Merakomis::$PROJECT_TABLE_SUBTITLE,'text'=>Merakomis::$PROJECT_TABLE_TEXT]; $res['title'] = [ 'title' => 'Проекты', 'edit' => true, 'subtitle' => $isArchive ? Merakomis::$PROJECT_TABLE_ARCHIVE_SUBTITLE : Merakomis::$PROJECT_TABLE_SUBTITLE, 'text' => $isArchive ? Merakomis::$PROJECT_TABLE_ARCHIVE_TEXT : Merakomis::$PROJECT_TABLE_TEXT, 'subtitle_var' => $isArchive ? Merakomis::$_PROJECT_TABLE_ARCHIVE_SUBTITLE : Merakomis::$_PROJECT_TABLE_SUBTITLE, 'text_var' => $isArchive ? Merakomis::$_PROJECT_TABLE_ARCHIVE_TEXT : Merakomis::$_PROJECT_TABLE_TEXT, ]; if(!$post['data']['archive']){ $res["per_page_options"] = [ ["id"=>0,"title"=>'Показать все'], ["id"=>10, "title"=>'10'], ["id"=>25, "title"=>'25'], ["id"=>50, "title"=>'50'], ["id"=>100,"title"=>'100'], ]; } echo je($res); } public function aaa(){ } public function getMyListForAnalysis(){ $res = []; if(Emp::$IS_AUTH){ $list = Project::getListForAnalysis(); foreach ($list as $v) { $res[] = Project::format($v); } } echo je($res); } public function getMyList(){ $res = []; if(Emp::$IS_AUTH){ $empId = intval($_POST['emp']); $isOther = boolval($empId); $archive = intval($_POST['archive']); $active = intval($_POST['active']); $isCabinet = boolval($_POST['cabinet']); // Есть следующие ситуации отображения списка // 1. Раздел "Мои проекты", тут отображаются все проекты, в которых я участник. // 2. Раздел "Мои проекты", но смотрим с ролью "проект наблюдатель" или админ, отображаются не архивные проекты // 3. Смотрим чужой список проектов $res = []; // 3. Если чужой список проектов if($isOther){ $res = Project::getListFormatted($empId,$archive,$active); } else { // 2. Если смотрит с ролью "проект наблюдатель" или админ if((Rules::isAdmin() && !$isCabinet) || (Rules::isGroupProjectViewer() && !$isCabinet)){ $r = Project::select([ \Query::WHERE => new \Where(\Where::_and([ \Where::_operator(Project::$ARCHIVE,'=',0), \Where::_operator(Project::$REMOVED,'=',0), ])), \Query::SORT => [Project::$CODE=>'ASC'], ]); while($l = \DB::fetch($r)){ $res[] = Project::format($l); } } else { // 1. Если я смотрю свои "Мои проекты" $res = Project::getListFormatted(Emp::$AUTH_ID,$archive,$active); } } /* if((Emp::isMeGroup(eEmpGroup::TOP) || Emp::isMeGroup(eEmpGroup::GENERAL) || Emp::isAdmin()) && !isset($_POST['emp'])){ $r = Project::select([ \Query::WHERE => new \Where(\Where::_and([ \Where::_operator(Project::$ARCHIVE,'=',0), \Where::_operator(Project::$REMOVED,'=',0), ])), \Query::SORT => [Project::$CODE=>'ASC'], ]); $a = []; while($l = \DB::fetch($r)){ $a[] = Project::format($l); } } else { $a = Project::getListFormatted(intval($_POST['emp']) ?: Emp::$AUTH_ID, $_POST['archive'], $_POST['active']); } if($isOther) { $r = Project::select([ // \Query::WHERE => $isAdmin ? null : new \Where(\Where::_operator(Project::$DIRECTOR,'=',Emp::$AUTH_ID)) \Query::SORT => [Project::$CODE=>'ASC'], ]); $ids = []; while($l = \DB::fetch($r)){ $ids[] = $l[Project::$ID]; } foreach ($a as $v){ if(in_array($v['id'],$ids)){ $res[] = $v; } } } else { $res = $a; } */ } echo je($res); } public function getData(){ $res = []; if(Emp::$IS_AUTH){ $res = Project::format(Project::getByID(intval($_POST['id']))); } echo je($res); } }