Example #1
0
 /**
  * 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;
     }
 }