/** * Method that get a project and returns the result of operation * * @param \Library\HttpRequest $rq * @return JSON */ public function executeUpdateItems(\Library\HttpRequest $rq) { $result = $this->InitResponseWS(); // Init result $rows_affected = 0; //Get the project objects from ids received $project_ids = str_getcsv($this->dataPost["project_ids"], ','); $projects = \Applications\PMTool\Helpers\CommonHelper::GetListObjectsInSessionByKey($this->app()->user(), \Library\Enums\SessionKeys::ProjectObject); $matchedElements = $this->FindObjectsFromIds(array("filter" => "project_id", "ids" => $project_ids, "objects" => $projects)); foreach ($matchedElements as $project) { $project->setProject_active($this->dataPost["action"] === "active" ? TRUE : FALSE); $manager = $this->managers->getManagerOf($this->module); $rows_affected += $manager->edit($project, "project_id") ? 1 : 0; } $this->SendResponseWS($result, array("resx_file" => \Applications\PMTool\Resources\Enums\ResxFileNameKeys::Project, "resx_key" => $this->action(), "step" => $rows_affected === count($project_ids) ? "success" : "error")); }
public static function SetCurrentProjectIfPmHasOnlyOneAndReturnProjects(\Library\User $user) { $projects = \Applications\PMTool\Helpers\ProjectHelper::GetSessionProjects($user); $pm = \Applications\PMTool\Helpers\PmHelper::GetCurrentSessionPm($user); $project_ids = count($pm[\Library\Enums\SessionKeys::PmProjectIds]) > 0 ? $pm[\Library\Enums\SessionKeys::PmProjectIds] : FALSE; if (count($projects) === 1 && $project_ids !== FALSE) { \Applications\PMTool\Helpers\ProjectHelper::SetCurrentSessionProject($user, $projects[\Library\Enums\SessionKeys::ProjectKey . $project_ids[0]]); } else { if (count($projects) > 1 && $project_ids !== FALSE) { $project_objects = \Applications\PMTool\Helpers\CommonHelper::GetListObjectsInSessionByKey($user, \Library\Enums\SessionKeys::ProjectObject); $project = \Applications\PMTool\Helpers\CommonHelper::FindObjectByIntValue(1, 'project_is_default', $project_objects); if ($project !== false) { \Applications\PMTool\Helpers\ProjectHelper::SetCurrentSessionProject($user, $projects[\Library\Enums\SessionKeys::ProjectKey . $project->project_id()]); } } } return $projects; }