/** * {@inheritdoc} */ public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria) { /** @var \Magento\Tax\Model\Resource\Calculation\Rate\Collection $collection */ $collection = $this->rateFactory->create()->getCollection(); $collection->joinRegionTable(); //Add filters from root filter group to the collection foreach ($searchCriteria->getFilterGroups() as $group) { $this->addFilterGroupToCollection($group, $collection); } $sortOrders = $searchCriteria->getSortOrders(); /** @var SortOrder $sortOrder */ if ($sortOrders) { foreach ($sortOrders as $sortOrder) { $collection->addOrder($this->translateField($sortOrder->getField()), $sortOrder->getDirection() == SearchCriteria::SORT_ASC ? 'ASC' : 'DESC'); } } $collection->setCurPage($searchCriteria->getCurrentPage()); $collection->setPageSize($searchCriteria->getPageSize()); $taxRate = []; /** @var \Magento\Tax\Model\Calculation\Rate $taxRateModel */ foreach ($collection as $taxRateModel) { $taxRate[] = $taxRateModel; } return $this->taxRateSearchResultsFactory->create()->setItems($taxRate)->setTotalCount($collection->getSize())->setSearchCriteria($searchCriteria); }
/** * {@inheritdoc} */ public function getList(\Magento\Framework\Api\SearchCriteria $searchCriteria) { $searchResults = $this->taxRuleSearchResultsFactory->create(); $searchResults->setSearchCriteria($searchCriteria); $fields = []; $collection = $this->collectionFactory->create(); $this->joinProcessor->process($collection); //Add filters from root filter group to the collection foreach ($searchCriteria->getFilterGroups() as $group) { $this->addFilterGroupToCollection($group, $collection); foreach ($group->getFilters() as $filter) { $fields[] = $this->translateField($filter->getField()); } } if ($fields) { if (in_array('cd.customer_tax_class_id', $fields) || in_array('cd.product_tax_class_id', $fields)) { $collection->joinCalculationData('cd'); } } $searchResults->setTotalCount($collection->getSize()); $sortOrders = $searchCriteria->getSortOrders(); /** @var SortOrder $sortOrder */ if ($sortOrders) { foreach ($sortOrders as $sortOrder) { $collection->addOrder($this->translateField($sortOrder->getField()), $sortOrder->getDirection() == SearchCriteria::SORT_ASC ? 'ASC' : 'DESC'); } } $collection->setCurPage($searchCriteria->getCurrentPage()); $collection->setPageSize($searchCriteria->getPageSize()); $searchResults->setItems($collection->getItems()); return $searchResults; }