getResultDataCollection() as $model) { $row = new LoopResultRow($model); $row->set('log', $model); $this->addOutputFields($row, $model); $loopResult->addRow($row); } return $loopResult; } /** * @return PaypalLogQuery */ public function buildModelCriteria() { $query = new PaypalLogQuery(); if (null != $orderId = $this->getOrderId()) { $query->filterByOrderId($orderId); } if (null != $customerId = $this->getCustomerId()) { $query->filterByCustomerId($customerId); } if (null != $channel = $this->getChannel()) { $query->filterByChannel($channel); } if (null != $level = $this->getLevel()) { $query->filterByLevel($level); } $this->buildModelCriteriaOrder($query); $query->groupById(); return $query; } /** * @param PaypalLogQuery $query */ protected function buildModelCriteriaOrder(PaypalLogQuery $query) { foreach ($this->getOrder() as $order) { switch ($order) { case 'id': $query->orderById(); break; case 'id-reverse': $query->orderById(Criteria::DESC); break; case 'order-id': $query->orderById(); break; case 'order-id-reverse': $query->orderById(Criteria::DESC); break; case 'customer-id': $query->addAscendingOrderByColumn('i18n_TITLE'); break; case 'customer-id-reverse': $query->addDescendingOrderByColumn('i18n_TITLE'); break; case 'date': $query->orderByCreatedAt(); break; case 'date-reverse': $query->orderByCreatedAt(Criteria::DESC); break; default: $query->orderById(); break; } } } /** * @return \Thelia\Core\Template\Loop\Argument\ArgumentCollection */ protected function getArgDefinitions() { return new ArgumentCollection( Argument::createIntTypeArgument('order_id'), Argument::createIntTypeArgument('customer_id'), Argument::createAnyTypeArgument('channel'), Argument::createIntTypeArgument('level'), Argument::createEnumListTypeArgument( 'order', [ 'id', 'id-reverse', 'order-id', 'order-id-reverse', 'customer-id', 'customer-id-reverse', 'date', 'date-reverse', ], 'id' ) ); } }