Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AjaxLoadRates.php
Go to the documentation of this file.
1 <?php
7 
12 use Magento\Tax\Model\Rate\Provider as RatesProvider;
15 
20 class AjaxLoadRates extends Action
21 {
25  private $ratesProvider;
26 
30  private $searchCriteriaBuilder;
31 
37  public function __construct(
38  Context $context,
39  SearchCriteriaBuilder $searchCriteriaBuilder,
40  RatesProvider $ratesProvider
41  ) {
42  parent::__construct($context);
43  $this->searchCriteriaBuilder = $searchCriteriaBuilder;
44  $this->ratesProvider = $ratesProvider;
45  }
46 
53  public function execute()
54  {
55  $ratesPage = (int) $this->getRequest()->getParam('p');
56  $ratesFilter = trim($this->getRequest()->getParam('s'));
57 
58  try {
59  if (!empty($ratesFilter)) {
60  $this->searchCriteriaBuilder->addFilter(
61  Rate::KEY_CODE,
62  '%'.$ratesFilter.'%',
63  'like'
64  );
65  }
66 
67  $searchCriteria = $this->searchCriteriaBuilder
68  ->setPageSize($this->ratesProvider->getPageSize())
69  ->setCurrentPage($ratesPage)
70  ->create();
71 
72  $options = $this->ratesProvider->toOptionArray($searchCriteria);
73 
74  $response = [
75  'success' => true,
76  'errorMessage' => '',
77  'result'=> $options,
78  ];
79  } catch (\Exception $e) {
80  $response = [
81  'success' => false,
82  'errorMessage' => __('An error occurred while loading tax rates.')
83  ];
84  }
85 
87  $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
88  $resultJson->setData($response);
89 
90  return $resultJson;
91  }
92 }
$response
Definition: 404.php:11
__()
Definition: __.php:13
$searchCriteria
$searchCriteriaBuilder
__construct(Context $context, SearchCriteriaBuilder $searchCriteriaBuilder, RatesProvider $ratesProvider)