Header.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  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. * Create order form header
  10. *
  11. * @api
  12. * @since 100.0.2
  13. */
  14. class Header extends AbstractCreate
  15. {
  16. /**
  17. * Customer repository
  18. *
  19. * @var \Magento\Customer\Api\CustomerRepositoryInterface
  20. */
  21. protected $customerRepository;
  22. /**
  23. * Customer view helper
  24. *
  25. * @var \Magento\Customer\Helper\View
  26. */
  27. protected $_customerViewHelper;
  28. /**
  29. * Constructor
  30. *
  31. * @param \Magento\Backend\Block\Template\Context $context
  32. * @param \Magento\Backend\Model\Session\Quote $sessionQuote
  33. * @param \Magento\Sales\Model\AdminOrder\Create $orderCreate
  34. * @param PriceCurrencyInterface $priceCurrency
  35. * @param \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository
  36. * @param \Magento\Customer\Helper\View $customerViewHelper
  37. * @param array $data
  38. */
  39. public function __construct(
  40. \Magento\Backend\Block\Template\Context $context,
  41. \Magento\Backend\Model\Session\Quote $sessionQuote,
  42. \Magento\Sales\Model\AdminOrder\Create $orderCreate,
  43. PriceCurrencyInterface $priceCurrency,
  44. \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository,
  45. \Magento\Customer\Helper\View $customerViewHelper,
  46. array $data = []
  47. ) {
  48. $this->customerRepository = $customerRepository;
  49. $this->_customerViewHelper = $customerViewHelper;
  50. parent::__construct($context, $sessionQuote, $orderCreate, $priceCurrency, $data);
  51. }
  52. /**
  53. * {@inheritdoc}
  54. */
  55. protected function _toHtml()
  56. {
  57. if ($this->_getSession()->getOrder()->getId()) {
  58. return __('Edit Order #%1', $this->_getSession()->getOrder()->getIncrementId());
  59. }
  60. $out = $this->_getCreateOrderTitle();
  61. return $this->escapeHtml($out);
  62. }
  63. /**
  64. * Generate title for new order creation page.
  65. *
  66. * @return string
  67. */
  68. protected function _getCreateOrderTitle()
  69. {
  70. $customerId = $this->getCustomerId();
  71. $storeId = $this->getStoreId();
  72. $out = '';
  73. if ($customerId && $storeId) {
  74. $out .= __(
  75. 'Create New Order for %1 in %2',
  76. $this->_getCustomerName($customerId),
  77. $this->getStore()->getName()
  78. );
  79. return $out;
  80. } elseif (!$customerId && $storeId) {
  81. $out .= __('Create New Order in %1', $this->getStore()->getName());
  82. return $out;
  83. } elseif ($customerId && !$storeId) {
  84. $out .= __('Create New Order for %1', $this->_getCustomerName($customerId));
  85. return $out;
  86. } elseif (!$customerId && !$storeId) {
  87. $out .= __('Create New Order for New Customer');
  88. return $out;
  89. }
  90. return $out;
  91. }
  92. /**
  93. * Get customer name by his ID
  94. *
  95. * @param int $customerId
  96. * @return string
  97. */
  98. protected function _getCustomerName($customerId)
  99. {
  100. $customerData = $this->customerRepository->getById($customerId);
  101. return $this->_customerViewHelper->getCustomerName($customerData);
  102. }
  103. }