public function testDelete() { $loc = new Location(); $loc->setBuildingID(1); $loc->setRoom(9999); $loc->save(); $this->assertTrue(Location::locationExists($loc->getBuildingId(), $loc->getRoom()) != false); $loc->delete(); $this->assertTrue(!Location::locationExists($loc->getBuildingId(), $loc->getRoom())); }
/** * sons / ancestors for CommonTreeDropdown */ public function testTree() { $entity = $this->sharedFixture['entity'][0]; $loc = new Location(); // A $id[0] = $loc->add(array('entities_id' => $entity, 'locations_id' => 0, 'name' => 'A')); $this->assertGreaterThan(0, $id[0]); // A > AA $id[1] = $loc->add(array('entities_id' => $entity, 'locations_id' => $id[0], 'name' => 'AA')); $this->assertGreaterThan(0, $id[1]); $this->assertTrue($loc->getFromDB($id[1])); $this->assertEquals('A > AA', $loc->fields['completename']); // A > BB $id[2] = $loc->add(array('entities_id' => $entity, 'locations_id' => $id[0], 'name' => 'BB')); $this->assertGreaterThan(0, $id[2]); $this->assertTrue($loc->getFromDB($id[2])); $this->assertEquals('A > BB', $loc->fields['completename']); // Sons of A (A, AA, BB) $sons = getSonsOf('glpi_locations',$id[0]); $this->assertEquals(3, count($sons)); $this->assertArrayHasKey($id[0], $sons); $this->assertArrayHasKey($id[1], $sons); $this->assertArrayHasKey($id[2], $sons); // Ancestors of A (none) $parent = getAncestorsOf('glpi_locations', $id[0]); $this->assertEquals(0, count($parent)); // Ancestors of AA (A) $parent = getAncestorsOf('glpi_locations', $id[1]); $this->assertEquals(1, count($parent)); $this->assertArrayHasKey($id[0], $parent); // Ancestors of BB (none) $parent = getAncestorsOf('glpi_locations', $id[2]); $this->assertEquals(1, count($parent)); $this->assertArrayHasKey($id[0], $parent); // B $id[3] = $loc->add(array('entities_id' => $entity, 'locations_id' => 0, 'name' => 'B')); $this->assertGreaterThan(0, $id[3]); // B > CC $id[4] = $loc->add(array('entities_id' => $entity, 'locations_id' => $id[3], 'name' => 'CC')); $this->assertGreaterThan(0, $id[4]); $this->assertTrue($loc->getFromDB($id[4])); $this->assertEquals('B > CC', $loc->fields['completename']); $sons = getSonsOf('glpi_locations',$id[3]); $this->assertEquals(2, count($sons)); $this->assertArrayHasKey($id[4], $sons); // B > CC > XXX $id[5] = $loc->add(array('entities_id' => $entity, 'locations_id' => $id[4], 'name' => 'XXX')); $this->assertGreaterThan(0, $id[5]); $this->assertTrue($loc->getFromDB($id[5])); $this->assertEquals('B > CC > XXX', $loc->fields['completename']); // B > CC => A > CC $res = $loc->update(array('id' => $id[4], 'locations_id' => $id[0])); $this->assertTrue($res); $this->assertTrue($loc->getFromDB($id[4])); $this->assertEquals('A > CC', $loc->fields['completename']); // B > CC > XXX => A > CC > XXX $this->assertTrue($loc->getFromDB($id[5])); $this->assertEquals('A > CC > XXX', $loc->fields['completename']); // New parent of CC (A) $parent = getAncestorsOf('glpi_locations', $id[4]); $this->assertEquals(1, count($parent)); $this->assertArrayHasKey($id[0], $parent); // New sons of B (only B) $sons = getSonsOf('glpi_locations',$id[3]); $this->assertEquals(1, count($sons)); $this->assertArrayHasKey($id[3], $sons); // New sons of A (A, AA, BB, CC) $sons = getSonsOf('glpi_locations',$id[0]); $this->assertEquals(5, count($sons)); $this->assertArrayHasKey($id[4], $sons); $this->assertArrayHasKey($id[5], $sons); // Rename A => C $res = $loc->update(array('id' => $id[0], 'name' => 'C')); $this->assertTrue($res); // Check complete name of sons $this->assertTrue($loc->getFromDB($id[4])); $this->assertEquals('C > CC', $loc->fields['completename']); $this->assertTrue($loc->getFromDB($id[5])); $this->assertEquals('C > CC > XXX', $loc->fields['completename']); $this->assertEquals(3, $loc->fields['level']); // Delete CC and move child under B $res = $loc->delete(array('id' => $id[4], '_replace_by' => $id[3])); $this->assertTrue($res); // Sons of B (B and XXX) $sons = getSonsOf('glpi_locations',$id[3]); $this->assertEquals(2, count($sons)); $this->assertArrayHasKey($id[5], $sons); $this->assertTrue($loc->getFromDB($id[5])); $this->assertEquals('B > XXX', $loc->fields['completename']); $this->assertEquals(2, $loc->fields['level']); }
public function process() { // check if session is active $session = new Session($this->sessionId); if ($session->sessionId > 0) { // update session $session->update(); // process restricted functions switch ($this->f) { case 'checkLogin': return Login::checkLogin($session->sessionId); case 'getSession': return $session; case 'getWarehouse': if (isset($this->data->update)) { $warehouse = new Warehouse($session->warehouseId, $this->data->update); } else { $warehouse = new Warehouse($session->warehouseId); } $warehouse->dMail = $warehouse->getMail(); $warehouse->dDisableLocationLess = $warehouse->isLocationLessDisabled(); $warehouse->dDisablePaletteLess = $warehouse->isPaletteLessDisabled(); return $warehouse; case 'editWarehouse': if (!$session->restricted) { $data = $this->data; $warehouse = new Warehouse($session->warehouseId); // update warehouse data if (isset($data->name)) { $warehouse->name = $data->name; } if (isset($data->description)) { $warehouse->description = $data->description; } if (isset($data->country)) { $warehouse->country = $data->country; } if (isset($data->city)) { $warehouse->city = $data->city; } if (isset($data->password)) { $warehouse->setPassword($data->password); } if (isset($data->passwordRestricted)) { $warehouse->setPasswordRestricted($data->passwordRestricted); } if (isset($data->mail)) { $warehouse->setMail($data->mail); } if (isset($data->disableLocationLess)) { $warehouse->setDisableLocationLess($data->disableLocationLess); } if (isset($data->disablePaletteLess)) { $warehouse->setDisablePaletteLess($data->disablePaletteLess); } // update database entry return $warehouse->edit(); } break; case 'deleteWarehouse': if (!$session->restricted) { $warehouse = new Warehouse($session->warehouseId); if ($warehouse->id > 0 && $warehouse->delete()) { return $session->destroy(); } } break; case 'addCategory': if (!$session->restricted && isset($this->data->name)) { $category = new Category(null, $session->warehouseId); $category->name = $this->data->name; if (isset($this->data->parent)) { $category->parent = $this->data->parent; } if ($category->edit()) { return $category->id; } } break; case 'getCategory': if (isset($this->data->id) && isset($this->data->update)) { return new Category($this->data->id, $session->warehouseId, $this->data->update); } elseif (isset($this->data->id)) { return new Category($this->data->id, $session->warehouseId); } break; case 'deleteCategory': if (!$session->restricted && isset($this->data->id)) { $category = new Category($this->data->id, $session->warehouseId); return $category->delete(); } break; case 'editCategory': if (isset($this->data->id)) { $data = $this->data; $category = new Category($this->data->id, $session->warehouseId); if (!$session->restricted) { if (isset($data->name)) { $category->name = $data->name; } if (isset($data->parent)) { $category->parent = $data->parent; } if (isset($data->male)) { $category->male = $data->male; } if (isset($data->female)) { $category->female = $data->female; } if (isset($data->children)) { $category->children = $data->children; } if (isset($data->baby)) { $category->baby = $data->baby; } if (isset($data->summer)) { $category->summer = $data->summer; } if (isset($data->winter)) { $category->winter = $data->winter; } } if (isset($data->demand)) { $category->demand = $data->demand; } if (isset($data->weight)) { $category->weight = $data->weight; } return $category->edit(); } break; case 'getCategories': if (isset($this->data->parent)) { return Category::getCategories($session->warehouseId, $this->data->parent); } else { return Category::getCategories($session->warehouseId); } case 'addLocation': if (!$session->restricted && isset($this->data->name)) { $location = new Location(null, $session->warehouseId); $location->name = $this->data->name; if ($location->edit()) { return $location->id; } return true; } break; case 'getLocation': if (isset($this->data->id) && isset($this->data->update)) { return new Location($this->data->id, $session->warehouseId, $this->data->update); } elseif (isset($this->data->id)) { return new Location($this->data->id, $session->warehouseId); } break; case 'deleteLocation': if (!$session->restricted && isset($this->data->id)) { $location = new Location($this->data->id, $session->warehouseId); return $location->delete(); } break; case 'editLocation': if (!$session->restricted && isset($this->data->id) && isset($this->data->name)) { $location = new Location($this->data->id, $session->warehouseId); $location->name = $this->data->name; return $location->edit(); } break; case 'getLocations': return Location::getLocations($session->warehouseId); case 'addPalette': $palette = new Palette(null, $session->warehouseId); if (isset($this->data->locationId)) { $palette->locationId = $this->data->locationId; } if ($palette->edit()) { return $palette->id; } break; case 'getPalette': if (isset($this->data->id) && isset($this->data->update)) { return new Palette($this->data->id, $session->warehouseId, $this->data->update); } elseif (isset($this->data->id)) { return new Palette($this->data->id, $session->warehouseId); } break; case 'deletePalette': if (isset($this->data->id)) { $palette = new Palette($this->data->id, $session->warehouseId); return $palette->delete(); } break; case 'editPalette': if (isset($this->data->id)) { $palette = new Palette($this->data->id, $session->warehouseId); if (isset($this->data->locationId)) { $palette->locationId = $this->data->locationId; } return $palette->edit(); } break; case 'getPalettes': return Palette::getPalettes($session->warehouseId); case 'getCarton': if (isset($this->data->id) && isset($this->data->update)) { return new Carton($this->data->id, $session->warehouseId, null, null, $this->data->update); } elseif (isset($this->data->id)) { return new Carton($this->data->id, $session->warehouseId); } break; case 'addCarton': $locationId = null; $paletteId = null; if (isset($this->data->location)) { $locationId = $this->data->location; } if (isset($this->data->palette)) { $paletteId = $this->data->palette; } $carton = new Carton(null, $session->warehouseId, $locationId, $paletteId); return $carton->id; case 'deleteCarton': if (isset($this->data->id)) { $carton = new Carton($this->data->id, $session->warehouseId); return $carton->delete(); } break; case 'editCarton': if (isset($this->data->id)) { $carton = new Carton($this->data->id, $session->warehouseId); if (isset($this->data->location)) { $carton->locationId = $this->data->location; } else { $carton->locationId = null; } if (isset($this->data->palette)) { $carton->paletteId = $this->data->palette; } else { $carton->paletteId = null; } return $carton->edit(); } break; case 'addArticle': if (isset($this->data->carton) && isset($this->data->category) && isset($this->data->amount)) { return Stock::addArticle($this->data->carton, $this->data->category, isset($this->data->male) ? $this->data->male : false, isset($this->data->female) ? $this->data->female : false, isset($this->data->children) ? $this->data->children : false, isset($this->data->baby) ? $this->data->baby : false, isset($this->data->winter) ? $this->data->winter : false, isset($this->data->summer) ? $this->data->summer : false, $this->data->amount >= 0 ? $this->data->amount : 0, $this->data->amount < 0 ? $this->data->amount : 0); } break; case 'getStock': return Stock::getStock($session->warehouseId, isset($this->data->carton) ? $this->data->carton : null, isset($this->data->category) ? $this->data->category : null, isset($this->data->palette) ? $this->data->palette : null, isset($this->data->location) ? $this->data->location : null, isset($this->data->male) ? $this->data->male : false, isset($this->data->female) ? $this->data->female : false, isset($this->data->children) ? $this->data->children : false, isset($this->data->baby) ? $this->data->male : false, isset($this->data->summer) ? $this->data->male : false, isset($this->data->winter) ? $this->data->male : false, isset($this->data->details) ? $this->data->details : false); case 'getBarcodeUri': if (isset($this->data->text)) { // create barcode object $bc = new Barcode39($this->data->text); if (isset($this->data->textSize)) { $bc->barcode_text_size = $this->data->textSize; } if (isset($this->data->barThin)) { $bc->barcode_bar_thin = $this->data->barThin; } if (isset($this->data->barThick)) { $bc->barcode_bar_thick = $this->data->barThick; } // generate barcode image $img = "barcode_" . mt_rand(0, 100) . ".png"; $bc->draw($img); // get data uri $uri = Barcode39::getDataURI($img); unlink($img); return $uri; } break; } } else { // process unrestricted function switch ($this->f) { case 'getActiveSessions': return Session::getActiveSessionsNumber(); case 'getWarehouses': return Warehouse::getWarehouses(); case 'addWarehouse': $data = $this->data; if (isset($data->name) && isset($data->description) && isset($data->country) && isset($data->city) && isset($data->password) && isset($data->mail)) { $warehouse = new Warehouse(); Log::debug('new warehouse' . $warehouse->id); $warehouse->name = $data->name; $warehouse->description = $data->description; $warehouse->country = $data->country; $warehouse->city = $data->city; $warehouse->setPassword($data->password); $warehouse->setMail($data->mail); return $warehouse->edit(); } break; case 'getCountries': return getCountries(); break; case 'getCountryCode': $data = $this->data; if (isset($data->name)) { return getCountryCode(null, $data->name); } return false; } } return false; }
public static function delete($id) { session_start(); $headers = apache_request_headers(); $token = $headers['X-Auth-Token']; if ($token != $_SESSION['form_token']) { header('Invalid CSRF Token', true, 401); return print json_encode(array('success' => false, 'status' => 400, 'msg' => 'Invalid CSRF Token / Bad Request / Unauthorized ... Please Login again'), JSON_PRETTY_PRINT); } else { Location::delete($id); } }
public function hookAfterSaveItem($args) { if (!($post = $args['post'])) { return; } $item = $args['record']; // If we don't have the geolocation form on the page, don't do anything! if (!isset($post['geolocation'])) { return; } // Find the location object for the item $location = $this->_db->getTable('Location')->findLocationByItem($item, true); // If we have filled out info for the geolocation, then submit to the db $geolocationPost = $post['geolocation']; if (!empty($geolocationPost) && $geolocationPost['latitude'] != '' && $geolocationPost['longitude'] != '') { if (!$location) { $location = new Location(); $location->item_id = $item->id; } $location->setPostData($geolocationPost); # echo "<pre>". print_r($location,true) ."</pre>"; die(); $location->save(); } else { // If the form is empty, then we want to delete whatever location is // currently stored if ($location) { $location->delete(); } } }
/** * Allows a user to delete a location * */ public function deleteAction() { $get = Zend_Registry::get('getFilter'); if (!isset($get->locationId)) { throw new Ot_Exception_Input('msg-error-locationIdNotSet'); } $location = new Location(); $thisLocation = $location->find($get->locationId); if (is_null($thisLocation)) { throw new Ot_Exception_Data('msg-error-noLocation'); } $this->view->location = $thisLocation; $form = Ot_Form_Template::delete('deleteForm'); if ($this->_request->isPost() && $form->isValid($_POST)) { $where = $location->getAdapter()->quoteInto('locationId = ?', $get->locationId); $location->delete($where); $this->_helper->flashMessenger->addMessage('msg-info-locationDeleted'); $this->_helper->redirector->gotoUrl('/workshop/location/index'); } $this->_helper->pageTitle('workshop-location-delete:title'); $this->view->form = $form; }
/** * test deleting a Location that does not exist * * @expectedException PDOException **/ public function testDeleteInvalidLocation() { // create a Location and try to delete it without actually inserting it $location = new Location(null, $this->VALID_storageCode, $this->VALID_description); $location->delete($this->getPDO()); }
/** * @throws LocationIDMissingException */ public static function delete() { if ($_GET['id']) { if ($_GET['sure'] != "true") { $template = new HTMLTemplate("location/admin/location/delete.html"); $paramquery = $_GET; $paramquery['sure'] = "true"; $params = http_build_query($paramquery); $template->set_var("yes_params", $params); $paramquery = $_GET; unset($paramquery['sure']); unset($paramquery['action']); unset($paramquery['id']); $params = http_build_query($paramquery, '', '&'); $template->set_var("no_params", $params); $template->output(); } else { $paramquery = $_GET; unset($paramquery['sure']); unset($paramquery['action']); unset($paramquery['id']); $params = http_build_query($paramquery, '', '&'); $location = new Location($_GET['id']); if ($location->delete()) { Common_IO::step_proceed($params, "Delete Location", "Operation Successful", null); } else { Common_IO::step_proceed($params, "Delete Location", "Operation Failed", null); } } } else { throw new LocationIDMissingException(); } }