PrintShipment.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Block\Order;
  7. use Magento\Framework\View\Element\AbstractBlock;
  8. /**
  9. * Order information for print
  10. *
  11. * @api
  12. * @since 100.0.2
  13. */
  14. class PrintShipment extends \Magento\Sales\Block\Items\AbstractItems
  15. {
  16. /**
  17. * Core registry
  18. *
  19. * @var \Magento\Framework\Registry
  20. */
  21. protected $_coreRegistry = null;
  22. /**
  23. * @var \Magento\Payment\Helper\Data
  24. */
  25. protected $_paymentHelper;
  26. /**
  27. * @var \Magento\Sales\Model\Order\Address\Renderer
  28. */
  29. protected $addressRenderer;
  30. /**
  31. * @param \Magento\Framework\View\Element\Template\Context $context
  32. * @param \Magento\Framework\Registry $registry
  33. * @param \Magento\Payment\Helper\Data $paymentHelper
  34. * @param \Magento\Sales\Model\Order\Address\Renderer $addressRenderer
  35. * @param array $data
  36. */
  37. public function __construct(
  38. \Magento\Framework\View\Element\Template\Context $context,
  39. \Magento\Framework\Registry $registry,
  40. \Magento\Payment\Helper\Data $paymentHelper,
  41. \Magento\Sales\Model\Order\Address\Renderer $addressRenderer,
  42. array $data = []
  43. ) {
  44. $this->_paymentHelper = $paymentHelper;
  45. $this->_coreRegistry = $registry;
  46. $this->addressRenderer = $addressRenderer;
  47. parent::__construct($context, $data);
  48. }
  49. /**
  50. * Preparing global layout.
  51. *
  52. * @return void
  53. */
  54. protected function _prepareLayout()
  55. {
  56. $this->pageConfig->getTitle()->set(__('Print Order # %1', $this->getOrder()->getRealOrderId()));
  57. $infoBlock = $this->_paymentHelper->getInfoBlock($this->getOrder()->getPayment(), $this->getLayout());
  58. $this->setChild('payment_info', $infoBlock);
  59. }
  60. /**
  61. * Get payment info child block html.
  62. *
  63. * @return string
  64. */
  65. public function getPaymentInfoHtml()
  66. {
  67. return $this->getChildHtml('payment_info');
  68. }
  69. /**
  70. * Retrieve current order from registry.
  71. *
  72. * @return \Magento\Sales\Model\Order|null
  73. */
  74. public function getOrder()
  75. {
  76. return $this->_coreRegistry->registry('current_order');
  77. }
  78. /**
  79. * Disable pager for printing page
  80. *
  81. * @return bool
  82. * @since 100.1.9
  83. */
  84. public function isPagerDisplayed()
  85. {
  86. return false;
  87. }
  88. /**
  89. * Get order items
  90. *
  91. * @return \Magento\Framework\DataObject[]
  92. * @since 100.1.9
  93. */
  94. public function getItems()
  95. {
  96. if (!$this->getOrder()) {
  97. return [];
  98. }
  99. return $this->getOrder()->getItemsCollection()->getItems();
  100. }
  101. /**
  102. * Prepare item before output.
  103. *
  104. * @param AbstractBlock $renderer
  105. * @return $this
  106. */
  107. protected function _prepareItem(AbstractBlock $renderer)
  108. {
  109. $renderer->setPrintStatus(true);
  110. return parent::_prepareItem($renderer);
  111. }
  112. /**
  113. * Returns string with formatted address
  114. *
  115. * @param \Magento\Sales\Model\Order\Address $address
  116. * @return null|string
  117. */
  118. public function getFormattedAddress(\Magento\Sales\Model\Order\Address $address)
  119. {
  120. return $this->addressRenderer->format($address, 'html');
  121. }
  122. }