Giftmessage.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Block\Adminhtml\Order\Create;
  7. use Magento\Framework\Pricing\PriceCurrencyInterface;
  8. /**
  9. * Adminhtml order create gift message block
  10. *
  11. * @api
  12. * @author Magento Core Team <core@magentocommerce.com>
  13. * @since 100.0.2
  14. */
  15. class Giftmessage extends \Magento\Sales\Block\Adminhtml\Order\Create\AbstractCreate
  16. {
  17. /**
  18. * Gift message save
  19. *
  20. * @var \Magento\GiftMessage\Model\Save
  21. */
  22. protected $_giftMessageSave;
  23. /**
  24. * Message helper
  25. *
  26. * @var \Magento\GiftMessage\Helper\Message
  27. */
  28. protected $_messageHelper;
  29. /**
  30. * @param \Magento\Backend\Block\Template\Context $context
  31. * @param \Magento\Backend\Model\Session\Quote $sessionQuote
  32. * @param \Magento\Sales\Model\AdminOrder\Create $orderCreate
  33. * @param PriceCurrencyInterface $priceCurrency
  34. * @param \Magento\GiftMessage\Model\Save $giftMessageSave
  35. * @param \Magento\GiftMessage\Helper\Message $messageHelper
  36. * @param array $data
  37. */
  38. public function __construct(
  39. \Magento\Backend\Block\Template\Context $context,
  40. \Magento\Backend\Model\Session\Quote $sessionQuote,
  41. \Magento\Sales\Model\AdminOrder\Create $orderCreate,
  42. PriceCurrencyInterface $priceCurrency,
  43. \Magento\GiftMessage\Model\Save $giftMessageSave,
  44. \Magento\GiftMessage\Helper\Message $messageHelper,
  45. array $data = []
  46. ) {
  47. $this->_messageHelper = $messageHelper;
  48. $this->_giftMessageSave = $giftMessageSave;
  49. parent::__construct($context, $sessionQuote, $orderCreate, $priceCurrency, $data);
  50. }
  51. /**
  52. * Generate form for editing of gift message for entity
  53. *
  54. * @param \Magento\Framework\DataObject $entity
  55. * @param string $entityType
  56. * @return string
  57. */
  58. public function getFormHtml(\Magento\Framework\DataObject $entity, $entityType = 'quote')
  59. {
  60. return $this->getLayout()->createBlock(
  61. \Magento\Sales\Block\Adminhtml\Order\Create\Giftmessage\Form::class
  62. )->setEntity(
  63. $entity
  64. )->setEntityType(
  65. $entityType
  66. )->toHtml();
  67. }
  68. /**
  69. * Retrieve items allowed for gift messages.
  70. *
  71. * If no items available return false.
  72. *
  73. * @return array|false
  74. */
  75. public function getItems()
  76. {
  77. $items = [];
  78. $allItems = $this->getQuote()->getAllItems();
  79. foreach ($allItems as $item) {
  80. if ($this->_getGiftmessageSaveModel()->getIsAllowedQuoteItem(
  81. $item
  82. ) && $this->_messageHelper->isMessagesAllowed(
  83. 'item',
  84. $item,
  85. $this->getStore()
  86. )
  87. ) {
  88. // if item allowed
  89. $items[] = $item;
  90. }
  91. }
  92. if (sizeof($items)) {
  93. return $items;
  94. }
  95. return false;
  96. }
  97. /**
  98. * Retrieve gift message save model
  99. *
  100. * @return \Magento\GiftMessage\Model\Save
  101. */
  102. protected function _getGiftmessageSaveModel()
  103. {
  104. return $this->_giftMessageSave;
  105. }
  106. }