Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
TaxRuleFixtureFactory.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Tax\Model;
7 
9 
14 {
20  private $objectManager;
21 
25  private $dataObjectHelper;
26 
27  public function __construct()
28  {
29  $this->objectManager = Bootstrap::getObjectManager();
30  $this->dataObjectHelper = $this->objectManager->create(\Magento\Framework\Api\DataObjectHelper::class);
31  }
32 
39  public function createTaxRules($rulesData)
40  {
42  $taxRuleFactory = $this->objectManager->create(\Magento\Tax\Api\Data\TaxRuleInterfaceFactory::class);
44  $taxRuleService = $this->objectManager->create(\Magento\Tax\Api\TaxRuleRepositoryInterface::class);
45 
46  $rules = [];
47  foreach ($rulesData as $ruleData) {
48  $taxRule = $taxRuleFactory->create();
49  $this->dataObjectHelper->populateWithArray(
50  $taxRule,
51  $ruleData,
52  \Magento\Tax\Api\Data\TaxRuleInterface::class
53  );
54 
55  $rules[$ruleData['code']] = $taxRuleService->save($taxRule)->getId();
56  }
57 
58  return $rules;
59  }
60 
66  public function deleteTaxRules($ruleIds)
67  {
69  $taxRuleService = $this->objectManager->create(\Magento\Tax\Api\TaxRuleRepositoryInterface::class);
70 
71  foreach ($ruleIds as $ruleId) {
72  $taxRuleService->deleteById($ruleId);
73  }
74  }
75 
84  public function createTaxRates($ratesData)
85  {
87  $taxRateFactory = $this->objectManager->create(\Magento\Tax\Api\Data\TaxRateInterfaceFactory::class);
89  $taxRateService = $this->objectManager->create(\Magento\Tax\Api\TaxRateRepositoryInterface::class);
90 
91  $rates = [];
92  foreach ($ratesData as $rateData) {
93  $code = "{$rateData['country']} - {$rateData['region']} - {$rateData['percentage']}";
94  $postcode = '*';
95  if (isset($rateData['postcode'])) {
96  $postcode = $rateData['postcode'];
97  $code = $code . " - " . $postcode;
98  }
99 
100  $taxRate = $taxRateFactory->create();
101  $taxRate->setTaxCountryId($rateData['country'])
102  ->setTaxRegionId($rateData['region'])
103  ->setTaxPostcode($postcode)
104  ->setCode($code)
105  ->setRate($rateData['percentage']);
106 
107  $rates[$code] = $taxRateService->save($taxRate)->getId();
108  }
109  return $rates;
110  }
111 
117  public function deleteTaxRates($rateIds)
118  {
120  $taxRateService = $this->objectManager->create(\Magento\Tax\Api\TaxRateRepositoryInterface::class);
121  foreach ($rateIds as $rateId) {
122  $taxRateService->deleteById($rateId);
123  }
124  }
125 
132  public function createTaxClasses($classesData)
133  {
134  $classes = [];
135  foreach ($classesData as $classData) {
137  $class = $this->objectManager->create(\Magento\Tax\Model\ClassModel::class)
138  ->setClassName($classData['name'])
139  ->setClassType($classData['type'])
140  ->save();
141  $classes[$classData['name']] = $class->getId();
142  }
143  return $classes;
144  }
145 
151  public function deleteTaxClasses($classIds)
152  {
154  $class = $this->objectManager->create(\Magento\Tax\Model\ClassModel::class);
155  foreach ($classIds as $classId) {
156  $class->load($classId);
157  $class->delete();
158  }
159  }
160 }
$rates
Definition: tax.phtml:35
$taxRule
Definition: tax_rule.php:35
$_option $_optionId $class
Definition: date.phtml:13
$ruleData
Definition: tax_rule.php:26
$taxRate
Definition: tax_rule.php:12
$code
Definition: info.phtml:12