/** * @param $params array * * @return bool * @return bool */ static function computerImport($params = array()) { if (isset($params['id'])) { $notimported = new PluginOcsinventoryngNotimportedcomputer(); $notimported->getFromDB($params['id']); $changes = self::getOcsComputerInfos($notimported->fields); if (isset($params['force'])) { $result = PluginOcsinventoryngOcsServer::processComputer($notimported->fields['ocsid'], $notimported->fields['plugin_ocsinventoryng_ocsservers_id'], 0, $params['entity'], 0); } else { $result = PluginOcsinventoryngOcsServer::processComputer($notimported->fields['ocsid'], $notimported->fields['plugin_ocsinventoryng_ocsservers_id'], 0, -1, -1); } if (in_array($result['status'], array(PluginOcsinventoryngOcsServer::COMPUTER_IMPORTED, PluginOcsinventoryngOcsServer::COMPUTER_LINKED, PluginOcsinventoryngOcsServer::COMPUTER_SYNCHRONIZED))) { $notimported->delete(array('id' => $params['id'])); //If serial has been changed in order to import computer if (in_array('serial', $changes)) { PluginOcsinventoryngOcsServer::mergeOcsArray($result['computers_id'], array('serial'), "computer_update"); } return true; } else { Session::addMessageAfterRedirect(self::getReason($result['status']), false, ERROR); return false; } $tmp = $notimported->fields; $tmp['reason'] = $result['status']; if (isset($result['entities_id'])) { $tmp["entities_id"] = $result['entities_id']; } else { $tmp['entities_id'] = 0; } $tmp["rules_id"] = json_encode($result['rule_matched']); $notimported->update($tmp); return false; } }