Example #1
0
 /**
  * @inheritdoc
  */
 public function toCriteria()
 {
     $criteria = new Criteria();
     if ($this->filterTransfer->getLimit() !== null) {
         $criteria->setLimit($this->filterTransfer->getLimit());
     }
     if ($this->filterTransfer->getOffset() !== null) {
         $criteria->setOffset($this->filterTransfer->getOffset());
     }
     if ($this->filterTransfer->getOrderBy() !== null) {
         if ($this->filterTransfer->getOrderDirection() === 'ASC') {
             $criteria->addAscendingOrderByColumn($this->filterTransfer->getOrderBy());
         } elseif ($this->filterTransfer->getOrderDirection() === 'DESC') {
             $criteria->addDescendingOrderByColumn($this->filterTransfer->getOrderBy());
         }
     }
     return $criteria;
 }
Example #2
0
 public function testMssqlApplyLimitWithOffsetMultipleOrderBy()
 {
     $db = Propel::getServiceContainer()->getAdapter(BookTableMap::DATABASE_NAME);
     if (!$db instanceof MssqlAdapter) {
         $this->markTestSkipped('Configured database vendor is not MsSQL');
     }
     $c = new Criteria(BookTableMap::DATABASE_NAME);
     $c->addSelectColumn(BookTableMap::COL_ID);
     $c->addSelectColumn(BookTableMap::COL_TITLE);
     $c->addSelectColumn(PublisherTableMap::COL_NAME);
     $c->addAsColumn('PublisherName', '(SELECT MAX(publisher.NAME) FROM publisher WHERE publisher.ID = book.PUBLISHER_ID)');
     $c->addJoin(BookTableMap::COL_PUBLISHER_ID, PublisherTableMap::COL_ID, Criteria::LEFT_JOIN);
     $c->addDescendingOrderByColumn('PublisherName');
     $c->addAscendingOrderByColumn(BookTableMap::COL_TITLE);
     $c->setOffset(20);
     $c->setLimit(20);
     $params = array();
     $expectedSql = "SELECT [book.ID], [book.TITLE], [publisher.NAME], [PublisherName] FROM (SELECT ROW_NUMBER() OVER(ORDER BY (SELECT MAX(publisher.NAME) FROM publisher WHERE publisher.ID = book.PUBLISHER_ID) DESC, book.TITLE ASC) AS [RowNumber], book.ID AS [book.ID], book.TITLE AS [book.TITLE], publisher.NAME AS [publisher.NAME], (SELECT MAX(publisher.NAME) FROM publisher WHERE publisher.ID = book.PUBLISHER_ID) AS [PublisherName] FROM book LEFT JOIN publisher ON (book.PUBLISHER_ID=publisher.ID)) AS derivedb WHERE RowNumber BETWEEN 21 AND 40";
     $sql = $c->createSelectSql($params);
     $this->assertEquals($expectedSql, $sql);
 }
 public function testMergeWithOrderByColumns()
 {
     $c1 = new Criteria();
     $c1->addAscendingOrderByColumn(BookTableMap::COL_TITLE);
     $c1->addAscendingOrderByColumn(BookTableMap::COL_ID);
     $c2 = new Criteria();
     $c1->mergeWith($c2);
     $this->assertEquals(array(BookTableMap::COL_TITLE . ' ASC', BookTableMap::COL_ID . ' ASC'), $c1->getOrderByColumns(), 'mergeWith() does not remove an existing orderby columns');
     $c1 = new Criteria();
     $c2 = new Criteria();
     $c2->addAscendingOrderByColumn(BookTableMap::COL_TITLE);
     $c2->addAscendingOrderByColumn(BookTableMap::COL_ID);
     $c1->mergeWith($c2);
     $this->assertEquals(array(BookTableMap::COL_TITLE . ' ASC', BookTableMap::COL_ID . ' ASC'), $c1->getOrderByColumns(), 'mergeWith() merges the select columns to an empty order by');
     $c1 = new Criteria();
     $c1->addAscendingOrderByColumn(BookTableMap::COL_TITLE);
     $c2 = new Criteria();
     $c2->addAscendingOrderByColumn(BookTableMap::COL_ID);
     $c1->mergeWith($c2);
     $this->assertEquals(array(BookTableMap::COL_TITLE . ' ASC', BookTableMap::COL_ID . ' ASC'), $c1->getOrderByColumns(), 'mergeWith() merges the select columns after the existing orderby columns');
     $c1 = new Criteria();
     $c1->addAscendingOrderByColumn(BookTableMap::COL_TITLE);
     $c2 = new Criteria();
     $c2->addAscendingOrderByColumn(BookTableMap::COL_TITLE);
     $c1->mergeWith($c2);
     $this->assertEquals(array(BookTableMap::COL_TITLE . ' ASC'), $c1->getOrderByColumns(), 'mergeWith() does not merge duplicated orderby columns');
     $c1 = new Criteria();
     $c1->addAscendingOrderByColumn(BookTableMap::COL_TITLE);
     $c2 = new Criteria();
     $c2->addDescendingOrderByColumn(BookTableMap::COL_TITLE);
     $c1->mergeWith($c2);
     $this->assertEquals(array(BookTableMap::COL_TITLE . ' ASC', BookTableMap::COL_TITLE . ' DESC'), $c1->getOrderByColumns(), 'mergeWith() merges duplicated orderby columns with inverse direction');
 }
Example #4
0
 /**
  * @api
  *
  * @param \Propel\Runtime\Collection\ObjectCollection $salesOrderItems
  *
  * @return void
  */
 public function queryOrderItemsStateHistoriesOrderedByNewestState(ObjectCollection $salesOrderItems)
 {
     foreach ($salesOrderItems as $orderItemEntity) {
         $criteria = new Criteria();
         $criteria->addDescendingOrderByColumn(SpyOmsOrderItemStateHistoryTableMap::COL_ID_OMS_ORDER_ITEM_STATE_HISTORY);
         $orderItemEntity->getStateHistoriesJoinState($criteria);
         $orderItemEntity->resetPartialStateHistories(false);
     }
 }