/** * Method that get a project and returns the result of operation * * @param \Library\HttpRequest $rq * @return JSON */ public function executeSetCurrentProject(\Library\HttpRequest $rq) { $result = $this->InitResponseWS(); // Init result $manager = $this->managers()->getManagerOf('Project'); $projectEdit = new \Applications\PMTool\Models\Dao\Project(); $pm = $this->user->getAttribute(\Library\Enums\SessionKeys::CurrentPm); $pm = $pm[\Library\Enums\SessionKeys::PmObject]; $pm_id = $pm->pm_id(); $projectEdit->setPm_id($pm_id); $projectEdit->setProject_is_default(0); if (!$manager->edit($projectEdit, 'pm_id')) { throw new \Exception(__CLASS__ . "->" . __METHOD__ . " => Project Edit failed for PM ID=" . $pm_id); } $project_id = $this->dataPost["project_id"]; $projectEdit->setProject_id($project_id); $projectEdit->setProject_is_default(1); if (!$manager->edit($projectEdit, 'project_id')) { throw new \Exception(__CLASS__ . "->" . __METHOD__ . " => Project Edit failed for Project ID=" . $project_id); } else { \Applications\PMTool\Helpers\ProjectHelper::RefreshProjectObjectsForCurrentPm($this); } $project = \Applications\PMTool\Helpers\ProjectHelper::GetAndStoreCurrentProject($this->user(), $project_id); $result["dataId"] = $project->project_id(); \Applications\PMTool\Helpers\TaskHelper::UnsetCurrentSessionTask($this->user()); $this->SendResponseWS($result, array("resx_file" => \Applications\PMTool\Resources\Enums\ResxFileNameKeys::Project, "resx_key" => $this->action(), "step" => $project != NULL ? "success" : "error")); }