![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-sales-rule/Model/Rule/Metadata/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\SalesRule\Model\Rule\Metadata; use Magento\Customer\Api\GroupRepositoryInterface; use Magento\Framework\Api\SearchCriteriaBuilder; use Magento\Framework\App\ObjectManager; use Magento\Framework\Convert\DataObject; use Magento\SalesRule\Model\Rule; use Magento\SalesRule\Model\Rule\Action\SimpleActionOptionsProvider; use Magento\SalesRule\Model\RuleFactory; use Magento\Store\Model\System\Store; /** * Metadata provider for sales rule edit form. */ class ValueProvider { /** * @var Store */ protected $store; /** * @var GroupRepositoryInterface */ protected $groupRepository; /** * @var SearchCriteriaBuilder */ protected $searchCriteriaBuilder; /** * @var DataObject */ protected $objectConverter; /** * @var RuleFactory */ protected $salesRuleFactory; /** * @var SimpleActionOptionsProvider */ private $simpleActionOptionsProvider; /** * Initialize dependencies. * * @param Store $store * @param GroupRepositoryInterface $groupRepository * @param SearchCriteriaBuilder $searchCriteriaBuilder * @param DataObject $objectConverter * @param RuleFactory $salesRuleFactory * @param SimpleActionOptionsProvider|null $simpleActionOptionsProvider */ public function __construct( Store $store, GroupRepositoryInterface $groupRepository, SearchCriteriaBuilder $searchCriteriaBuilder, DataObject $objectConverter, RuleFactory $salesRuleFactory, SimpleActionOptionsProvider $simpleActionOptionsProvider = null ) { $this->store = $store; $this->groupRepository = $groupRepository; $this->searchCriteriaBuilder = $searchCriteriaBuilder; $this->objectConverter = $objectConverter; $this->salesRuleFactory = $salesRuleFactory; $this->simpleActionOptionsProvider = $simpleActionOptionsProvider ?: ObjectManager::getInstance()->get(SimpleActionOptionsProvider::class); } /** * Get metadata for sales rule form. It will be merged with form UI component declaration. * * @param Rule $rule * @return array * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function getMetadataValues(Rule $rule) { $customerGroups = $this->groupRepository->getList($this->searchCriteriaBuilder->create())->getItems(); $applyOptions = $this->simpleActionOptionsProvider->toOptionArray(); $couponTypesOptions = []; $couponTypes = $this->salesRuleFactory->create()->getCouponTypes(); foreach ($couponTypes as $key => $couponType) { $couponTypesOptions[] = [ 'label' => $couponType, 'value' => $key, ]; } $labels = $rule->getStoreLabels(); return [ 'rule_information' => [ 'children' => [ 'website_ids' => [ 'arguments' => [ 'data' => [ 'config' => [ 'options' => $this->store->getWebsiteValuesForForm(), ], ], ], ], 'is_active' => [ 'arguments' => [ 'data' => [ 'config' => [ 'options' => [ ['label' => __('Active'), 'value' => '1'], ['label' => __('Inactive'), 'value' => '0'] ], ], ], ], ], 'customer_group_ids' => [ 'arguments' => [ 'data' => [ 'config' => [ 'options' => $this->objectConverter->toOptionArray($customerGroups, 'id', 'code'), ], ], ], ], 'coupon_type' => [ 'arguments' => [ 'data' => [ 'config' => [ 'options' => $couponTypesOptions, ], ], ], ], 'is_rss' => [ 'arguments' => [ 'data' => [ 'config' => [ 'options' => [ ['label' => __('Yes'), 'value' => '1'], ['label' => __('No'), 'value' => '0'] ], ], ], ], ], ] ], 'actions' => [ 'children' => [ 'simple_action' => [ 'arguments' => [ 'data' => [ 'config' => [ 'options' => $applyOptions ], ] ] ], 'discount_amount' => [ 'arguments' => [ 'data' => [ 'config' => [ 'value' => '0', ], ], ], ], 'discount_qty' => [ 'arguments' => [ 'data' => [ 'config' => [ 'value' => '0', ], ], ], ], 'apply_to_shipping' => [ 'arguments' => [ 'data' => [ 'config' => [ 'options' => [ ['label' => __('Yes'), 'value' => '1'], ['label' => __('No'), 'value' => '0'] ] ], ], ], ], 'stop_rules_processing' => [ 'arguments' => [ 'data' => [ 'config' => [ 'options' => [ ['label' => __('Yes'), 'value' => '1'], ['label' => __('No'), 'value' => '0'], ], ], ] ] ], ] ], 'labels' => [ 'children' => [ 'store_labels[0]' => [ 'arguments' => [ 'data' => [ 'config' => [ 'value' => isset($labels[0]) ? $labels[0] : '', ], ] ] ] ] ], ]; } }