Transfer::transferNetworkLink PHP Method

    function transferNetworkLink($itemtype, $ID, $newID)
    {
        global $DB;
        /// TODO manage with new network system
        $np = new NetworkPort();
        $nn = new NetworkPort_NetworkPort();
        $query = "SELECT `glpi_networkports`.*, `glpi_networkportethernets`.`netpoints_id`\n                FROM `glpi_networkports`\n                LEFT JOIN `glpi_networkportethernets`\n                  ON (`glpi_networkports`.`id` = `glpi_networkportethernets`.`networkports_id`)\n                WHERE `glpi_networkports`.`items_id` = '{$ID}'\n                      AND `glpi_networkports`.`itemtype` = '{$itemtype}'";
        if ($result = $DB->query($query)) {
            if ($DB->numrows($result) != 0) {
                switch ($this->options['keep_networklink']) {
                    // Delete netport
                    case 0:
                        // Not a copy -> delete
                        if ($ID == $newID) {
                            while ($data = $DB->fetch_assoc($result)) {
                                $np->delete(array('id' => $data['id']));
                            }
                        }
                        // Copy -> do nothing
                        break;
                        // Disconnect
                    // Disconnect
                    case 1:
                        // Not a copy -> disconnect
                        if ($ID == $newID) {
                            while ($data = $DB->fetch_assoc($result)) {
                                if ($nn->getFromDBForNetworkPort($data['id'])) {
                                    $nn->delete($data);
                                }
                                if ($data['netpoints_id']) {
                                    $netpointID = $this->transferDropdownNetpoint($data['netpoints_id']);
                                    $input['id'] = $data['id'];
                                    $input['netpoints_id'] = $netpointID;
                                    $np->update($input);
                                }
                            }
                        } else {
                            // Copy -> copy netports
                            while ($data = $DB->fetch_assoc($result)) {
                                $data = Toolbox::addslashes_deep($data);
                                unset($data['id']);
                                $data['items_id'] = $newID;
                                $data['netpoints_id'] = $this->transferDropdownNetpoint($data['netpoints_id']);
                                unset($np->fields);
                                $np->add(toolbox::addslashes_deep($data));
                            }
                        }
                        break;
                        // Keep network links
                    // Keep network links
                    default:
                        // Copy -> Copy netpoints (do not keep links)
                        if ($ID != $newID) {
                            while ($data = $DB->fetch_assoc($result)) {
                                unset($data['id']);
                                $data['items_id'] = $newID;
                                $data['netpoints_id'] = $this->transferDropdownNetpoint($data['netpoints_id']);
                                unset($np->fields);
                                $np->add(toolbox::addslashes_deep($data));
                            }
                        } else {
                            while ($data = $DB->fetch_assoc($result)) {
                                // Not a copy -> only update netpoint
                                if ($data['netpoints_id']) {
                                    $netpointID = $this->transferDropdownNetpoint($data['netpoints_id']);
                                    $input['id'] = $data['id'];
                                    $input['netpoints_id'] = $netpointID;
                                    $np->update($input);
                                }
                            }
                        }
                }
            }
        }
    }