1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create;
use Magento\Framework\Pricing\PriceCurrencyInterface;
/**
* Credit memo adjustmets block
*
* @api
* @since 100.0.2
*/
class Adjustments extends \Magento\Backend\Block\Template
{
/**
* Source object
*
* @var \Magento\Framework\DataObject
*/
protected $_source;
/**
* Tax config
*
* @var \Magento\Tax\Model\Config
*/
protected $_taxConfig;
/**
* @var PriceCurrencyInterface
*/
protected $priceCurrency;
/**
* @param \Magento\Backend\Block\Template\Context $context
* @param \Magento\Tax\Model\Config $taxConfig
* @param PriceCurrencyInterface $priceCurrency
* @param array $data
*/
public function __construct(
\Magento\Backend\Block\Template\Context $context,
\Magento\Tax\Model\Config $taxConfig,
PriceCurrencyInterface $priceCurrency,
array $data = []
) {
$this->_taxConfig = $taxConfig;
$this->priceCurrency = $priceCurrency;
parent::__construct($context, $data);
}
/**
* Initialize creditmemo adjustment totals
*
* @return $this
*/
public function initTotals()
{
$parent = $this->getParentBlock();
$this->_source = $parent->getSource();
$total = new \Magento\Framework\DataObject(['code' => 'agjustments', 'block_name' => $this->getNameInLayout()]);
$parent->removeTotal('shipping');
$parent->removeTotal('adjustment_positive');
$parent->removeTotal('adjustment_negative');
$parent->addTotal($total);
return $this;
}
/**
* Get source object
*
* @return \Magento\Framework\DataObject
*/
public function getSource()
{
return $this->_source;
}
/**
* Get credit memo shipping amount depend on configuration settings
*
* @return float
*/
public function getShippingAmount()
{
$source = $this->getSource();
if ($this->_taxConfig->displaySalesShippingInclTax($source->getOrder()->getStoreId())) {
$shipping = $source->getBaseShippingInclTax();
} else {
$shipping = $source->getBaseShippingAmount();
}
return $this->priceCurrency->round($shipping) * 1;
}
/**
* Get label for shipping total based on configuration settings
*
* @return string
*/
public function getShippingLabel()
{
$source = $this->getSource();
if ($this->_taxConfig->displaySalesShippingInclTax($source->getOrder()->getStoreId())) {
$label = __('Refund Shipping (Incl. Tax)');
} elseif ($this->_taxConfig->displaySalesShippingBoth($source->getOrder()->getStoreId())) {
$label = __('Refund Shipping (Excl. Tax)');
} else {
$label = __('Refund Shipping');
}
return $label;
}
}