public static function GetProjectAnalytes($caller, $getFieldType = TRUE, $sessionProject = NULL)
 {
     $pm = PmHelper::GetCurrentSessionPm($caller->user());
     $project = $sessionProject == NULL ? ProjectHelper::GetCurrentSessionProject($caller->user()) : $sessionProject;
     $sessionKey = $getFieldType ? \Library\Enums\SessionKeys::ProjectFieldAnalytes : \Library\Enums\SessionKeys::ProjectLabAnalytes;
     if (count($project[$sessionKey]) === 0) {
         $type = $getFieldType ? "field" : "lab";
         $className = "\\Applications\\PMTool\\Models\\Dao\\Project_" . $type . "_analyte";
         $project_analyte = new $className();
         $project_analyte->setProject_id($project[\Library\Enums\SessionKeys::ProjectObject]->project_id());
         $dal = $caller->managers()->getManagerOf('Analyte');
         $project_analytes = $dal->selectMany($project_analyte, "project_id");
         $project[$sessionKey] = $project_analytes;
         ProjectHelper::SetUserSessionProject($caller->user(), $project);
     }
     return $project[$sessionKey];
 }
 public static function StoreSessionTask($user, $list, $sessionProject = NULL)
 {
     $SessionTasks = array();
     $project = $sessionProject === NULL ? ProjectHelper::GetCurrentSessionProject($user) : $sessionProject;
     $countActiveTask = 0;
     foreach ($list as $task) {
         $key = \Library\Enums\SessionKeys::TaskKey . $task->task_id();
         $sessionTask = self::MakeSessionTask($task);
         $SessionTasks[$key] = $sessionTask;
         array_push($project[\Library\Enums\SessionKeys::ProjectTasks], $key);
         if ($task->task_active()) {
             $countActiveTask += 1;
             $currentSessionTask = $sessionTask;
             //Get sessin task object
         }
     }
     ProjectHelper::SetUserSessionProject($user, $project);
     self::SetSessionTasks($user, $SessionTasks);
     if ($countActiveTask === 1) {
         //Set current task if there is only one active
         self::SetCurrentSessionTask($user, $currentSessionTask);
     }
     return $SessionTasks;
 }
 public static function GetAndStoreProjectServices($caller, $sessionProject)
 {
     $sessionProjects = $caller->user()->getAttribute(\Library\Enums\SessionKeys::UserSessionProjects);
     $projectService = new \Applications\PMTool\Models\Dao\Project_service();
     $projectService->setProject_id($sessionProject[\Library\Enums\SessionKeys::ProjectObject]->project_id());
     //    if (!(count($sessionProject[\Library\Enums\SessionKeys::ProjectServices]) > 0)) {
     $dal = $caller->managers()->getManagerOf("ProjectService");
     $sessionProject[\Library\Enums\SessionKeys::ProjectServices] = $dal->selectMany($projectService, "project_id");
     //    }
     ProjectHelper::SetUserSessionProject($caller->user(), $sessionProject);
     ProjectHelper::SetCurrentSessionProject($caller->user(), $sessionProject);
     return self::GetServicesFromProjectServices($caller->user(), $sessionProject);
 }