function post_addItem() { global $DB; // Manage add from template if (isset($this->input["_oldID"])) { // ADD Infocoms $ic = new Infocom(); if ($this->canUseInfocoms() && $ic->getFromDBforDevice($this->type, $this->input["_oldID"])) { $ic->fields["items_id"] = $this->fields['id']; unset($ic->fields["id"]); if (isset($ic->fields["immo_number"])) { $ic->fields["immo_number"] = autoName($ic->fields["immo_number"], "immo_number", 1, 'Infocom', $this->input['entities_id']); } if (empty($ic->fields['use_date'])) { unset($ic->fields['use_date']); } if (empty($ic->fields['buy_date'])) { unset($ic->fields['buy_date']); } $ic->addToDB(); } foreach (array('Document_Item' => 'documents_id', 'Contract_Item' => 'contracts_id') as $type => $fk) { $item = new $type(); foreach ($item->find("items_id='" . $this->input["_oldID"] . "'\n AND itemtype='" . $this->type . "'") as $tmpid => $data) { $tmp = array(); $tmp['items_id'] = $this->input["_oldID"]; $tmp['itemtype'] = $type; $tmp[$fk] = $data[$fk]; $item->add($tmp); } } if ($this->canUseNetworkPorts()) { // ADD Ports $query = "SELECT `id`\n FROM `glpi_networkports`\n WHERE `items_id` = '" . $this->input["_oldID"] . "'\n AND `itemtype` = '" . get_called_class() . "';"; $result = $DB->query($query); if ($DB->numrows($result) > 0) { while ($data = $DB->fetch_array($result)) { $np = new NetworkPort(); $npv = new NetworkPort_Vlan(); $np->getFromDB($data["id"]); unset($np->fields["id"]); unset($np->fields["ip"]); unset($np->fields["mac"]); unset($np->fields["netpoints_id"]); $np->fields["items_id"] = $this->fields['id']; $portid = $np->addToDB(); foreach ($DB->request('glpi_networkports_vlans', array('networkports_id' => $data["id"])) as $vlan) { $npv->assignVlan($portid, $vlan['vlans_id']); } } } } } }
function post_addItem() { global $DB, $CFG_GLPI; // Manage add from template if (isset($this->input["_oldID"])) { // ADD Infocoms $ic = new Infocom(); $ic->cloneItem($this->getType(), $this->input["_oldID"], $this->fields['id']); // ADD Ports $query = "SELECT `id`\n FROM `glpi_networkports`\n WHERE `items_id` = '" . $this->input["_oldID"] . "'\n AND `itemtype` = '" . $this->getType() . "'"; $result = $DB->query($query); if ($DB->numrows($result) > 0) { while ($data = $DB->fetch_array($result)) { $np = new NetworkPort(); $npv = new NetworkPort_Vlan(); $np->getFromDB($data["id"]); unset($np->fields["id"]); unset($np->fields["ip"]); unset($np->fields["mac"]); unset($np->fields["netpoints_id"]); $np->fields["items_id"] = $this->fields['id']; $portid = $np->addToDB(); foreach ($DB->request('glpi_networkports_vlans', array('networkports_id' => $data["id"])) as $vlan) { $npv->assignVlan($portid, $vlan['vlans_id']); } } } // ADD Contract $query = "SELECT `contracts_id`\n FROM `glpi_contracts_items`\n WHERE `items_id` = '" . $this->input["_oldID"] . "'\n AND `itemtype` = '" . $this->getType() . "'"; $result = $DB->query($query); if ($DB->numrows($result) > 0) { $contractitem = new Contract_Item(); while ($data = $DB->fetch_array($result)) { $contractitem->add(array('contracts_id' => $data["contracts_id"], 'itemtype' => $this->getType(), 'items_id' => $this->fields['id'])); } } // ADD Documents $query = "SELECT `documents_id`\n FROM `glpi_documents_items`\n WHERE `items_id` = '" . $this->input["_oldID"] . "'\n AND `itemtype` = '" . $this->getType() . "'"; $result = $DB->query($query); if ($DB->numrows($result) > 0) { $docitem = new Document_Item(); while ($data = $DB->fetch_array($result)) { $docitem->add(array('documents_id' => $data["documents_id"], 'itemtype' => $this->getType(), 'items_id' => $this->fields['id'])); } } } }