meraproject/themes/merakomis/team/member/structure/eMemberRole.php
keboss-m 5c21d25d45 Initial commit: Merakomis portal, Docker stack and user-reader API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 11:04:05 +03:00

257 lines
7.9 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace themes\merakomis\team\Member\structure;
use themes\merakomis\Emp;
class eMemberRole {
const DIRECTOR = 1;
const MAIN_ENGINEER = 2;
const MAIN_CONSTRUCTOR = 3;
const ENGINEER_CONSTRUCTOR = 4;
const MAIN_ARCHITECT = 5;
const ARCHITECT = 6;
const DIRECTOR_ENGINEER = 7;
const ENGINEER = 8;
const DIRECTOR_ARCHITECT = 9;
const BIM_COORDINATOR = 10;
const SPECIALIST_GENERAL_PLAN = 11;
const ENGINEER_GEO = 12;
const ENGINEER_SEARCHER = 13;
const DIRECTOR_ENGINEER_EOM = 14;
const ENGINEER_EOM = 15;
const DIRECTOR_ENGINEER_SSIAK = 16;
const ENGINEER_SSIAK = 17;
const DIRECTOR_ENGINEER_VK = 18;
const ENGINEER_VK = 19;
const DIRECTOR_ENGINEER_OVIK = 20;
const ENGINEER_OVIK = 21;
const EMPLOYER = 22;
static $arr;
static $nl;
static $sep = '• ';
static function getArray(){
return static::$arr ? : [
/*
self::DIRECTOR => [
'n'=>'РП - Руководитель проекта',
't'=>str_repeat(self::$sep,0),
'sub'=>[
self::MAIN_ENGINEER,
self::MAIN_CONSTRUCTOR,
self::ENGINEER_CONSTRUCTOR,
self::MAIN_ARCHITECT,
self::ARCHITECT,
self::DIRECTOR_ENGINEER,
self::ENGINEER,
self::DIRECTOR_ARCHITECT,
],
],
*/
self::MAIN_ENGINEER => [
'n'=>'ГИП',
't'=>str_repeat(self::$sep,1),
'sub'=>[
self::MAIN_CONSTRUCTOR,
self::ENGINEER_CONSTRUCTOR,
self::MAIN_ARCHITECT,
self::ARCHITECT,
self::DIRECTOR_ENGINEER,
self::ENGINEER,
self::DIRECTOR_ARCHITECT,
self::DIRECTOR_ENGINEER_EOM,
self::DIRECTOR_ENGINEER_SSIAK,
self::DIRECTOR_ENGINEER_VK,
self::DIRECTOR_ENGINEER_OVIK,
]
],
self::MAIN_ARCHITECT => [
'n'=>'ГАП',
't'=>str_repeat(self::$sep,2),
'sub'=>[
self::DIRECTOR_ARCHITECT,
self::ARCHITECT,
self::SPECIALIST_GENERAL_PLAN,
]
],
self::ARCHITECT => [
'n'=>'Архитектор',
't'=>str_repeat(self::$sep,3),
'sub'=>[]
],
self::SPECIALIST_GENERAL_PLAN => [
'n'=>'Специалист генплана',
't'=>str_repeat(self::$sep,3),
'sub'=>[]
],
self::MAIN_CONSTRUCTOR => [
'n'=>'ГКП',
't'=>str_repeat(self::$sep,2),
'sub'=>[
self::ENGINEER_CONSTRUCTOR,
self::ENGINEER_GEO,
self::ENGINEER_SEARCHER,
]
],
self::ENGINEER_CONSTRUCTOR => [
'n'=>'Инженер-конструктор',
't'=>str_repeat(self::$sep,3),
'sub'=>[]
],
self::ENGINEER_GEO => [
'n'=>'Инженер-геотехник',
't'=>str_repeat(self::$sep,3),
'sub'=>[]
],
self::ENGINEER_SEARCHER => [
'n'=>'Инженер-обследователь',
't'=>str_repeat(self::$sep,3),
'sub'=>[]
],
self::DIRECTOR_ENGINEER_EOM => [
'n'=>'Ведущий инженер ЭОМ',
't'=>str_repeat(self::$sep,2),
'sub'=>[
self::ENGINEER_EOM
]
],
self::ENGINEER_EOM => [
'n'=>'Инженер ЭОМ',
't'=>str_repeat(self::$sep,3),
'sub'=>[]
],
self::DIRECTOR_ENGINEER_SSIAK => [
'n'=>'Ведущий инженер ССиАК',
't'=>str_repeat(self::$sep,2),
'sub'=>[
self::ENGINEER_SSIAK
]
],
self::ENGINEER_SSIAK => [
'n'=>'Инженер ССиАК',
't'=>str_repeat(self::$sep,3),
'sub'=>[]
],
self::DIRECTOR_ENGINEER_VK => [
'n'=>'Ведущий инженер ВК',
't'=>str_repeat(self::$sep,2),
'sub'=>[
self::ENGINEER_VK
]
],
self::ENGINEER_VK => [
'n'=>'Инженер ВК',
't'=>str_repeat(self::$sep,3),
'sub'=>[]
],
self::DIRECTOR_ENGINEER_OVIK => [
'n'=>'Ведущий инженер ОВиК',
't'=>str_repeat(self::$sep,2),
'sub'=>[
self::ENGINEER_OVIK
]
],
self::ENGINEER_OVIK => [
'n'=>'Инженер ОВиК',
't'=>str_repeat(self::$sep,3),
'sub'=>[]
],
self::DIRECTOR_ENGINEER => [
'n'=>'Ведущий инженер',
'archive'=>true,
't'=>str_repeat(self::$sep,2),
'sub'=>[
self::ENGINEER
]
],
self::ENGINEER => [
'n'=>'Инженер',
'archive'=>true,
't'=>str_repeat(self::$sep,3),
'sub'=>[]
],
/*
self::DIRECTOR_ARCHITECT => [
'n'=>'Ведущий архитектор',
'sub'=>[
self::ARCHITECT,
]
],
*/
self::BIM_COORDINATOR => [
'n'=>'BIM-координатор',
't'=>str_repeat(self::$sep,1),
'sub'=>[]
],
self::EMPLOYER => [
'n'=>'Сотрудник',
't'=>str_repeat(self::$sep,1),
'sub'=>[]
],
];
}
static function getSubRoles($role){
if(Emp::isSuperView() ){
return [
self::DIRECTOR,
self::MAIN_ENGINEER,
self::MAIN_CONSTRUCTOR,
self::ENGINEER_CONSTRUCTOR,
self::MAIN_ARCHITECT,
self::ARCHITECT,
self::DIRECTOR_ENGINEER,
self::ENGINEER,
self::DIRECTOR_ARCHITECT,
];
}
return self::getArray()[$role]['sub'];
}
static function getName($x){
return self::getArray()[$x]['n'];
}
static function getRealNameList($x = null){
if(static::$nl) return self::$nl;
$res = [];
$a = self::getArray();
foreach ($a as $k=>$v){
if($v['archive'] && $k!=$x) continue;
$res[] = ['id'=>$k,'title'=>$v['t'].' '.$v['n']];
}
return self::$nl = $res;
}
static function getNameList(){
if(static::$nl) return self::$nl;
$res = [];
$a = self::getArray();
foreach ($a as $k=>$v){
$res[] = ['id'=>$k,'title'=>$v['t'].' '.$v['n']];
}
return self::$nl = $res;
}
}