public static function UpdateTaskTechnicians($caller)
 {
     $result = $caller->InitResponseWS();
     // Init result
     $dataPost = $caller->dataPost();
     $result["rows_affected"] = 0;
     $result["technician_ids"] = str_getcsv($dataPost["technician_ids"], ',');
     $sessionTask = \Applications\PMTool\Helpers\TaskHelper::GetCurrentSessionTask($caller->user());
     $task_technicians = array();
     foreach ($result["technician_ids"] as $id) {
         $task_technician = new \Applications\PMTool\Models\Dao\Task_technician();
         $task_technician->setTechnician_id($id);
         $task_technician->setTask_id($sessionTask[\Library\Enums\SessionKeys::TaskObj]->task_id());
         $dal = $caller->managers()->getManagerOf($caller->module());
         if ($dataPost["action"] === "add") {
             $result["rows_affected"] += $dal->add($task_technician) >= 0 ? 1 : 0;
         } else {
             $result["rows_affected"] += $dal->delete($task_technician, "technician_id") ? 1 : 0;
         }
         array_push($task_technicians, $task_technician);
     }
     $sessionTask[\Library\Enums\SessionKeys::TaskTechnicians] = $task_technicians;
     \Applications\PMTool\Helpers\TaskHelper::SetSessionTask($caller->user(), $sessionTask);
     return $result;
 }
 public static function UpdateTaskLocations($caller)
 {
     $result = $caller->InitResponseWS();
     // Init result
     $dataPost = $caller->dataPost();
     $result["rows_affected"] = 0;
     $result["location_ids"] = str_getcsv($dataPost["location_ids"], ',');
     $sessionTask = \Applications\PMTool\Helpers\TaskHelper::GetCurrentSessionTask($caller->user());
     $task_locations = array();
     foreach ($result["location_ids"] as $id) {
         $task_location = new \Applications\PMTool\Models\Dao\Task_location();
         $task_location->setLocation_id($id);
         $task_location->setTask_id($sessionTask[\Library\Enums\SessionKeys::TaskObj]->task_id());
         $task_location->setTask_location_status(0);
         $dal = $caller->managers()->getManagerOf($caller->module());
         if ($dataPost["action"] === "add") {
             $result["rows_affected"] += $dal->add($task_location) >= 0 ? 1 : 0;
             //At the same time create the relationship in "field_analyte_location"
             \Applications\PMTool\Helpers\TaskAnalyteMatrixHelper::CreateFALocationRelationForFT($caller, $sessionTask[\Library\Enums\SessionKeys::TaskObj]->task_id(), $id);
         } else {
             $result["rows_affected"] += $dal->delete($task_location, "location_id") ? 1 : 0;
         }
         array_push($task_locations, $task_location);
     }
     $sessionTask[\Library\Enums\SessionKeys::TaskLocations] = $task_locations;
     \Applications\PMTool\Helpers\TaskHelper::SetSessionTask($caller->user(), $sessionTask);
     return $result;
 }
 public function executeGetItem(\Library\HttpRequest $rq)
 {
     // Init result
     $result = $this->InitResponseWS();
     $task_id = intval($this->dataPost["task_id"]);
     $task_selected = \Applications\PMTool\Helpers\TaskHelper::GetSessionTask($this->app()->user(), $task_id);
     \Applications\PMTool\Helpers\TaskHelper::SetSessionTask($this->user(), $task_selected);
     $result["task"] = $task_selected;
     $this->SendResponseWS($result, array("resx_file" => \Applications\PMTool\Resources\Enums\ResxFileNameKeys::Task, "resx_key" => $this->action(), "step" => $task_selected !== NULL ? "success" : "error"));
 }