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