15
15
use Magento \Sales \Api \Data \ShippingAssignmentInterface ;
16
16
use Magento \Framework \Exception \NoSuchEntityException ;
17
17
use Magento \Framework \Exception \InputException ;
18
+ use Magento \Framework \Api \SortOrder ;
18
19
19
20
/**
20
21
* Repository class for @see OrderInterface
@@ -96,7 +97,6 @@ public function get($id)
96
97
*/
97
98
public function getList (\Magento \Framework \Api \SearchCriteria $ searchCriteria )
98
99
{
99
- //@TODO: fix search logic
100
100
/** @var \Magento\Sales\Api\Data\OrderSearchResultInterface $searchResult */
101
101
$ searchResult = $ this ->searchResultFactory ->create ();
102
102
foreach ($ searchCriteria ->getFilterGroups () as $ filterGroup ) {
@@ -105,6 +105,20 @@ public function getList(\Magento\Framework\Api\SearchCriteria $searchCriteria)
105
105
$ searchResult ->addFieldToFilter ($ filter ->getField (), [$ condition => $ filter ->getValue ()]);
106
106
}
107
107
}
108
+
109
+ $ sortOrders = $ searchCriteria ->getSortOrders ();
110
+ if ($ sortOrders === null ) {
111
+ $ sortOrders = [];
112
+ }
113
+ /** @var \Magento\Framework\Api\SortOrder $sortOrder */
114
+ foreach ($ sortOrders as $ sortOrder ) {
115
+ $ field = $ sortOrder ->getField ();
116
+ $ searchResult ->addOrder (
117
+ $ field ,
118
+ ($ sortOrder ->getDirection () == SortOrder::SORT_ASC ) ? 'ASC ' : 'DESC '
119
+ );
120
+ }
121
+
108
122
$ searchResult ->setCurPage ($ searchCriteria ->getCurrentPage ());
109
123
$ searchResult ->setPageSize ($ searchCriteria ->getPageSize ());
110
124
foreach ($ searchResult ->getItems () as $ order ) {
0 commit comments