Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Generate.php
Go to the documentation of this file.
1 <?php
8 
11 
13 {
17  private $couponGenerator;
18 
27  public function __construct(
28  \Magento\Backend\App\Action\Context $context,
29  \Magento\Framework\Registry $coreRegistry,
30  \Magento\Framework\App\Response\Http\FileFactory $fileFactory,
31  \Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter,
32  CouponGenerator $couponGenerator = null
33  ) {
34  parent::__construct($context, $coreRegistry, $fileFactory, $dateFilter);
35  $this->couponGenerator = $couponGenerator ?:
36  $this->_objectManager->get(CouponGenerator::class);
37  }
38 
44  public function execute()
45  {
46  if (!$this->getRequest()->isAjax()) {
47  $this->_forward('noroute');
48  return;
49  }
50  $result = [];
51  $this->_initRule();
52 
53  $rule = $this->_coreRegistry->registry(\Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE);
54 
55  if (!$rule->getId()) {
56  $result['error'] = __('Rule is not defined');
57  } else {
58  try {
59  $data = $this->getRequest()->getParams();
60  if (!empty($data['to_date'])) {
61  $inputFilter = new \Zend_Filter_Input(['to_date' => $this->_dateFilter], [], $data);
62  $data = $inputFilter->getUnescaped();
63  }
64 
65  $couponCodes = $this->couponGenerator->generateCodes($data);
66  $generated = count($couponCodes);
67  $this->messageManager->addSuccessMessage(__('%1 coupon(s) have been generated.', $generated));
68  $this->_view->getLayout()->initMessages();
69  $result['messages'] = $this->_view->getLayout()->getMessagesBlock()->getGroupedHtml();
70  } catch (\Magento\Framework\Exception\InputException $inputException) {
71  $result['error'] = __('Invalid data provided');
72  } catch (\Magento\Framework\Exception\LocalizedException $e) {
73  $result['error'] = $e->getMessage();
74  } catch (\Exception $e) {
75  $result['error'] = __(
76  'Something went wrong while generating coupons. Please review the log and try again.'
77  );
78  $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e);
79  }
80  }
81  $this->getResponse()->representJson(
82  $this->_objectManager->get(\Magento\Framework\Json\Helper\Data::class)->jsonEncode($result)
83  );
84  }
85 }
__()
Definition: __.php:13
_forward($action, $controller=null, $module=null, array $params=null)
__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, CouponGenerator $couponGenerator=null)
Definition: Generate.php:27