示例#1
0
 /**
  * During resource or employment transfer
  *
  * @static
  * @param $ID
  * @param $entity
  * @return ID|int|the
  */
 static function transfer($ID, $entity)
 {
     global $DB;
     if ($ID > 0) {
         // Not already transfer
         // Search init item
         $query = "SELECT *\n                   FROM `glpi_plugin_resources_ranks`\n                   WHERE `id` = '{$ID}'";
         if ($result = $DB->query($query)) {
             if ($DB->numrows($result)) {
                 $data = $DB->fetch_assoc($result);
                 $data = Toolbox::addslashes_deep($data);
                 $input['name'] = $data['name'];
                 $input['entities_id'] = $entity;
                 $temp = new self();
                 $newID = $temp->getID($input);
                 if ($newID < 0) {
                     $newID = $temp->import($input);
                 }
                 //transfert of the linked profession
                 $profession = PluginResourcesProfession::transfer($temp->fields["plugin_resources_professions_id"], $entity);
                 if ($profession > 0) {
                     $values["id"] = $newID;
                     $values["plugin_resources_professions_id"] = $profession;
                     $temp->update($values);
                 }
                 return $newID;
             }
         }
     }
     return 0;
 }
示例#2
0
 function doSpecificMassiveActions($input = array())
 {
     $res = array('ok' => 0, 'ko' => 0, 'noright' => 0);
     $resource_item = new PluginResourcesResource_Item();
     switch ($input['action']) {
         case "Transfert":
             if ($input['itemtype'] == 'PluginResourcesResource') {
                 foreach ($input["item"] as $key => $val) {
                     if ($val == 1) {
                         $this->getFromDB($key);
                         $contracttype = PluginResourcesContractType::transfer($PluginResourcesResource->fields["plugin_resources_contracttypes_id"], $input['entities_id']);
                         if ($contracttype > 0) {
                             $values["id"] = $key;
                             $values["plugin_resources_contracttypes_id"] = $contracttype;
                             $this->update($values);
                         }
                         unset($values);
                         $resourcestate = PluginResourcesResourceState::transfer($PluginResourcesResource->fields["plugin_resources_resourcestates_id"], $input['entities_id']);
                         if ($resourcestate > 0) {
                             $values["id"] = $key;
                             $values["plugin_resources_resourcestates_id"] = $resourcestate;
                             $this->update($values);
                         }
                         unset($values);
                         $department = PluginResourcesDepartment::transfer($PluginResourcesResource->fields["plugin_resources_departments_id"], $input['entities_id']);
                         if ($department > 0) {
                             $values["id"] = $key;
                             $values["plugin_resources_departments_id"] = $department;
                             $this->update($values);
                         }
                         unset($values);
                         $situation = PluginResourcesResourceSituation::transfer($PluginResourcesResource->fields["plugin_resources_resourcesituations_id"], $input['entities_id']);
                         if ($situation > 0) {
                             $values["id"] = $key;
                             $values["plugin_resources_resourcesituations_id"] = $situation;
                             $this->update($values);
                         }
                         unset($values);
                         $contractnature = PluginResourcesContractNature::transfer($PluginResourcesResource->fields["plugin_resources_contractnatures_id"], $input['entities_id']);
                         if ($contractnature > 0) {
                             $values["id"] = $key;
                             $values["plugin_resources_contractnatures_id"] = $contractnature;
                             $this->update($values);
                         }
                         unset($values);
                         $rank = PluginResourcesRank::transfer($PluginResourcesResource->fields["plugin_resources_ranks_id"], $input['entities_id']);
                         if ($rank > 0) {
                             $values["id"] = $key;
                             $values["plugin_resources_ranks_id"] = $rank;
                             $this->update($values);
                         }
                         unset($values);
                         $speciality = PluginResourcesResourceSpeciality::transfer($PluginResourcesResource->fields["plugin_resources_resourcespecialities_id"], $input['entities_id']);
                         if ($speciality > 0) {
                             $values["id"] = $key;
                             $values["plugin_resources_resourcespecialities_id"] = $speciality;
                             $this->update($values);
                         }
                         unset($values);
                         $PluginResourcesTask = new PluginResourcesTask();
                         $restrict = "`plugin_resources_resources_id` = '" . $key . "'";
                         $tasks = getAllDatasFromTable("glpi_plugin_resources_tasks", $restrict);
                         if (!empty($tasks)) {
                             foreach ($tasks as $task) {
                                 $PluginResourcesTask->getFromDB($task["id"]);
                                 $tasktype = PluginResourcesTaskType::transfer($PluginResourcesTask->fields["plugin_resources_tasktypes_id"], $input['entities_id']);
                                 if ($tasktype > 0) {
                                     $values["id"] = $task["id"];
                                     $values["plugin_resources_tasktypes_id"] = $tasktype;
                                     $PluginResourcesTask->update($values);
                                 }
                                 $values["id"] = $task["id"];
                                 $values["entities_id"] = $input['entities_id'];
                                 $PluginResourcesTask->update($values);
                             }
                         }
                         unset($values);
                         $PluginResourcesEmployment = new PluginResourcesEmployment();
                         $restrict = "`plugin_resources_resources_id` = '" . $key . "'";
                         $employments = getAllDatasFromTable("glpi_plugin_resources_employments", $restrict);
                         if (!empty($employments)) {
                             foreach ($employments as $employment) {
                                 $PluginResourcesEmployment->getFromDB($employment["id"]);
                                 $rank = PluginResourcesRank::transfer($PluginResourcesEmployment->fields["plugin_resources_ranks_id"], $input['entities_id']);
                                 if ($rank > 0) {
                                     $values["id"] = $employment["id"];
                                     $values["plugin_resources_ranks_id"] = $rank;
                                     $PluginResourcesEmployment->update($values);
                                 }
                                 $PluginResourcesEmployment->getFromDB($employment["id"]);
                                 $profession = PluginResourcesProfession::transfer($PluginResourcesEmployment->fields["plugin_resources_professions_id"], $input['entities_id']);
                                 if ($profession > 0) {
                                     $values["id"] = $employment["id"];
                                     $values["plugin_resources_professions_id"] = $profession;
                                     $PluginResourcesEmployment->update($values);
                                 }
                                 $values["id"] = $employment["id"];
                                 $values["entities_id"] = $input['entities_id'];
                                 $PluginResourcesEmployment->update($values);
                             }
                         }
                         unset($values);
                         $PluginResourcesEmployee = new PluginResourcesEmployee();
                         $restrict = "`plugin_resources_resources_id` = '" . $key . "'";
                         $employees = getAllDatasFromTable("glpi_plugin_resources_employees", $restrict);
                         if (!empty($employees)) {
                             foreach ($employees as $employee) {
                                 $employer = PluginResourcesEmployer::transfer($employee["plugin_resources_employers_id"], $input['entities_id']);
                                 if ($employer > 0) {
                                     $values["id"] = $employee["id"];
                                     $values["plugin_resources_employers_id"] = $employer;
                                     $PluginResourcesEmployee->update($values);
                                 }
                                 $client = PluginResourcesClient::transfer($employee["plugin_resources_clients_id"], $input['entities_id']);
                                 if ($client > 0) {
                                     $values["id"] = $employee["id"];
                                     $values["plugin_resources_clients_id"] = $client;
                                     $PluginResourcesEmployee->update($values);
                                 }
                             }
                         }
                         unset($values);
                         $query = "UPDATE `glpi_plugin_resources_checklists`\n                        SET `entities_id` = '" . $input['entities_id'] . "'\n                        WHERE `plugin_resources_resources_id` ='{$key}'";
                         $DB->query($query);
                         $values["id"] = $key;
                         $values["entities_id"] = $input['entities_id'];
                         if ($this->update($values)) {
                             $res['ok']++;
                         } else {
                             $res['ko']++;
                         }
                     }
                 }
             }
             break;
         case "Install":
             foreach ($input["item"] as $key => $val) {
                 if ($val == 1) {
                     $values = array('plugin_resources_resources_id' => $key, 'items_id' => $input["item_item"], 'itemtype' => $input['typeitem']);
                     if ($resource_item->add($values)) {
                         $res['ok']++;
                     } else {
                         $res['ko']++;
                     }
                 }
             }
             break;
         case "Desinstall":
             foreach ($input["item"] as $key => $val) {
                 if ($val == 1) {
                     if ($resource_item->deleteItemByResourcesAndItem($key, $input['item_item'], $input['typeitem'])) {
                         $res['ok']++;
                     } else {
                         $res['ko']++;
                     }
                 }
             }
             break;
         case "Send":
             if ($this->sendEmail($input)) {
                 $res['ok']++;
             } else {
                 $res['ko']++;
             }
             break;
         default:
             return parent::doSpecificMassiveActions($input);
             break;
     }
     return $res;
 }