Edit.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\SalesRule\Controller\Adminhtml\Promo\Quote;
  8. use Magento\Framework\App\Action\HttpGetActionInterface as HttpGetActionInterface;
  9. class Edit extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote implements HttpGetActionInterface
  10. {
  11. /**
  12. * @var \Magento\Framework\View\Result\PageFactory
  13. */
  14. protected $resultPageFactory;
  15. /**
  16. * @param \Magento\Backend\App\Action\Context $context
  17. * @param \Magento\Framework\Registry $coreRegistry
  18. * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory
  19. * @param \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter
  20. * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
  21. */
  22. public function __construct(
  23. \Magento\Backend\App\Action\Context $context,
  24. \Magento\Framework\Registry $coreRegistry,
  25. \Magento\Framework\App\Response\Http\FileFactory $fileFactory,
  26. \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter,
  27. \Magento\Framework\View\Result\PageFactory $resultPageFactory
  28. ) {
  29. parent::__construct($context, $coreRegistry, $fileFactory, $dateFilter);
  30. $this->_coreRegistry = $coreRegistry;
  31. $this->_fileFactory = $fileFactory;
  32. $this->_dateFilter = $dateFilter;
  33. $this->resultPageFactory = $resultPageFactory;
  34. }
  35. /**
  36. * Promo quote edit action
  37. *
  38. * @return void
  39. * @SuppressWarnings(PHPMD.NPathComplexity)
  40. */
  41. public function execute()
  42. {
  43. $id = $this->getRequest()->getParam('id');
  44. $model = $this->_objectManager->create(\Magento\SalesRule\Model\Rule::class);
  45. $this->_coreRegistry->register(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE, $model);
  46. $resultPage = $this->resultPageFactory->create();
  47. if ($id) {
  48. $model->load($id);
  49. if (!$model->getRuleId()) {
  50. $this->messageManager->addErrorMessage(__('This rule no longer exists.'));
  51. $this->_redirect('sales_rule/*');
  52. return;
  53. }
  54. $model->getConditions()->setFormName('sales_rule_form');
  55. $model->getConditions()->setJsFormObject(
  56. $model->getConditionsFieldSetId($model->getConditions()->getFormName())
  57. );
  58. $model->getActions()->setFormName('sales_rule_form');
  59. $model->getActions()->setJsFormObject(
  60. $model->getActionsFieldSetId($model->getActions()->getFormName())
  61. );
  62. $resultPage->getLayout()->getBlock('promo_sales_rule_edit_tab_coupons')->setCanShow(true);
  63. }
  64. // set entered data if was error when we do save
  65. $data = $this->_objectManager->get(\Magento\Backend\Model\Session::class)->getPageData(true);
  66. if (!empty($data)) {
  67. $model->addData($data);
  68. }
  69. $this->_initAction();
  70. $this->_addBreadcrumb($id ? __('Edit Rule') : __('New Rule'), $id ? __('Edit Rule') : __('New Rule'));
  71. $this->_view->getPage()->getConfig()->getTitle()->prepend(
  72. $model->getRuleId() ? $model->getName() : __('New Cart Price Rule')
  73. );
  74. $this->_view->renderLayout();
  75. }
  76. }