Tax.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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\Totals;
  7. /**
  8. * Adminhtml order tax totals block
  9. *
  10. * @api
  11. * @author Magento Core Team <core@magentocommerce.com>
  12. * @since 100.0.2
  13. */
  14. class Tax extends \Magento\Tax\Block\Sales\Order\Tax
  15. {
  16. /**
  17. * Tax helper
  18. *
  19. * @var \Magento\Tax\Helper\Data
  20. */
  21. protected $_taxHelper;
  22. /**
  23. * Tax calculation
  24. *
  25. * @var \Magento\Tax\Model\Calculation
  26. */
  27. protected $_taxCalculation;
  28. /**
  29. * Tax factory
  30. *
  31. * @var \Magento\Tax\Model\Sales\Order\TaxFactory
  32. */
  33. protected $_taxOrderFactory;
  34. /**
  35. * Sales admin helper
  36. *
  37. * @var \Magento\Sales\Helper\Admin
  38. */
  39. protected $_salesAdminHelper;
  40. /**
  41. * @param \Magento\Backend\Block\Template\Context $context
  42. * @param \Magento\Tax\Model\Config $taxConfig
  43. * @param \Magento\Tax\Helper\Data $taxHelper
  44. * @param \Magento\Tax\Model\Calculation $taxCalculation
  45. * @param \Magento\Tax\Model\Sales\Order\TaxFactory $taxOrderFactory
  46. * @param \Magento\Sales\Helper\Admin $salesAdminHelper
  47. * @param array $data
  48. */
  49. public function __construct(
  50. \Magento\Backend\Block\Template\Context $context,
  51. \Magento\Tax\Model\Config $taxConfig,
  52. \Magento\Tax\Helper\Data $taxHelper,
  53. \Magento\Tax\Model\Calculation $taxCalculation,
  54. \Magento\Tax\Model\Sales\Order\TaxFactory $taxOrderFactory,
  55. \Magento\Sales\Helper\Admin $salesAdminHelper,
  56. array $data = []
  57. ) {
  58. $this->_taxHelper = $taxHelper;
  59. $this->_taxCalculation = $taxCalculation;
  60. $this->_taxOrderFactory = $taxOrderFactory;
  61. $this->_salesAdminHelper = $salesAdminHelper;
  62. parent::__construct($context, $taxConfig, $data);
  63. }
  64. /**
  65. * Get full information about taxes applied to order
  66. *
  67. * @return array
  68. */
  69. public function getFullTaxInfo()
  70. {
  71. $source = $this->getSource();
  72. if (!$source instanceof \Magento\Sales\Model\Order\Invoice
  73. && !$source instanceof \Magento\Sales\Model\Order\Creditmemo
  74. ) {
  75. $source = $this->getOrder();
  76. }
  77. $taxClassAmount = [];
  78. if (empty($source)) {
  79. return $taxClassAmount;
  80. }
  81. $taxClassAmount = $this->_taxHelper->getCalculatedTaxes($source);
  82. if (empty($taxClassAmount)) {
  83. $rates = $this->_taxOrderFactory->create()->getCollection()->loadByOrder($source)->toArray();
  84. $taxClassAmount = $this->_taxCalculation->reproduceProcess($rates['items']);
  85. }
  86. return $taxClassAmount;
  87. }
  88. /**
  89. * Display tax amount
  90. *
  91. * @param string $amount
  92. * @param string $baseAmount
  93. * @return string
  94. */
  95. public function displayAmount($amount, $baseAmount)
  96. {
  97. return $this->_salesAdminHelper->displayPrices($this->getSource(), $baseAmount, $amount, false, '<br />');
  98. }
  99. /**
  100. * Get store object for process configuration settings
  101. *
  102. * @return \Magento\Store\Model\Store
  103. */
  104. public function getStore()
  105. {
  106. return $this->_storeManager->getStore();
  107. }
  108. }