/** * Do automatic transfer if option is enable * * @param $line_links array : data from glpi_plugin_ocsinventoryng_ocslinks table * @param $line_ocs array : data from ocs tables * * @return nothing **/ static function transferComputer($line_links, $line_ocs) { global $DB, $PluginOcsinventoryngDBocs, $CFG_GLPI; // Get all rules for the current plugin_ocsinventoryng_ocsservers_id $rule = new RuleImportEntityCollection(); $data = array(); $data = $rule->processAllRules(array('ocsservers_id' => $line_links["plugin_ocsinventoryng_ocsservers_id"], '_source' => 'ocsinventoryng'), array(), array('ocsid' => $line_links["ocsid"])); // If entity is changing move items to the new entities_id if (isset($data['entities_id']) && $data['entities_id'] != $line_links['entities_id']) { if (!isCommandLine() && !Session::haveAccessToEntity($data['entities_id'])) { Html::displayRightError(); } $transfer = new Transfer(); $transfer->getFromDB($CFG_GLPI['transfers_id_auto']); $item_to_transfer = array("Computer" => array($line_links['computers_id'] => $line_links['computers_id'])); $transfer->moveItems($item_to_transfer, $data['entities_id'], $transfer->fields); } //If location is update by a rule self::updateLocation($line_links, $data); }
/** * Do automatic transfer if option is enable * * @param $line_links array : data from glpi_plugin_ocsinventoryng_ocslinks table * @return nothing * @internal param array $line_ocs : data from ocs tables * */ static function transferComputer($line_links) { global $DB, $CFG_GLPI; $ocsClient = self::getDBocs($line_links["plugin_ocsinventoryng_ocsservers_id"]); $cfg_ocs = self::getConfig($line_links["plugin_ocsinventoryng_ocsservers_id"]); $ocsComputer = $ocsClient->getComputer($line_links["ocsid"]); $locations_id = 0; $contact = isset($ocsComputer['META']["USERID"]) ? $ocsComputer['META']["USERID"] : ""; if (!empty($contact)) { $query = "SELECT `id`\n FROM `glpi_users`\n WHERE `name` = '" . $contact . "';"; $result = $DB->query($query); if ($DB->numrows($result) == 1) { $user_id = $DB->result($result, 0, 0); $user = new User(); $user->getFromDB($user_id); $locations_id = $user->fields["locations_id"]; } } // Get all rules for the current plugin_ocsinventoryng_ocsservers_id $rule = new RuleImportEntityCollection(); $data = array(); $data = $rule->processAllRules(array('ocsservers_id' => $line_links["plugin_ocsinventoryng_ocsservers_id"], '_source' => 'ocsinventoryng', 'locations_id' => $locations_id), array('locations_id' => $locations_id), array('ocsid' => $line_links["ocsid"])); // If entity is changing move items to the new entities_id if (isset($data['entities_id']) && $data['entities_id'] > -1 && $data['entities_id'] != $line_links['entities_id']) { if (!isCommandLine() && !Session::haveAccessToEntity($data['entities_id'])) { Html::displayRightError(); } $transfer = new Transfer(); $transfer->getFromDB($CFG_GLPI['transfers_id_auto']); $item_to_transfer = array("Computer" => array($line_links['computers_id'] => $line_links['computers_id'])); $transfer->moveItems($item_to_transfer, $data['entities_id'], $transfer->fields); } //If location is update by a rule self::updateLocation($line_links, $data, $cfg_ocs); }