Esempio n. 1
0
 /**
  * Retrieve all tax rates as an options array.
  *
  * @return array
  */
 public function toOptionArray()
 {
     if (!$this->options) {
         $searchCriteria = $this->searchCriteriaBuilder->create();
         $searchResults = $this->taxRateService->searchTaxRates($searchCriteria);
         $this->options = $this->converter->toOptionArray($searchResults->getItems(), TaxRate::KEY_ID, TaxRate::KEY_CODE);
     }
     return $this->options;
 }
 /**
  * {@inheritdoc}
  */
 public function loadData($printQuery = false, $logQuery = false)
 {
     if (!$this->isLoaded()) {
         $searchCriteria = $this->getSearchCriteria();
         $searchResults = $this->rateService->searchTaxRates($searchCriteria);
         $this->_totalRecords = $searchResults->getTotalCount();
         foreach ($searchResults->getItems() as $taxRate) {
             $this->_addItem($this->createTaxRateCollectionItem($taxRate));
         }
         $this->_setIsLoaded();
     }
     return $this;
 }
Esempio n. 3
0
 /**
  *
  * @param \Magento\Framework\Service\V1\Data\Filter[] $filters
  * @param \Magento\Framework\Service\V1\Data\Filter[] $filterGroup
  * @param $expectedRateCodes
  *
  * @magentoDbIsolation enabled
  * @dataProvider searchTaxRatesDataProvider
  */
 public function testSearchTaxRates($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\Service\V1\Data\SearchCriteriaBuilder $searchBuilder */
     $searchBuilder = Bootstrap::getObjectManager()->create('Magento\\Framework\\Service\\V1\\Data\\SearchCriteriaBuilder');
     foreach ($filters as $filter) {
         $searchBuilder->addFilter([$filter]);
     }
     if (!is_null($filterGroup)) {
         $searchBuilder->addFilter($filterGroup);
     }
     $searchCriteria = $searchBuilder->create();
     $searchResults = $this->taxRateService->searchTaxRates($searchCriteria);
     $items = [];
     foreach ($expectedRateCodes as $rateCode) {
         $rateId = $taxRates[$rateCode];
         $items[] = $this->taxRateService->getTaxRate($rateId);
     }
     $resultsBuilder = Bootstrap::getObjectManager()->create('Magento\\Tax\\Service\\V1\\Data\\TaxRateSearchResultsBuilder');
     $expectedResult = $resultsBuilder->setItems($items)->setTotalCount(count($items))->setSearchCriteria($searchCriteria)->create();
     $this->assertEquals($expectedResult, $searchResults);
 }
 public function testSearchTaxRate()
 {
     $collectionMock = $this->getMockBuilder('Magento\\Tax\\Model\\Resource\\Calculation\\Rate\\Collection')->disableOriginalConstructor()->setMethods(['addFieldToFilter', 'getSize', 'load', 'getIterator', 'joinRegionTable'])->getMock();
     $this->mockReturnValue($collectionMock, ['getSize' => 1, 'getIterator' => new \ArrayIterator([$this->rateModelMock])]);
     $this->rateFactoryMock->expects($this->atLeastOnce())->method('create')->will($this->returnValue($this->rateModelMock));
     $this->mockReturnValue($this->rateModelMock, ['load' => $this->returnSelf(), 'getCollection' => $collectionMock]);
     $taxRate = $this->taxRateBuilder->setId(2)->setCode('Rate-Code')->setCountryId('US')->setPercentageRate(0.1)->setPostcode('55555')->setRegionId(self::REGION_ID)->create();
     $this->converterMock->expects($this->once())->method('createTaxRateDataObjectFromModel')->with($this->rateModelMock)->will($this->returnValue($taxRate));
     $filterBuilder = $this->objectManager->getObject('\\Magento\\Framework\\Service\\V1\\Data\\FilterBuilder');
     $filter = $filterBuilder->setField(TaxRate::KEY_REGION_ID)->setValue(self::REGION_ID)->create();
     $this->searchCriteriaBuilder->addFilter([$filter])->addSortOrder('id', \Magento\Framework\Service\V1\Data\SearchCriteria::SORT_ASC);
     $this->createService();
     $searchCriteria = $this->searchCriteriaBuilder->create();
     $searchResults = $this->taxRateService->searchTaxRates($searchCriteria);
     $items = $searchResults->getItems();
     $this->assertNotNull($searchResults);
     $this->assertSame($searchCriteria, $searchResults->getSearchCriteria());
     $this->assertEquals(1, $searchResults->getTotalCount());
     $this->assertNotNull($items);
     $this->assertFalse(empty($items));
     $this->assertEquals(self::REGION_ID, $items[0]->getRegionId());
 }