public static function AddAnalyte($caller, $result, $isFieldType, $isCommon) { $manager = $caller->managers()->getManagerOf($caller->module()); $dataPost = $caller->dataPost(); if (!$isCommon) { $pm = PmHelper::GetCurrentSessionPm($caller->user()); $dataPost["pm_id"] = $pm[\Library\Enums\SessionKeys::PmObject]->pm_id(); } $origin = ""; if (array_key_exists("origin", $dataPost)) { $origin = $dataPost["origin"]; } $analytes = array(); $analyteObj = null; if ($isCommon) { $analyteObj = $isFieldType ? new \Applications\PMTool\Models\Dao\Common_field_analyte() : new \Applications\PMTool\Models\Dao\Common_lab_analyte(); } else { $analyteObj = $isFieldType ? new \Applications\PMTool\Models\Dao\Field_analyte() : new \Applications\PMTool\Models\Dao\Lab_analyte(); } if (array_key_exists("names", $dataPost)) { $analytes = !$isCommon ? self::_PrepareManyAnalyteObjects($dataPost, $isFieldType) : self::_PrepareManyCommonAnalyteObjects($dataPost, $isFieldType); } else { array_push($analytes, CommonHelper::PrepareUserObject($dataPost, $analyteObj)); } $result["dataIn"] = $analytes; $result["dataId"] = 0; $result["error"] = array("hasError" => FALSE, "code" => 0, "message" => ""); $commonSessiongKey = $isFieldType ? \Library\Enums\SessionKeys::CommonFieldAnalytes : \Library\Enums\SessionKeys::CommonLabAnalytes; $commonAnalytes = self::GetCommonAnalytes($caller->user(), $commonSessiongKey); foreach ($analytes as $analyte) { $result["dataId"] = 0; $result["dataId"] = $manager->add($analyte); if ($result["dataId"] < 0) { $result["error"]["hasError"] = TRUE; $result["error"]["code"] = $result["dataId"]; $result["error"]["message"] = "Some items couldn't be added to the database"; } elseif ($isFieldType && !$isCommon) { $analyte->setField_analyte_id($result["dataId"]); if (strcmp($origin, "task") === 0) { self::AddProjectAnalyte($caller, $analyte, $dataPost); } array_push($pm[\Library\Enums\SessionKeys::PmFieldAnalytes], $analyte); } elseif (!$isFieldType && !$isCommon) { $analyte->setLab_analyte_id($result["dataId"]); array_push($pm[\Library\Enums\SessionKeys::PmLabAnalytes], $analyte); } elseif ($isFieldType && $isCommon) { $analyte->setCommon_field_analyte_id($result["dataId"]); array_push($commonAnalytes, $analyte); } else { $commonSessiongKey = \Library\Enums\SessionKeys::CommonLabAnalytes; $analyte->setCommon_lab_analyte_id($result["dataId"]); array_push($commonAnalytes, $analyte); } } if ($isCommon) { self::SetCommonAnalytes($caller->user(), $commonSessiongKey, $commonAnalytes); } else { PmHelper::SetSessionPm($caller->user(), $pm); } return $result; }