/** * Deletes the footprint with the given id. * * @param int $id The footprint id to delete * @throws \PartKeepr\Util\SerializableException */ public function deleteFootprint($id) { $footprint = Footprint::loadById($id); try { PartKeepr::getEM()->remove($footprint); PartKeepr::getEM()->flush(); } catch (\PDOException $e) { if ($e->getCode() == "23000") { $exception = new SerializableException(sprintf(PartKeepr::i18n("Footprint %s is in use by some parts!"), $footprint->getName())); $exception->setDetail(sprintf(PartKeepr::i18n("You tried to delete the footprint %s, but there are parts which use this footprint."), $footprint->getName())); throw $exception; } } }
public function create() { $this->requireParameter("name"); $storageLocation = new StorageLocation(); $storageLocation->deserialize($this->getParameters()); PartKeepr::getEM()->persist($storageLocation); try { PartKeepr::getEM()->flush(); } catch (\PDOException $e) { if ($e->getCode() == "23505") { $exception = new SerializableException(sprintf(PartKeepr::i18n("Storage Location %s already exists!"), $storageLocation->getName())); $exception->setDetail(sprintf(PartKeepr::i18n("You tried to add the storage location %s, but a storage location with the same name already exists."), $storageLocation->getName())); throw $exception; } else { throw $e; } } return array("data" => $storageLocation->serialize()); }
/** * Deletes the given category ID. * @param $id int The category id to delete * @throws CategoryNotFoundException If the category wasn't found */ public function deleteCategory($id) { $category = $this->getCategory($id); try { if ($category->hasChildren()) { $exception = new SerializableException(sprintf(PartKeepr::i18n("Category '%s' contains other categories."), $category->getNode()->getName())); $exception->setDetail(sprintf(PartKeepr::i18n("You tried to delete the category '%s', but it still contains other categories. Please move the categories or delete them first."), $category->getNode()->getName())); throw $exception; } parent::deleteCategory($id); } catch (\PDOException $e) { if ($e->getCode() == "23000") { $exception = new SerializableException(sprintf(PartKeepr::i18n("Category '%s' contains parts."), $category->getNode()->getName())); $exception->setDetail(sprintf(PartKeepr::i18n("You tried to delete the category '%s', but it still contains parts. Please move the parts to another category."), $category->getNode()->getName())); throw $exception; } else { throw $e; } } }