123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <?php
- /**
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Controller\Adminhtml\Group;
- use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
- use Magento\Customer\Api\Data\GroupInterfaceFactory;
- use Magento\Customer\Api\Data\GroupInterface;
- use Magento\Customer\Api\GroupRepositoryInterface;
- class Save extends \Magento\Customer\Controller\Adminhtml\Group implements HttpPostActionInterface
- {
- /**
- * @var \Magento\Framework\Reflection\DataObjectProcessor
- */
- protected $dataObjectProcessor;
- /**
- *
- * @param \Magento\Backend\App\Action\Context $context
- * @param \Magento\Framework\Registry $coreRegistry
- * @param GroupRepositoryInterface $groupRepository
- * @param GroupInterfaceFactory $groupDataFactory
- * @param \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory
- * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
- * @param \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor
- */
- public function __construct(
- \Magento\Backend\App\Action\Context $context,
- \Magento\Framework\Registry $coreRegistry,
- GroupRepositoryInterface $groupRepository,
- GroupInterfaceFactory $groupDataFactory,
- \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory,
- \Magento\Framework\View\Result\PageFactory $resultPageFactory,
- \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor
- ) {
- $this->dataObjectProcessor = $dataObjectProcessor;
- parent::__construct(
- $context,
- $coreRegistry,
- $groupRepository,
- $groupDataFactory,
- $resultForwardFactory,
- $resultPageFactory
- );
- }
- /**
- * Store Customer Group Data to session
- *
- * @param array $customerGroupData
- * @return void
- */
- protected function storeCustomerGroupDataToSession($customerGroupData)
- {
- if (array_key_exists('code', $customerGroupData)) {
- $customerGroupData['customer_group_code'] = $customerGroupData['code'];
- unset($customerGroupData['code']);
- }
- $this->_getSession()->setCustomerGroupData($customerGroupData);
- }
- /**
- * Create or save customer group.
- *
- * @return \Magento\Backend\Model\View\Result\Redirect|\Magento\Backend\Model\View\Result\Forward
- */
- public function execute()
- {
- $taxClass = (int)$this->getRequest()->getParam('tax_class');
- /** @var \Magento\Customer\Api\Data\GroupInterface $customerGroup */
- $customerGroup = null;
- if ($taxClass) {
- $id = $this->getRequest()->getParam('id');
- $resultRedirect = $this->resultRedirectFactory->create();
- try {
- $customerGroupCode = (string)$this->getRequest()->getParam('code');
- if ($id !== null) {
- $customerGroup = $this->groupRepository->getById((int)$id);
- $customerGroupCode = $customerGroupCode ?: $customerGroup->getCode();
- } else {
- $customerGroup = $this->groupDataFactory->create();
- }
- $customerGroup->setCode(!empty($customerGroupCode) ? $customerGroupCode : null);
- $customerGroup->setTaxClassId($taxClass);
- $this->groupRepository->save($customerGroup);
- $this->messageManager->addSuccess(__('You saved the customer group.'));
- $resultRedirect->setPath('customer/group');
- } catch (\Exception $e) {
- $this->messageManager->addError($e->getMessage());
- if ($customerGroup != null) {
- $this->storeCustomerGroupDataToSession(
- $this->dataObjectProcessor->buildOutputDataArray(
- $customerGroup,
- \Magento\Customer\Api\Data\GroupInterface::class
- )
- );
- }
- $resultRedirect->setPath('customer/group/edit', ['id' => $id]);
- }
- return $resultRedirect;
- } else {
- return $this->resultForwardFactory->create()->forward('new');
- }
- }
- }
|