17 private $couponGenerator;
29 \
Magento\Framework\Registry $coreRegistry,
31 \
Magento\Framework\Stdlib\DateTime\Filter\Date $dateFilter,
34 parent::__construct($context, $coreRegistry, $fileFactory, $dateFilter);
35 $this->couponGenerator = $couponGenerator ?:
36 $this->_objectManager->get(CouponGenerator::class);
53 $rule = $this->_coreRegistry->registry(\
Magento\SalesRule\Model\RegistryConstants::CURRENT_SALES_RULE);
55 if (!
$rule->getId()) {
56 $result[
'error'] =
__(
'Rule is not defined');
60 if (!empty(
$data[
'to_date'])) {
61 $inputFilter = new \Zend_Filter_Input([
'to_date' => $this->_dateFilter], [],
$data);
62 $data = $inputFilter->getUnescaped();
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) {
76 'Something went wrong while generating coupons. Please review the log and try again.' 78 $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e);
82 $this->_objectManager->get(\
Magento\Framework\Json\Helper\Data::class)->jsonEncode(
$result)
_forward($action, $controller=null, $module=null, array $params=null)