function DeleteDepartment($TransferTo = null) { // Make sure we have a real department to delete so we don't pull some bonehead move and delete everything set to 0 if (!$this->GetDeptByID()) { return false; } // Get people and objects that still belong to this department $dev = new Device(); $cab = new Cabinet(); $dev->Owner = $cab->AssignedTo = $this->DeptID; $person = new People(); $devices = $dev->GetDevicesbyOwner(); $cabinets = $cab->GetCabinetsByDept(); $users = $person->GetPeopleByDepartment($this->DeptID); foreach ($devices as $d) { // We've designated a new owner for this equipment, zero is valid as they might be setting it to general if (!is_null($TransferTo)) { $d->Owner = $TransferTo; $d->UpdateDevice(); } else { // This option is not being provided but us at this time, maybe through the API $d->DeleteDevice(); } } foreach ($cabinets as $c) { // We've designated a new owner for these cabinets, zero is valid as they might be setting it to general if (!is_null($TransferTo)) { $c->AssignedTo = $TransferTo; $c->UpdateCabinet(); } else { // This option is not being provided but us at this time, maybe through the API $c->DeleteCabinet(); } } foreach ($users as $p) { // If we don't have a value over 0 then we're just removing this department and they won't be added to another group if (!is_null($TransferTo) && intval($TransferTo) > 0) { // Add this user into the new department $sql = "INSERT INTO fac_DeptContacts SET DeptID=" . intval($TransferTo) . ", ContactID={$p->PersonID};"; $this->exec($sql); } } // Clear any users from this department $sql = "DELETE FROM fac_DeptContacts WHERE DeptID={$this->DeptID};"; $this->exec($sql); // By this point all devices, objects, and users should have been shoved into a new department so finish cleaning up. $sql = "DELETE FROM fac_Department WHERE DeptID={$this->DeptID};"; if (!$this->exec($sql)) { global $dbh; $info = $dbh->errorInfo(); error_log("PDO Error: {$info[2]} SQL={$sql}"); return false; } class_exists('LogActions') ? LogActions::LogThis($this) : ''; return true; }
$tmp['DataCenterName'] = $dc->Name; array_push($response['cabinet'], $tmp); } echoResponse(200, $response); }); // // URL: /api/v1/cabinet/bydept/:deptid // Method: GET // Params: deptid (passed in URL) // Returns: All cabinet information for cabinets assigned to supplied deptid // $app->get('/cabinet/bydept/:deptid', function ($deptid) { $cab = new Cabinet(); $dc = new DataCenter(); $cab->DeptID = $deptid; $cList = $cab->GetCabinetsByDept(); $response['error'] = false; $response['errorcode'] = 200; $response['cabinet'] = array(); foreach ($cList as $c) { $tmp = array(); foreach ($c as $prop => $value) { $tmp[$prop] = $value; } if ($dc->DataCenterID != $c->DataCenterID) { $dc->DataCenterID = $c->DataCenterID; $dc->GetDataCenter(); } $tmp['DataCenterName'] = $dc->Name; array_push($response['cabinet'], $tmp); }
require_once 'db.inc.php'; require_once 'facilities.inc.php'; $subheader = __("Data Center Department Detail"); if (!$person->ContactAdmin) { // No soup for you. header('Location: ' . redirect()); exit; } // AJAX requests if (isset($_GET['objectcount'])) { $cab = new Cabinet(); $dev = new Device(); $cab->AssignedTo = $dev->Owner = $_GET['deptid']; $return = array(); $return['cabinets'] = count($cab->GetCabinetsByDept()); $return['devices'] = count($dev->GetDevicesbyOwner()); $return['people'] = count($person->GetPeopleByDepartment($dev->Owner)); header('Content-Type: application/json'); echo json_encode($return); exit; } if (isset($_POST['action']) && $_POST["action"] == "Delete") { header('Content-Type: application/json'); $response = false; if (isset($_POST["TransferTo"])) { $dept = new Department(); $dept->DeptID = $_POST['deptid']; if ($dept->DeleteDepartment($_POST["TransferTo"])) { $response = true; }