Example #1
0
 /**
  * Applies a custom query to the QueryBuilder
  * 
  * @param QueryBuilder $qb The query builder
  * @param ManagerFilter $filter The query filter
  */
 protected function applyCustomQuery(QueryBuilder $qb, ManagerFilter $filter)
 {
     // Apply special handling for non-direct fields in relations, where the frontend has no idea about.
     foreach ($filter->getSorters() as $sorter) {
         switch ($sorter->getSortField()) {
             case "q.part_name":
                 $qb->join("q.part", "p");
                 $sorter->setSortField("p.name");
                 break;
             case "q.user_id":
                 $qb->leftJoin("q.user", "u");
                 $sorter->setSortField("u.username");
                 break;
             case "q.direction":
                 $sorter->setSortField("q.dateTime");
                 break;
             case "q.storageLocation_name":
                 $qb->join("q.part", "p")->join("p.storageLocation", "st");
                 $sorter->setSortField("st.name");
                 break;
             default:
                 break;
         }
     }
 }
Example #2
0
 public function get()
 {
     if ($this->hasParameter("id")) {
         return array("data" => PartManager::getInstance()->getPart($this->getParameter("id"))->serialize());
     } else {
         $filter = new ManagerFilter($this);
         $filter->setFilterCallback(array($this, "filterCallback"));
         return PartManager::getInstance()->getList($filter);
     }
 }
 /**
  * (non-PHPdoc)
  * @see PartKeepr\Service.RestfulService::get()
  */
 public function get()
 {
     if ($this->hasParameter("id")) {
         return array("data" => SystemNoticeManager::getInstance()->getEntity($this->getParameter("id"))->serialize());
     } else {
         $parameters = new ManagerFilter($this);
         $parameters->setFilterCallback(array($this, "filterCallback"));
         return SystemNoticeManager::getInstance()->getList($parameters);
     }
 }
Example #4
0
 /**
  * (non-PHPdoc)
  * @see PartKeepr\Service.RestfulService::get()
  */
 public function get()
 {
     if ($this->hasParameter("id")) {
         return array("data" => ProjectManager::getInstance()->getEntity($this->getParameter("id"))->serialize());
     } else {
         $parameters = new ManagerFilter($this);
         $parameters->setFilterField("name");
         return ProjectManager::getInstance()->getList($parameters);
     }
 }
 /**
  * (non-PHPdoc)
  * @see \PartKeepr\Service\RestfulService::get()
  */
 public function get()
 {
     if ($this->hasParameter("id")) {
         $job = PrintingJobManager::getInstance()->getEntity($this->getParameter("id"));
         $this->checkPermission($job);
         return array("data" => $job->serialize());
     } else {
         $filter = new ManagerFilter($this);
         $filter->setFilterCallback(array($this, "filterCallback"));
         return PrintingJobManager::getInstance()->getList($filter);
     }
 }
Example #6
0
 /**
  * Implements the get() call for the RestfulService.
  * 
  * If the "id" parameter is passed, try to return the user by id. If not,
  * return a list.
  * 
  * @see PartKeepr\Service.RestfulService::get()
  */
 public function get()
 {
     if ($this->hasParameter("id")) {
         if (!SessionManager::getCurrentSession()->getUser()->isAdmin()) {
             throw new \Exception("Permission denied");
         }
         return array("data" => UserManager::getInstance()->getUser($this->getParameter("id"))->serialize());
     } else {
         $filter = new ManagerFilter($this);
         $filter->setFilterCallback(array($this, "filterCallback"));
         return UserManager::getInstance()->getList($filter);
     }
 }
Example #7
0
 /**
  * (non-PHPdoc)
  * @see PartKeepr\Service.RestfulService::get()
  */
 public function get()
 {
     if ($this->hasParameter("id")) {
         return array("data" => StockManager::getInstance()->getEntity($this->getParameter("id"))->serialize());
     } else {
         $parameters = new ManagerFilter($this);
         $parameters->setFilterField("name");
         if ($this->hasParameter("part")) {
             $parameters->setFilterCallback(array($this, "filterCallback"));
         }
         return StockManager::getInstance()->getList($parameters);
     }
 }
Example #8
0
 /**
  * Appends various join tables to the result set
  * 
  * (non-PHPdoc)
  * @see PartKeepr\Manager.AbstractManager::applyCustomQuery()
  */
 protected function applyCustomQuery(QueryBuilder $qb, ManagerFilter $filter)
 {
     /**
      * Pull in additional tables
      */
     $qb->join("q.storageLocation", "st")->leftJoin("q.footprint", "f")->join("q.category", "c")->leftJoin("q.partUnit", "pu");
     // Apply special handling for non-direct fields in relations, where the frontend has no idea about.
     foreach ($filter->getSorters() as $sorter) {
         switch ($sorter->getSortField()) {
             case "q.categoryPath":
                 $sorter->setSortField("c.categoryPath");
                 break;
             case "q.storageLocationName":
                 $sorter->setSortField("st.name");
                 break;
             case "q.footprintName":
                 $sorter->setSortField("f.name");
                 break;
             default:
                 break;
         }
     }
 }
 /**
  * Applies record sorting
  * 
  * @param QueryBuilder $qb The query builder
  * @param ManagerFilter $filter The query filter
  */
 protected function applySorting(QueryBuilder $qb, ManagerFilter $filter)
 {
     foreach ($filter->getSorters() as $sorter) {
         if ($sorter->getSortField() !== null && $sorter->getSortField() != "q.") {
             $qb->addOrderBy($sorter->getSortField(), $sorter->getSortDirection());
         }
     }
 }