Rules::isAnalysisProjectsSummary(), ]); } function getBirthday(){ $res = Emp::getBirthday(); echo je($res); } function exit(){ Emp::exit(); } public static function updatePassword() { $res = ['e'=>0,'m'=>'']; if(Emp::$IS_AUTH) { $data = Emp::$data; $hash = $data[Emp::$PASSWORD]; $data[Emp::$PASSWORD] = $_POST['old']; $hash2 = Emp::hash($data); if(strcmp($hash,$hash2)==0){ Emp::updateMyPass($data,$_POST['pass1']); $res['notify']['content'] = "Пароль обновлён"; } else { $res['e'] = 1; $res['m'] = 'Неверный старый пароль'; $res['notify']['color'] = 1; $res['notify']['content'] = $res['m']; } } echo je($res); } public static function getForm() { $res = []; if(Emp::$IS_AUTH) { $_POST[static::$class::$ID] = $_POST['id']; $res = static::$class::getFormInfo($_POST); $res['title'] = 'Редактор сотрудника'; } echo je($res); } public static function getTableData($post = []) { //Emp::getSubEmps(1); $isArchive = false; if(isset($post['data']['my_company'])){ //$TITLE = ['title'=>'Моя компания','subtitle'=>'Моя команда','text'=>'Контакт-лист всех ваших коллег: от Владивостока до Калининграда.']; $TITLE = [ 'title' => 'Моя компания', 'edit' => true, 'subtitle' => Merakomis::$COMPANY_TABLE_SUBTITLE, 'text' => Merakomis::$COMPANY_TABLE_TEXT, 'subtitle_var' => Merakomis::$_COMPANY_TABLE_SUBTITLE, 'text_var' => Merakomis::$_COMPANY_TABLE_TEXT, ]; $post['options'][\ModuleTable::ROW_CLICK] = eRowClick::CUSTOM; $post['options'][\Query::SORT] = [Emp::$NAME=>'ASC']; //if(!$post[]) $post['options'][\Query::WHERE] = \Where::_operator(Emp::$ARCHIVE,'=',0); //$posts ? \Where::_in(Member::$POST,$posts) : null, $post['options'][\ModuleTable::COLUMN_RENDER]=[ Emp::$IMAGE => [ \ModuleTable::COLUMN_RENDER_CUSTOM => true, ], ]; $post['options'][\ModuleTable::COLUMN_LIST]=[ Emp::$IMAGE, //Emp::$ABSENCE, Emp::$NAME, Emp::$STAFFING, Emp::$ROLES, Emp::$SKYPE, Emp::$DISCORD, Emp::$EMAIL, Emp::$CITY, ]; } if(isset($post['data']['my'])){ $post['options'][\ModuleTable::ROW_CLICK] = eRowClick::NONE; if(!Emp::isSuperView()) { $emps = Emp::getSubEmps(Emp::$AUTH_ID) ?: [0]; $post['options'][\Query::WHERE] = \Where::_in(Emp::$ID, $emps); } $post['options'][\ModuleTable::COLUMN_RENDER] = [ Emp::$NAME => [ \ModuleTable::COLUMN_RENDER_LINK_FUNCTION=>function($v){ return '/public_profile/'.$v[Emp::$ID].'/'; } ] ]; } if(isset($post['data']['archive'])){ $post['options'][\ModuleTable::ROW_CLICK] = eRowClick::NONE; if(!isset($post['options']['filter'][Emp::$ARCHIVE])) { $post['options'][\Query::WHERE] = \Where::_operator(Emp::$ARCHIVE, '=', intval($post['data']['archive'])); } /* if(!isset($post['options']['filter'][Emp::$ARCHIVE])){ $post['options']['filter'][Emp::$ARCHIVE] = intval($post['data']['archive']); } */ if($post['data']['archive']){ $isArchive = true; $post['options'][\ModuleTable::ROW_CLICK] = eRowClick::CUSTOM; $post['options'][\ModuleTable::COLUMN_LIST]=[ Emp::$ARCHIVE, Emp::$NAME, Emp::$STAFFING, Emp::$ROLES, Emp::$CITY, Emp::$IS_FREELANCER, Emp::$ORG, Emp::$ORG_TYPE, Emp::$ORG, //Emp::$NOPRIZ, //Emp::$NOSTROI, //Emp::$TECHNADZOR, Emp::$DATE_HIRE, Emp::$STATUS, Emp::$ARCHIVE_DATE, ]; } else { } } if(isset($post['data']['mini'])){ $post['options'][\ModuleTable::ROW_CLICK] = eRowClick::NONE; //$TITLE= ['title'=>'Сотрудники','subtitle'=>'Наша команда','text'=>'Компьютеры коренным образом изменили жизнь каждого человека. Несколько десятилетий назад люди даже не знали ничего об этих электронных устройствах, тогда как в наши дни даже маленький ребенок может управлять этой машиной. Почти все современные технологии зависит от компьютеров, которые используются для хранения данных: файлов, секретной информации, банковских операций и прочего.']; // $TITLE = ['title'=>'Сотрудники','subtitle'=>Merakomis::$DEPARTMENTS_TABLE_SUBTITLE,'text'=>Merakomis::$DEPARTMENTS_TABLE_TEXT]; $TITLE = [ 'title' => 'Сотрудники', 'edit' => true, 'subtitle' => Merakomis::$DEPARTMENTS_TABLE_SUBTITLE, 'text' => Merakomis::$DEPARTMENTS_TABLE_TEXT, 'subtitle_var' => Merakomis::$_DEPARTMENTS_TABLE_SUBTITLE, 'text_var' => Merakomis::$_DEPARTMENTS_TABLE_TEXT, ]; $post['options'][\ModuleTable::COLUMN_LIST]=[ Emp::$NAME, Emp::$STAFFING, Emp::$ROLES, Emp::$TYPE, Emp::$GROUP, Emp::$ACCEPT, Emp::$ACTIVE, Emp::$ARCHIVE, ]; } if(isset($post['data']['all']) && !isset($post['data']['archive'])){ $post['options'][\ModuleTable::COLUMN_LIST]=[ Emp::$ARCHIVE, Emp::$NAME, Emp::$STAFFING, Emp::$ROLES, Emp::$CITY, Emp::$IS_FREELANCER, Emp::$ORG, Emp::$ORG_TYPE, Emp::$DATE_HIRE, Emp::$STATUS, Emp::$FOT, ]; } $post['getData'] = true; $res = parent::getTableData($post); if($TITLE) $res['title'] = $TITLE; else { // $res['title'] = ['title'=>'Сотрудники','subtitle'=>Merakomis::$EMP_TABLE_SUBTITLE,'text'=>Merakomis::$EMP_TABLE_TEXT]; $res['title'] = [ 'title' => 'Сотрудники', 'edit' => true, 'subtitle' => $isArchive ? Merakomis::$EMP_TABLE_ARCHIVE_SUBTITLE : Merakomis::$EMP_TABLE_SUBTITLE, 'text' => $isArchive ? Merakomis::$EMP_TABLE_ARCHIVE_TEXT : Merakomis::$EMP_TABLE_TEXT, 'subtitle_var' => $isArchive ? Merakomis::$_EMP_TABLE_ARCHIVE_SUBTITLE : Merakomis::$_EMP_TABLE_SUBTITLE, 'text_var' => $isArchive ? Merakomis::$_EMP_TABLE_ARCHIVE_TEXT : Merakomis::$_EMP_TABLE_TEXT, ]; } if(isset($post['data']['my_company']) || isset($post['data']['all'])){ $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); } static function new_pass(){ $res = ['e'=>0,'m'=>'']; $pass = trim($_POST['password1']); $pass2 = trim($_POST['password2']); if(!$pass){ $ERROR = 'Введите пароль'; } else if(strcmp($pass,$pass2)!=0){ $ERROR = 'Пароли не совпадают'; } else { $ERROR = Emp::checkRemind($_POST['id'],$_POST['key'],$_POST['hash']); } if($ERROR){ $res['e'] = 1; $res['m'] = $ERROR; } else { $profile = Emp::getByID(intval($_POST['id'])); Emp::updateMyPass($profile,$_POST['password1']); $res['m'] = 'Пароль успешно обновлён. Через 3 секунды вы будете авторизованы'; History::remind(intval($_POST['id'])); } echo je($res); } static function test() { Emp::sendAuthCode(1); //echo Emp::getTgStartLink(); //$x = Merakomis::mail('v.gvozdikov@merakom.ru', 'Виктор', 'test', 'Тест'); } static function remind(){ $res = ['e'=>0]; $profile = Emp::getByLogin((string)$_POST['login']); if($profile){ //$res['m']='Вам выслан email с ссылкой на восстановление пароля '.ShopTheme::getRemindLink($profile); $res['m']='Вам выслан email с ссылкой на восстановление пароля';//.ShopTheme::getRemindLink($profile); $link = Emp::getRemindLink($profile); //$res['link'] = $link; $html = $link; //$html = 'Здравствуйте, '.$profile[Emp::$NAME]."\n". $html = 'Кликните ссылку для установки нового пароля'; //$res['html'] = $html; $res['res'] = Emp::sendEmail($profile,$html,'Восстановление вашего пароля'); //$res['res2'] = Emp::sendEmail($profile,'test','test2'); } else { $res['e'] = 1; $res['m'] = 'Такой аккаунт в системе не найден'; } $res['post'] = $_POST; echo je($res); } static function getMyData(){ $res = []; if(Emp::$IS_AUTH){ $res = Emp::format(Emp::$data); } echo je($res); } static function getData(){ $res = []; if(Emp::$IS_AUTH){ $res = Emp::format(Emp::getByID(intval($_POST['id']))); } echo je($res); } static function updateMe(){ $res = []; if(Emp::$IS_AUTH){ $res['r'] = Emp::updateById(Emp::$AUTH_ID,[ Emp::$PHONE=>$_POST['data'][Emp::$PHONE], Emp::$SKYPE=>$_POST['data'][Emp::$SKYPE], Emp::$DISCORD=>$_POST['data'][Emp::$DISCORD], ]); $res['notify']['content'] = 'Контакты успешно обновлены'; } echo je($res); } static function getMyForm(){ if(Emp::$IS_AUTH) { $emp_id = intval($_POST['id']) ?: Emp::$AUTH_ID; echo je(Emp::getPublicData($emp_id)); } } static function reg(){ $res = Emp::reg($_POST['login'],$_POST['pass1'],$_POST['pass2']); echo je($res); } static function login(){ $res = Emp::login($_POST['login'],$_POST['pass']); echo je($res); } static function removeTelegram(){ $res = []; if(Emp::$IS_AUTH){ Emp::updateById(intval(Emp::$AUTH_ID),[ Emp::$TG_ACC=>0, ]); } echo je($res); } static function checkTelegram(){ $res = ['connect'=>false]; if(Emp::$IS_AUTH){ $res['connect'] = Emp::checkTelegram(); } echo je($res); } static function qr(){ if(Emp::$IS_AUTH) { include __DIR__ . '/../../../lib/php/qr/qrlib.php'; $link = Emp::getTgStartLink(); // $text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false \QRcode::png($link, false, QR_ECLEVEL_L, 5); } } static function toTelegram(){ if(Emp::$IS_AUTH){ echo '

Отсканируйте QR-код камерой вашего смартфона с установленным Telegram и нажмите кнопку «START BOT» на экране мобильного телефона.

После этого окно можно закрыть.

Проверьте привязку, нажав кнопку «Проверить» в карточке сотрудника: статус-бар окрасится в синий цвет.

'; } } }