Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DataProvider.php
Go to the documentation of this file.
1 <?php
7 
9 use Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory;
11 
16 {
20  protected $collection;
21 
25  protected $loadedData;
26 
32  protected $coreRegistry;
33 
38 
51  public function __construct(
52  $name,
55  CollectionFactory $collectionFactory,
56  \Magento\Framework\Registry $registry,
57  \Magento\SalesRule\Model\Rule\Metadata\ValueProvider $metadataValueProvider,
58  array $meta = [],
59  array $data = []
60  ) {
61  $this->collection = $collectionFactory->create();
62  $this->coreRegistry = $registry;
63  $this->metadataValueProvider = $metadataValueProvider;
64  $meta = array_replace_recursive($this->getMetadataValues(), $meta);
65  parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data);
66  }
67 
73  protected function getMetadataValues()
74  {
75  $rule = $this->coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE);
76  return $this->metadataValueProvider->getMetadataValues($rule);
77  }
78 
82  public function getData()
83  {
84  if (isset($this->loadedData)) {
85  return $this->loadedData;
86  }
87  $items = $this->collection->getItems();
89  foreach ($items as $rule) {
90  $rule->load($rule->getId());
91  $rule->setDiscountAmount($rule->getDiscountAmount() * 1);
92  $rule->setDiscountQty($rule->getDiscountQty() * 1);
93 
94  $this->loadedData[$rule->getId()] = $rule->getData();
95  }
96 
97  return $this->loadedData;
98  }
99 }
__construct( $name, $primaryFieldName, $requestFieldName, CollectionFactory $collectionFactory, \Magento\Framework\Registry $registry, \Magento\SalesRule\Model\Rule\Metadata\ValueProvider $metadataValueProvider, array $meta=[], array $data=[])
$items