6000)) { // last request was more than 30 minutes ago session_unset(); // unset $_SESSION variable for the run-time session_destroy(); // destroy session data in storage } $_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp $add = 'Login Area'; foreach (array_keys($_REQUEST) as $var) { ${$var} = $_REQUEST[$var]; //if ($name == "Admin12") { // echo "$var: ${$var}
"; //} } if ($act == "exit") { session_unset(); session_destroy(); session_start(); } if ($_SESSION['cmdlevel']) $cmdlevel = $_SESSION['cmdlevel']; if ($_SESSION['hostid']) $agent_id = $_SESSION['hostid']; if ($_SESSION['add']) $add = $_SESSION['add']; if ($_SESSION['id']) $id = $_SESSION['id']; if ($_SESSION['login']) $login = $_SESSION['login']; if ($_SESSION['name']) $name = $_SESSION['name']; foreach (array_keys($_SESSION) as $var) { ${$var} = $_SESSION[$var]; //if ($name == "Admin12") { //echo "from session: $var: ${$var}
"; //} } include 'functions.php'; include 'auth.php'; $logged_me_in_successfully234 = 0; $incl = ''; if (!$_SESSION['pass'] && !$_SESSION['login']) { $table = 'accounts'; $result=mysqli_query($link, "SELECT id, login, name, cmdlevel FROM $table WHERE login='".$login."' AND password='".md5($pass)."'"); $res1 = mysqli_fetch_array($result); $cmdlevel = $res1['cmdlevel']; $name = $res1['name']; $id = $res1['id']; if ($cmdlevel == '10') { $add = "Head Administrator"; } else if ($cmdlevel == '1') { $add = "Company Administrator"; } else if ($cmdlevel == '2') { $add = "Company Operator"; } if (mysqli_num_rows($result)) { $_SESSION['pass']=$pass; $_SESSION['login']=$login; $_SESSION['name']=$name; $_SESSION['add']=$add; $_SESSION['cmdlevel']=$cmdlevel; $_SESSION['id']=$id; $logged_me_in_successfully234 = 1; } } else $logged_me_in_successfully234 = 1; $query = mysqli_query($link, "update accounts set last_seen_web =NOW() where id=".$id); $getincl = GetInclude($act, intval($cmdlevel)); $incl = $getincl[0]; $accnum = $getincl[1]; $project_id = \Yii::$app->request->get('project_id'); $post = \Yii::$app->request->post(); if ( $project_id ) { \Yii::$app->session->set('ProjectId', $project_id ); } else { $project_id = \Yii::$app->session->get('ProjectId' ); } $projEntity = \app\models\entity\ProjectsLocotech::findOne(['id' => $project_id]); //$taskEntity = \app\models\entity\Tasks::find()->where(['input_id' => $project_id])->orderBy(['parent_id' => SORT_ASC,'priority'=> SORT_ASC,'type'=> SORT_ASC,'text'=> SORT_ASC])->all(); $taskEntity = \app\models\entity\Tasks::find()->where(['input_id' => $project_id])->orderBy(['id'=> SORT_ASC])->all(); $arrayTest = explode(',',$projEntity->tasks); $priorityarray = []; $filterSelectArray = []; $filterParentIdArray = []; $count = 1; foreach ( $arrayTest as $m ) { $priorityarray[$count * 1000] = $m; $count++; } $priorityarray = array_flip($priorityarray); //var_dump($priorityarray); $data = '{ "data": ['; $currentTime = strtotime(date("Y-m-d H:i:s")); $start_date = $currentTime; $tempArrayForTasks = []; $tempArrayDuringForTasks = []; $parent_id = ''; $tempArrayForStartTime = []; $start_date_str = date ( "d-m-Y H:i",$currentTime ); $tempArrayCountDuringForTasks = []; $tempArrayDuringForTasksPlus = []; $progress = 0; $counter = 0; // массив с ожидаемой длительностью родительских тасков foreach ( $taskEntity as $task ) { $duration = $task->tasktypes->time_to_complete_minutes; $tempArrayDuringForTasks[$task->parent_id][] = $duration; } // массив родительских тасков с ожидаемым временем выполнения в часах foreach( $tempArrayDuringForTasks as $key => &$a) { $tempArrayDuringForTasks[$key] = array_sum($a)*60; } $e = 0; foreach ( $taskEntity as $task ) { $text = \app\models\HelperModel::stripWhitespaces($task->text); $readonly = 'true'; if ( (null != $task->created) and (null == $task->accepted_time) and (null == $task->finished_time) ) { $readonly = 'false'; } if ( 0 == $task->parent_id) {//var_dump($task->id,$task->text); preg_match('/#(.*)#/', $text, $matches); $id_job = $matches[1]; if ( null == $tempArrayDuringForTasksPlus[$id_job]) { $tempArrayForStartTime[$task->id] = 0; } else { $tempArrayForStartTime[$task->id] += $tempArrayDuringForTasksPlus[$id_job]/60; } if ( null != $task->accepted_time && null == $task->finished_time){ $start_date_str = date ( "d-m-Y H:i",strtotime($task->accepted_time) ); } } if ( 0 != $task->parent_id) { $parent_id = ', "parent": "'.$task->parent_id.'"'; } switch ($task->status) { case 5: $progress = 1.0; break; case 1: $progress = 0.0; break; default: $progress = 0.5; break; } $start_finish_time = ''; $duration = $task->tasktypes->time_to_complete_minutes; if ( null != $task->accepted_time ){ $start_finish_time = '/' . date ('H:i' , strtotime($task->accepted_time)); } if ( 'true' === $readonly ) { $start_finish_time = '/' . date ('H:i' , strtotime($task->accepted_time)). ' - ' . date ('H:i' , strtotime($task->finished_time)); } // ЕСЛИ ККОМАНДА ЗАВЕРШЕНА НАЧАЛО if ( null != $task->finished_time ){ $duration_sec = strtotime($task->finished_time) - strtotime($task->accepted_time); $duration = floor($duration_sec/60); } // ЕСЛИ ККОМАНДА ЗАВЕРШЕНА КОНЕЦ // ЕСЛИ ККОМАНДА ВЫПОЛНЯЕТСЯ НО НЕ ЗАВЕРШЕНА НАЧАЛО if ( null != $task->accepted_time && null == $task->finished_time){ $duration_sec = $currentTime - strtotime($task->accepted_time); $duration = floor($duration_sec/60); } // ЕСЛИ ККОМАНДА ВЫПОЛНЯЕТСЯ НО НЕ ЗАВЕРШЕНА КОНЕЦ if ( 0 == $task->parent_id) { preg_match('/#(.*)#/', $text, $matches); $id_job = $matches[1]; $query = 'SELECT min(coalesce(accepted_time, NOW())) as time FROM tasks WHERE parent_id = ' . $task->id; $res = \Yii::$app->db->createCommand($query)->queryOne(); $timeCompare = $start_date_str = date ('d-m-Y H:i' , strtotime($res['time'])); $start_date_str = date ('d-m-Y H:i' ,strtotime($start_date_str)+$tempArrayCountDuringForTasks[$id_job]); if(strtotime($timeCompare) == (strtotime($start_date_str)+$tempArrayCountDuringForTasks[$id_job])) { $prior[$id_job] = $priorityarray[$task->id]; } else { $prior[$id_job] += 100; } $priorParent[$task->id] = $prior[$id_job]; $tempArrayCountDuringForTasks[$id_job] += $tempArrayDuringForTasks[$task->id]; $tempArrayDuringForTasksPlus[$id_job] = $tempArrayCountDuringForTasks[$id_job]; // ЕСЛИ ККОМАНДА ЗАВЕРШЕНА НАЧАЛО $oneTaskEntity = \app\models\entity\Tasks::find()->where(['parent_id' => $task->id])->orderBy(['priority'=> SORT_ASC ])->all(); $Finished = false; $Accepted = false; foreach( $oneTaskEntity as $one) { if ( 1 == $one->priority ){ $Accepted = $one->accepted_time; } $Finished = $one->finished_time; } if ( null != $Finished and null != $Accepted ){ $duration_sec = strtotime($Finished) - strtotime($Accepted); $duration = floor($duration_sec/60); } if ( null != $Accepted ){ $start_date_str = date ( "d-m-Y H:i",strtotime($Accepted) ); } // ЕСЛИ ККОМАНДА ЗАВЕРШЕНА КОНЕЦ } $text = preg_replace('/#(.*)#/', '', $text); $text = preg_replace('/([0-9]|[0-9][0-9])\/[АБВГ](.*)$/u', '', $text); if ( 0 != $task->parent_id && 0 != $task->assignees_arr) { $accountsEntity = \app\models\entity\Accounts::findOne($task->assignees_arr); $text = $accountsEntity->name; } $tasktypesName = \app\models\HelperModel::stripWhitespaces($task->tasktypes->name); $tasktypesName = addslashes($tasktypesName); $prior[$id_job] = sprintf("%08d", $prior[$id_job]); if ( 0 == $task->parent_id) { $filterSelectArray[]= $text; ////////////////////////////////////////////// FILTER if (!empty($post)) { if (!letterFilter($post,$tasktypesName) and $post['command'] != 'false') { $filterParentIdArray = $task->id; continue; } if ( $post['job'] != $text and $post['job'] != 'false') { continue; } } //var_dump($tempArrayForTasks); ////////////////////////////////////////////// FILTER $tempArrayForTasks[$id_job][] = '{ "id": ' . $task->id . ', "calendar_id": "global", "text": " ' . $tasktypesName . ':' . $text . ''.$start_finish_time.' ", "type": "project", "start_date": "' . $start_date_str . '", "duration": "' . $duration . '","progress": '.$progress.', "open": true, "readonly" : '.$readonly.',"sort": "'.$prior[$id_job].'"}'; } $counter++; } $filterSelectArray = array_unique($filterSelectArray); //var_dump($tempArrayForTasks); ////////////////////////////////////////////////////////////// $taskEntity = \app\models\entity\Tasks::find()->where(['input_id' => $project_id])->andWhere(['>','parent_id', 0 ])->orderBy(['priority'=> SORT_ASC])->all(); $arrayTest = explode(',',$projEntity->tasks); $priorityarray = []; $count = 1; foreach ( $arrayTest as $m ) { $priorityarray[$count * 1000] = $m; $count++; } $priorityarray = array_flip($priorityarray); //var_dump($priorityarray); //$currentTime = strtotime(date("Y-m-d H:i:s")); //$start_date = $currentTime; //$tempArrayDuringForTasks = []; $parent_id = ''; //$tempArrayForStartTime = []; //$start_date_str = date ( "d-m-Y H:i",$currentTime ); //$tempArrayCountDuringForTasks = []; //$tempArrayDuringForTasksPlus = []; $progress = 0; $counter = 0; foreach ( $taskEntity as $task ) { $duration = $task->tasktypes->time_to_complete_minutes; $tempArrayDuringForTasks[$task->parent_id][] = $duration; } foreach( $tempArrayDuringForTasks as $key => &$a) { $tempArrayDuringForTasks[$key] = array_sum($a)*60; } $e = 0; foreach ( $taskEntity as $task ) { $text = \app\models\HelperModel::stripWhitespaces($task->text); $readonly = 'true'; if ( (null != $task->created) and (null == $task->accepted_time) and (null == $task->finished_time) ) { $readonly = 'false'; } if ( 0 == $task->parent_id) {//echo "
"; preg_match('/#(.*)#/', $text, $matches); $id_job = $matches[1]; if ( null == $tempArrayDuringForTasksPlus[$id_job]) { $tempArrayForStartTime[$task->id] = 0; } else { $tempArrayForStartTime[$task->id] += $tempArrayDuringForTasksPlus[$id_job]/60; } if ( null != $task->accepted_time && null == $task->finished_time){ $start_date_str = date ( "d-m-Y H:i",strtotime($task->accepted_time) ); } } else { $start_date = $currentTime + ($tempArrayForStartTime[$task->parent_id] * 60 ); $start_date_str = date ( "d-m-Y H:i",$start_date ); //echo ' || 2=>' .$start_date_str; if ( null != $task->finished_time ){ $start_date_str = date ( "d-m-Y H:i",strtotime($task->accepted_time) ); //echo ' || 3 =>' .$start_date_str; } if ( null != $task->accepted_time && null == $task->finished_time){ $start_date_str = date ( "d-m-Y H:i",strtotime($task->accepted_time) ); } //var_dump($tempArrayForStartTime[$task->parent_id]); $tempArrayForStartTime[$task->parent_id] += $task->tasktypes->time_to_complete_minutes; } if ( 0 != $task->parent_id) { $parent_id = ', "parent": "'.$task->parent_id.'"'; } switch ($task->status) { case 5: $progress = 1.0; break; case 1: $progress = 0.0; break; default: $progress = 0.5; break; } $start_finish_time = ''; $duration = $task->tasktypes->time_to_complete_minutes; if ( null != $task->accepted_time ){ $start_finish_time = '/' . date ('H:i' , strtotime($task->accepted_time)); } if ( 'true' === $readonly ) { $start_finish_time = '/' . date ('H:i' , strtotime($task->accepted_time)). ' - ' . date ('H:i' , strtotime($task->finished_time)); } // ЕСЛИ ККОМАНДА ЗАВЕРШЕНА НАЧАЛО if ( null != $task->finished_time ){ $duration_sec = strtotime($task->finished_time) - strtotime($task->accepted_time); $duration = floor($duration_sec/60); } // ЕСЛИ ККОМАНДА ЗАВЕРШЕНА КОНЕЦ // ЕСЛИ ККОМАНДА ВЫПОЛНЯЕТСЯ НО НЕ ЗАВЕРШЕНА НАЧАЛО if ( null != $task->accepted_time && null == $task->finished_time){ $duration_sec = $currentTime - strtotime($task->accepted_time); $duration = floor($duration_sec/60); } // ЕСЛИ ККОМАНДА ВЫПОЛНЯЕТСЯ НО НЕ ЗАВЕРШЕНА КОНЕЦ if ( 0 == $task->parent_id) { preg_match('/#(.*)#/', $text, $matches); $id_job = $matches[1]; $query = 'SELECT min(coalesce(accepted_time, NOW())) as time FROM tasks WHERE parent_id = ' . $task->id; $res = \Yii::$app->db->createCommand($query)->queryOne(); $timeCompare = $start_date_str = date ('d-m-Y H:i' , strtotime($res['time'])); $start_date_str = date ('d-m-Y H:i' ,strtotime($start_date_str)+$tempArrayCountDuringForTasks[$id_job]); if(strtotime($timeCompare) == (strtotime($start_date_str)+$tempArrayCountDuringForTasks[$id_job])) { $prior[$id_job] = $priorityarray[$task->id]; //var_dump($prior[$id_job], '$priorityarray['.$task->id.']'); echo "
"; } else {//echo $prior[$task->id]; $prior[$id_job] += 100; //var_dump($prior[$id_job], '$priorityarray['.$task->id.']'); } //var_dump($task->id); //var_dump($id_job, $prior[$id_job],$task->id,$priorityarray[$task->id]); echo "
"; $priorParent[$task->id] = $prior[$id_job]; $tempArrayCountDuringForTasks[$id_job] += $tempArrayDuringForTasks[$task->id]; $tempArrayDuringForTasksPlus[$id_job] = $tempArrayCountDuringForTasks[$id_job]; //var_dump($prior[$id_job], $task->id, $start_date_str,$text,date ('d-m-Y H:i')); echo "
"; } else { $prior[$id_job] = $priorParent[$task->parent_id] + $task->priority; } //var_dump($prior[$id_job], $task->id); $text = preg_replace('/#(.*)#/', '', $text); $text = preg_replace('/([0-9]|[0-9][0-9])\/[АБВГ](.*)$/u', '', $text); if ( 0 != $task->parent_id && 0 != $task->assignees_arr) { $accountsEntity = \app\models\entity\Accounts::findOne($task->assignees_arr); $text = $accountsEntity->name; } //echo " |name=". $task->id."=>".$prior[$id_job]." |" ; $tasktypesName = \app\models\HelperModel::stripWhitespaces($task->tasktypes->name); $tasktypesName = addslashes($tasktypesName); //echo $tasktypesName.'-'; $prior[$id_job] = sprintf("%08d", $prior[$id_job]); ////////////////////////////////////////////// FILTER if ( in_array($task->parent_id,$filterParentIdArray)) { continue; } ////////////////////////////////////////////// FILTER $tempArrayForTasks[$id_job][] = '{ "id": ' . $task->id . ', "calendar_id": "global", "text": " ' . $tasktypesName . ':' . $text . ''.$start_finish_time.' ", "type": "project", "start_date": "' . $start_date_str . '", "duration": "' . $duration . '","progress": '.$progress.', "open": true, "readonly" : '.$readonly.$parent_id.',"sort": "'.$prior[$id_job].'"}'; $counter++; //$prior = ''; } //////////////////////////////////////////////////////////// foreach( $tempArrayForTasks as &$items){ $items = implode(',', $items); } ksort($tempArrayForTasks); $data .= implode(',', $tempArrayForTasks); $data .= '], "links": [] }'; ?> Project level calendars ASUSG "; GetEnterForm(); echo("Access denied. Incorrect login or password"); echo ""; return; } $sectionsArray = ['А','Б','В']; ?>

Login  
Password  
 
"; } function letterFilter($post,$tasktypesName){ if (empty($post)){ return false; } $letterArr = explode(' ', $tasktypesName); $letter = substr($letterArr[1],0,-1); if( 1 == mb_strlen($letter)) { if( $letter == $post['command']) { return true; } else { return false; } } } /* function jobFilter($post,$tasktypesName){ if (empty($post)){ return false; } $letter = explode(' ', $tasktypesName); $letter = substr($letter,0,-1); if(count($letter)) { if( $letter == $post['command']) { return true; } else { return false; } } } */ ?>