123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\SalesRule\Model\Rule;
- use Magento\SalesRule\Model\ResourceModel\Rule\Collection;
- use Magento\SalesRule\Model\ResourceModel\Rule\CollectionFactory;
- use Magento\SalesRule\Model\Rule;
- /**
- * Class DataProvider
- */
- class DataProvider extends \Magento\Ui\DataProvider\AbstractDataProvider
- {
- /**
- * @var Collection
- */
- protected $collection;
- /**
- * @var array
- */
- protected $loadedData;
- /**
- * Core registry
- *
- * @var \Magento\Framework\Registry
- */
- protected $coreRegistry;
- /**
- * @var \Magento\SalesRule\Model\Rule\Metadata\ValueProvider
- */
- protected $metadataValueProvider;
- /**
- * Initialize dependencies.
- *
- * @param string $name
- * @param string $primaryFieldName
- * @param string $requestFieldName
- * @param CollectionFactory $collectionFactory
- * @param \Magento\Framework\Registry $registry
- * @param Metadata\ValueProvider $metadataValueProvider
- * @param array $meta
- * @param array $data
- */
- public function __construct(
- $name,
- $primaryFieldName,
- $requestFieldName,
- CollectionFactory $collectionFactory,
- \Magento\Framework\Registry $registry,
- \Magento\SalesRule\Model\Rule\Metadata\ValueProvider $metadataValueProvider,
- array $meta = [],
- array $data = []
- ) {
- $this->collection = $collectionFactory->create();
- $this->coreRegistry = $registry;
- $this->metadataValueProvider = $metadataValueProvider;
- $meta = array_replace_recursive($this->getMetadataValues(), $meta);
- parent::__construct($name, $primaryFieldName, $requestFieldName, $meta, $data);
- }
- /**
- * Get metadata values
- *
- * @return array
- */
- protected function getMetadataValues()
- {
- $rule = $this->coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE);
- return $this->metadataValueProvider->getMetadataValues($rule);
- }
- /**
- * {@inheritdoc}
- */
- public function getData()
- {
- if (isset($this->loadedData)) {
- return $this->loadedData;
- }
- $items = $this->collection->getItems();
- /** @var Rule $rule */
- foreach ($items as $rule) {
- $rule->load($rule->getId());
- $rule->setDiscountAmount($rule->getDiscountAmount() * 1);
- $rule->setDiscountQty($rule->getDiscountQty() * 1);
- $this->loadedData[$rule->getId()] = $rule->getData();
- }
- return $this->loadedData;
- }
- }
|