Transfer::copySingleVersion PHP Method

copySingleVersion() public method

Copy (if needed) One softwareversion to the Dest Entity
public copySingleVersion ( $ID )
$ID of the version
    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;
    }