static function getComputerInformations($ocs_fields = array(), $cfg_ocs, $entities_id, $locations_id = 0) { $input = array(); $input["is_dynamic"] = 1; if ($cfg_ocs["states_id_default"] > 0) { $input["states_id"] = $cfg_ocs["states_id_default"]; } $input["entities_id"] = $entities_id; if ($locations_id) { $input["locations_id"] = $locations_id; } $input['ocsid'] = $ocs_fields['ID']; foreach (self::getOcsFieldsMatching() as $glpi_field => $ocs_field) { if (isset($ocs_fields[$ocs_field])) { $table = getTableNameForForeignKeyField($glpi_field); $ocs_field = Toolbox::encodeInUtf8($ocs_field); //Field a a foreing key if ($table != '') { $itemtype = getItemTypeForTable($table); $item = new $itemtype(); $external_params = array(); foreach ($item->additional_fields_for_dictionnary as $field) { if (isset($ocs_fields[$field])) { $external_params[$field] = $ocs_fields[$field]; } else { $external_params[$field] = ""; } } $input[$glpi_field] = Dropdown::importExternal($itemtype, $ocs_fields[$ocs_field], $entities_id, $external_params); } else { switch ($glpi_field) { default: $input[$glpi_field] = $ocs_fields[$ocs_field]; break; case 'contact': if ($users_id = User::getIDByField('name', $ocs_fields[$ocs_field])) { $input[$glpi_field] = $users_id; } break; case 'comment': $input[$glpi_field] = ''; if (!empty($ocs_fields["DESCRIPTION"]) && $ocs_fields["DESCRIPTION"] != NOT_AVAILABLE) { $input[$glpi_field] .= $ocs_fields["DESCRIPTION"] . "\r\n"; } $input[$glpi_field] .= addslashes(sprintf(__('%1$s %2$s'), $input[$glpi_field], sprintf(__('%1$s: %2$s'), __('Swap', 'ocsinventoryng'), $ocs_fields["SWAP"]))); break; } } } } return $input; }
static function getComputerInformations($ocs_fields = array(), $cfg_ocs, $entities_id, $locations_id = 0) { $input = array(); $input["is_dynamic"] = 1; if ($cfg_ocs["states_id_default"] > 0) { $input["states_id"] = $cfg_ocs["states_id_default"]; } $input["entities_id"] = $entities_id; if ($locations_id) { $input["locations_id"] = $locations_id; } $input['ocsid'] = $ocs_fields['META']['ID']; $ocs_fields_matching = self::getOcsFieldsMatching(); foreach ($ocs_fields_matching as $glpi_field => $ocs_field) { $ocs_section = $ocs_field[0]; $ocs_field = $ocs_field[1]; $table = getTableNameForForeignKeyField($glpi_field); $ocs_val = null; if (array_key_exists($ocs_field, $ocs_fields[$ocs_section])) { $ocs_val = $ocs_fields[$ocs_section][$ocs_field]; } else { if (array_key_exists($ocs_field, $ocs_fields[$ocs_section][0])) { $ocs_val = $ocs_fields[$ocs_section][0][$ocs_field]; } } if (!is_null($ocs_val)) { $ocs_field = Toolbox::encodeInUtf8($ocs_field); //Field is a foreing key if ($table != '') { $itemtype = getItemTypeForTable($table); $item = new $itemtype(); $external_params = array(); foreach ($item->additional_fields_for_dictionnary as $field) { $additional_ocs_section = $ocs_fields_matching[$field][0]; $additional_ocs_field = $ocs_fields_matching[$field][1]; if (isset($ocs_fields[$additional_ocs_section][$additional_ocs_field])) { $external_params[$field] = $ocs_fields[$additional_ocs_section][$additional_ocs_field]; } else { if (isset($ocs_fields[$additional_ocs_section][0][$additional_ocs_field])) { $external_params[$field] = $ocs_fields[$additional_ocs_section][0][$additional_ocs_field]; } else { $external_params[$field] = ""; } } } $input[$glpi_field] = Dropdown::importExternal($itemtype, $ocs_val, $entities_id, $external_params); } else { switch ($glpi_field) { case 'contact': if ($users_id = User::getIDByField('name', $ocs_val)) { $input[$glpi_field] = $users_id; } break; case 'comment': $input[$glpi_field] = ''; if ($ocs_val && $ocs_val != NOT_AVAILABLE) { $input[$glpi_field] .= $ocs_val . "\r\n"; } $input[$glpi_field] .= addslashes(sprintf(__('%1$s %2$s'), $input[$glpi_field], sprintf(__('%1$s: %2$s'), __('Swap', 'ocsinventoryng'), $ocs_fields['HARDWARE']['SWAP']))); break; default: $input[$glpi_field] = $ocs_val; break; } } } } if (intval($cfg_ocs["import_general_name"]) == 0) { unset($input["name"]); } if (intval($cfg_ocs["import_general_os"]) == 0) { unset($input["operatingsystems_id"]); unset($input["operatingsystemversions_id"]); unset($input["operatingsystemservicepacks_id"]); } if (intval($cfg_ocs["import_os_serial"]) == 0) { unset($input["os_license_number"]); unset($input["os_licenseid"]); } if (intval($cfg_ocs["import_general_serial"]) == 0) { unset($input["serial"]); } if (intval($cfg_ocs["import_general_model"]) == 0) { unset($input["model"]); unset($input["computermodels_id"]); } if (intval($cfg_ocs["import_general_manufacturer"]) == 0) { unset($input["manufacturer"]); unset($input["manufacturers_id"]); } if (intval($cfg_ocs["import_general_type"]) == 0) { unset($input["computertypes_id"]); } if (intval($cfg_ocs["import_general_comment"]) == 0) { unset($input["comment"]); } if (intval($cfg_ocs["import_general_contact"]) == 0) { unset($input["contact"]); } if (intval($cfg_ocs["import_general_domain"]) == 0) { unset($input["domains_id"]); } return $input; }