/** * Save Department * @var string $dep_data. Data for Process * @var string $create. Flag for create or update * * @access public * @author Brayan Pereyra (Cochalo) <*****@*****.**> * @copyright Colosa - Bolivia * * @return array */ public function saveDepartment($dep_data, $create = true) { Validator::isArray($dep_data, '$dep_data'); Validator::isNotEmpty($dep_data, '$dep_data'); Validator::isBoolean($create, '$create'); $dep_data = array_change_key_case($dep_data, CASE_UPPER); if ($create) { unset($dep_data["DEP_UID"]); } $oDepartment = new \Department(); if (isset($dep_data['DEP_UID']) && $dep_data['DEP_UID'] != '') { Validator::depUid($dep_data['DEP_UID']); } if (isset($dep_data['DEP_PARENT']) && $dep_data['DEP_PARENT'] != '') { Validator::depUid($dep_data['DEP_PARENT'], 'dep_parent'); } if (isset($dep_data['DEP_MANAGER']) && $dep_data['DEP_MANAGER'] != '') { Validator::usrUid($dep_data['DEP_MANAGER'], 'dep_manager'); } if (isset($dep_data['DEP_STATUS'])) { Validator::depStatus($dep_data['DEP_STATUS']); } if (!$create) { if (isset($dep_data["DEP_TITLE"])) { $this->throwExceptionIfExistsTitle($dep_data["DEP_TITLE"], strtolower("DEP_TITLE"), $dep_data["DEP_UID"]); $dep_data["DEPO_TITLE"] = $dep_data["DEP_TITLE"]; } $oDepartment->update($dep_data); $oDepartment->updateDepartmentManager($dep_data['DEP_UID']); } else { if (isset($dep_data['DEP_TITLE'])) { $this->throwExceptionIfExistsTitle($dep_data["DEP_TITLE"], strtolower("DEP_TITLE")); } else { throw new \Exception(\G::LoadTranslation("ID_FIELD_REQUIRED", array('dep_title'))); } $dep_uid = $oDepartment->create($dep_data); $response = $this->getDepartment($dep_uid); return $response; } }