/** * Retrieve all tax rates as an options array. * * @return array */ public function toOptionArray() { if (!$this->options) { $searchCriteria = $this->searchCriteriaBuilder->create(); $searchResults = $this->taxRateRepository->getList($searchCriteria); $this->options = $this->converter->toOptionArray($searchResults->getItems(), Rate::KEY_ID, Rate::KEY_CODE); } return $this->options; }
/** * {@inheritdoc} */ public function loadData($printQuery = false, $logQuery = false) { if (!$this->isLoaded()) { $searchCriteria = $this->getSearchCriteria(); $searchResults = $this->taxRateRepository->getList($searchCriteria); $this->_totalRecords = $searchResults->getTotalCount(); foreach ($searchResults->getItems() as $taxRate) { $this->_addItem($this->createTaxRateCollectionItem($taxRate)); } $this->_setIsLoaded(); } return $this; }
/** * * @param \Magento\Framework\Api\Filter[] $filters * @param \Magento\Framework\Api\Filter[] $filterGroup * @param $expectedRateCodes * * @magentoDbIsolation enabled * @dataProvider searchTaxRatesDataProvider * @SuppressWarnings(PHPMD.UnusedLocalVariable) */ public function testGetList($filters, $filterGroup, $expectedRateCodes) { $taxRates = $this->taxRateFixtureFactory->createTaxRates([['percentage' => 7.5, 'country' => 'US', 'region' => '42'], ['percentage' => 7.5, 'country' => 'US', 'region' => '12'], ['percentage' => 22.0, 'country' => 'US', 'region' => '42'], ['percentage' => 10.0, 'country' => 'US', 'region' => '12']]); /** @var \Magento\Framework\Api\SearchCriteriaBuilder $searchBuilder */ $searchBuilder = Bootstrap::getObjectManager()->create('Magento\\Framework\\Api\\SearchCriteriaBuilder'); foreach ($filters as $filter) { $searchBuilder->addFilters([$filter]); } if ($filterGroup !== null) { $searchBuilder->addFilters($filterGroup); } $searchCriteria = $searchBuilder->create(); $searchResults = $this->rateRepository->getList($searchCriteria); $this->assertEquals($searchCriteria, $searchResults->getSearchCriteria()); $this->assertEquals(count($expectedRateCodes), $searchResults->getTotalCount()); foreach ($searchResults->getItems() as $rate) { $this->assertContains($rate->getCode(), $expectedRateCodes); } }