function copySingleVersion($ID)
{
global $DB;
if (isset($this->already_transfer['SoftwareVersion'][$ID])) {
return $this->already_transfer['SoftwareVersion'][$ID];
}
$vers = new SoftwareVersion();
if ($vers->getFromDB($ID)) {
$newsoftID = $this->copySingleSoftware($vers->fields['softwares_id']);
if ($newsoftID == $vers->fields['softwares_id']) {
// no need to copy
$newversID = $ID;
} else {
$query = "SELECT `id`\n FROM `glpi_softwareversions`\n WHERE `softwares_id` = {$newsoftID}\n AND `name` = '" . addslashes($vers->fields['name']) . "'";
if ($data = $DB->request($query)->next()) {
$newversID = $data["id"];
} else {
// create new item (don't check if move possible => clean needed)
unset($vers->fields['id']);
$input = $vers->fields;
$vers->fields = array();
// entities_id and is_recursive from new software are set in prepareInputForAdd
$input['softwares_id'] = $newsoftID;
$newversID = $vers->add(toolbox::addslashes_deep($input));
}
}
$this->addToAlreadyTransfer('SoftwareVersion', $ID, $newversID);
return $newversID;
}
return -1;
}