Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Edit.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Framework\App\Action\HttpGetActionInterface as HttpGetActionInterface;
10 
11 class Edit extends \Magento\SalesRule\Controller\Adminhtml\Promo\Quote implements HttpGetActionInterface
12 {
16  protected $resultPageFactory;
17 
25  public function __construct(
26  \Magento\Backend\App\Action\Context $context,
27  \Magento\Framework\Registry $coreRegistry,
28  \Magento\Framework\App\Response\Http\FileFactory $fileFactory,
29  \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter,
30  \Magento\Framework\View\Result\PageFactory $resultPageFactory
31  ) {
32  parent::__construct($context, $coreRegistry, $fileFactory, $dateFilter);
33  $this->_coreRegistry = $coreRegistry;
34  $this->_fileFactory = $fileFactory;
35  $this->_dateFilter = $dateFilter;
36  $this->resultPageFactory = $resultPageFactory;
37  }
38 
45  public function execute()
46  {
47  $id = $this->getRequest()->getParam('id');
48  $model = $this->_objectManager->create(\Magento\SalesRule\Model\Rule::class);
49 
50  $this->_coreRegistry->register(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE, $model);
51 
52  $resultPage = $this->resultPageFactory->create();
53  if ($id) {
54  $model->load($id);
55  if (!$model->getRuleId()) {
56  $this->messageManager->addErrorMessage(__('This rule no longer exists.'));
57  $this->_redirect('sales_rule/*');
58  return;
59  }
60  $model->getConditions()->setFormName('sales_rule_form');
61  $model->getConditions()->setJsFormObject(
62  $model->getConditionsFieldSetId($model->getConditions()->getFormName())
63  );
64  $model->getActions()->setFormName('sales_rule_form');
65  $model->getActions()->setJsFormObject(
66  $model->getActionsFieldSetId($model->getActions()->getFormName())
67  );
68 
69  $resultPage->getLayout()->getBlock('promo_sales_rule_edit_tab_coupons')->setCanShow(true);
70  }
71 
72  // set entered data if was error when we do save
73  $data = $this->_objectManager->get(\Magento\Backend\Model\Session::class)->getPageData(true);
74  if (!empty($data)) {
75  $model->addData($data);
76  }
77 
78  $this->_initAction();
79 
80  $this->_addBreadcrumb($id ? __('Edit Rule') : __('New Rule'), $id ? __('Edit Rule') : __('New Rule'));
81 
82  $this->_view->getPage()->getConfig()->getTitle()->prepend(
83  $model->getRuleId() ? $model->getName() : __('New Cart Price Rule')
84  );
85  $this->_view->renderLayout();
86  }
87 }
$id
Definition: fieldset.phtml:14
__()
Definition: __.php:13
__construct(\Magento\Backend\App\Action\Context $context, \Magento\Framework\Registry $coreRegistry, \Magento\Framework\App\Response\Http\FileFactory $fileFactory, \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter, \Magento\Framework\View\Result\PageFactory $resultPageFactory)
Definition: Edit.php:25
_addBreadcrumb($label, $title, $link=null)