/** * Find entities by criteria * * @param \Magento\Framework\Api\SearchCriteria $searchCriteria * @return \Magento\Sales\Api\Data\OrderInterface[] */ public function getList(\Magento\Framework\Api\SearchCriteria $searchCriteria) { //@TODO: fix search logic /** @var \Magento\Sales\Api\Data\OrderSearchResultInterface $searchResult */ $searchResult = $this->searchResultFactory->create(); foreach ($searchCriteria->getFilterGroups() as $filterGroup) { foreach ($filterGroup->getFilters() as $filter) { $condition = $filter->getConditionType() ? $filter->getConditionType() : 'eq'; $searchResult->addFieldToFilter($filter->getField(), [$condition => $filter->getValue()]); } } $searchResult->setCurPage($searchCriteria->getCurrentPage()); $searchResult->setPageSize($searchCriteria->getPageSize()); return $searchResult; }
/** * Find entities by criteria * * @param \Magento\Framework\Api\SearchCriteria $searchCriteria * @return OrderInterface[] */ public function getList(\Magento\Framework\Api\SearchCriteria $searchCriteria) { /** @var \Magento\Sales\Api\Data\OrderSearchResultInterface $searchResult */ $searchResult = $this->searchResultFactory->create(); foreach ($searchCriteria->getFilterGroups() as $filterGroup) { $this->addFilterGroupToCollection($filterGroup, $searchResult); } $sortOrders = $searchCriteria->getSortOrders(); if ($sortOrders === null) { $sortOrders = []; } /** @var \Magento\Framework\Api\SortOrder $sortOrder */ foreach ($sortOrders as $sortOrder) { $field = $sortOrder->getField(); $searchResult->addOrder($field, $sortOrder->getDirection() == SortOrder::SORT_ASC ? 'ASC' : 'DESC'); } $searchResult->setSearchCriteria($searchCriteria); $searchResult->setCurPage($searchCriteria->getCurrentPage()); $searchResult->setPageSize($searchCriteria->getPageSize()); foreach ($searchResult->getItems() as $order) { $this->setShippingAssignments($order); } return $searchResult; }