/** * if Computer_Item deleted * * @param $comp Computer_Item object **/ static function purgeComputer_Item(Computer_Item $comp) { global $DB; if ($device = getItemForItemtype($comp->fields['itemtype'])) { if ($device->getFromDB($comp->fields['items_id'])) { if (isset($comp->input['_ocsservers_id'])) { $ocsservers_id = $comp->input['_ocsservers_id']; } else { $ocsservers_id = PluginOcsinventoryngOcsServer::getByMachineID($comp->fields['computers_id']); } if ($ocsservers_id > 0) { //Get OCS configuration $ocs_config = PluginOcsinventoryngOcsServer::getConfig($ocsservers_id); //Get the management mode for this device $mode = PluginOcsinventoryngOcsServer::getDevicesManagementMode($ocs_config, $comp->fields['itemtype']); $decoConf = $ocs_config["deconnection_behavior"]; //Change status if : // 1 : the management mode IS NOT global // 2 : a deconnection's status have been defined // 3 : unique with serial if ($mode >= 2 && strlen($decoConf) > 0) { //Delete periph from glpi // if ($decoConf == "delete") { // $tmp["id"] = $comp->fields['items_id']; // $device->delete(array('id' => $tmp['id']), 1); // Put periph in dustbin // } else if ($decoConf == "trash") { // $tmp["id"] = $comp->fields['items_id']; // $device->delete(array('id' => $tmp['id']), 0); // } if ($decoConf == "delete") { $tmp["id"] = $comp->getID(); $query = "DELETE\n FROM `glpi_computers_items`\n WHERE `id`='" . $tmp['id'] . "'"; $result = $DB->query($query); //Put periph in dustbin } else { if ($decoConf == "trash") { $tmp["id"] = $comp->getID(); $query = "UPDATE\n `glpi_computers_items`\n\t\t\t\t\t\t SET `is_deleted` = 1\n WHERE `id`='" . $tmp['id'] . "'"; $result = $DB->query($query); } } } } // $ocsservers_id>0 } } }