BeforeBlockToHtml.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace Dotdigitalgroup\Email\Observer\Html;
  3. /**
  4. * Sales rule coupon new columns (expiration_data, generated_by_dotmailer).
  5. */
  6. class BeforeBlockToHtml implements \Magento\Framework\Event\ObserverInterface
  7. {
  8. /**
  9. * @var \Dotdigitalgroup\Email\Model\Sales\CouponGridFilterer
  10. */
  11. private $couponGridFiltererFactory;
  12. public function __construct(
  13. \Dotdigitalgroup\Email\Model\Sales\CouponGridFiltererFactory $couponGridFiltererFactory
  14. ) {
  15. $this->couponGridFiltererFactory = $couponGridFiltererFactory;
  16. }
  17. /**
  18. * @param \Magento\Framework\Event\Observer $observer
  19. *
  20. * @return null
  21. */
  22. public function execute(\Magento\Framework\Event\Observer $observer)
  23. {
  24. $grid = $observer->getBlock();
  25. /**
  26. * \Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons\Grid
  27. */
  28. if ($grid instanceof \Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons\Grid) {
  29. $grid->addColumnAfter(
  30. 'expiration_date',
  31. [
  32. 'header' => __('Expiration date'),
  33. 'index' => 'expiration_date',
  34. 'type' => 'datetime',
  35. 'default' => '',
  36. 'align' => 'center',
  37. 'width' => '160'
  38. ],
  39. 'created_at'
  40. )->addColumnAfter(
  41. 'generated_by_dotmailer',
  42. [
  43. 'header' => __('Generated By dotmailer'),
  44. 'index' => 'generated_by_dotmailer',
  45. 'type' => 'options',
  46. 'default' => '',
  47. 'options' => ['null' => 'No', '1' => 'Yes'],
  48. 'width' => '30',
  49. 'align' => 'center',
  50. 'filter_condition_callback' =>
  51. [$this->couponGridFiltererFactory->create(), 'filterByGeneratedByDotmailer']
  52. ],
  53. 'expiration_date'
  54. );
  55. }
  56. }
  57. }