| 
				
			 | 
			
			
				
				@@ -107,11 +107,15 @@ class DocumentLineItem extends Model 
			 | 
		
		
	
		
			
			| 
				107
			 | 
			
				107
			 | 
			
			
				
				     public function calculateTaxTotal(): Money 
			 | 
		
		
	
		
			
			| 
				108
			 | 
			
				108
			 | 
			
			
				
				     { 
			 | 
		
		
	
		
			
			| 
				109
			 | 
			
				109
			 | 
			
			
				
				         $subtotal = money($this->subtotal, CurrencyAccessor::getDefaultCurrency()); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				110
			 | 
			
			
				
				+        $defaultCurrency = CurrencyAccessor::getDefaultCurrency(); 
			 | 
		
		
	
		
			
			| 
				110
			 | 
			
				111
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				111
			 | 
			
				
			 | 
			
			
				
				-        return $this->taxes->reduce( 
			 | 
		
		
	
		
			
			| 
				112
			 | 
			
				
			 | 
			
			
				
				-            fn (Money $carry, Adjustment $tax) => $carry->add($subtotal->multiply($tax->rate / 100)), 
			 | 
		
		
	
		
			
			| 
				113
			 | 
			
				
			 | 
			
			
				
				-            money(0, CurrencyAccessor::getDefaultCurrency()) 
			 | 
		
		
	
		
			
			| 
				114
			 | 
			
				
			 | 
			
			
				
				-        ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				112
			 | 
			
			
				
				+        return $this->taxes->reduce(function (Money $carry, Adjustment $tax) use ($subtotal, $defaultCurrency) { 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				113
			 | 
			
			
				
				+            if ($tax->computation->isPercentage()) { 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				114
			 | 
			
			
				
				+                return $carry->add($subtotal->multiply($tax->rate / 100)); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				115
			 | 
			
			
				
				+            } else { 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				116
			 | 
			
			
				
				+                return $carry->add(money($tax->rate, $defaultCurrency)); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				117
			 | 
			
			
				
				+            } 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				118
			 | 
			
			
				
				+        }, money(0, $defaultCurrency)); 
			 | 
		
		
	
		
			
			| 
				115
			 | 
			
				119
			 | 
			
			
				
				     } 
			 | 
		
		
	
		
			
			| 
				116
			 | 
			
				120
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				117
			 | 
			
				121
			 | 
			
			
				
				     public function calculateTaxTotalAmount(): int 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -132,11 +136,15 @@ class DocumentLineItem extends Model 
			 | 
		
		
	
		
			
			| 
				132
			 | 
			
				136
			 | 
			
			
				
				     public function calculateDiscountTotal(): Money 
			 | 
		
		
	
		
			
			| 
				133
			 | 
			
				137
			 | 
			
			
				
				     { 
			 | 
		
		
	
		
			
			| 
				134
			 | 
			
				138
			 | 
			
			
				
				         $subtotal = money($this->subtotal, CurrencyAccessor::getDefaultCurrency()); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				139
			 | 
			
			
				
				+        $defaultCurrency = CurrencyAccessor::getDefaultCurrency(); 
			 | 
		
		
	
		
			
			| 
				135
			 | 
			
				140
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				136
			 | 
			
				
			 | 
			
			
				
				-        return $this->discounts->reduce( 
			 | 
		
		
	
		
			
			| 
				137
			 | 
			
				
			 | 
			
			
				
				-            fn (Money $carry, Adjustment $discount) => $carry->add($subtotal->multiply($discount->rate / 100)), 
			 | 
		
		
	
		
			
			| 
				138
			 | 
			
				
			 | 
			
			
				
				-            money(0, CurrencyAccessor::getDefaultCurrency()) 
			 | 
		
		
	
		
			
			| 
				139
			 | 
			
				
			 | 
			
			
				
				-        ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				141
			 | 
			
			
				
				+        return $this->discounts->reduce(function (Money $carry, Adjustment $discount) use ($subtotal, $defaultCurrency) { 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				142
			 | 
			
			
				
				+            if ($discount->computation->isPercentage()) { 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				143
			 | 
			
			
				
				+                return $carry->add($subtotal->multiply($discount->rate / 100)); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				144
			 | 
			
			
				
				+            } else { 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				145
			 | 
			
			
				
				+                return $carry->add(money($discount->rate, $defaultCurrency)); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				146
			 | 
			
			
				
				+            } 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				147
			 | 
			
			
				
				+        }, money(0, $defaultCurrency)); 
			 | 
		
		
	
		
			
			| 
				140
			 | 
			
				148
			 | 
			
			
				
				     } 
			 | 
		
		
	
		
			
			| 
				141
			 | 
			
				149
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				142
			 | 
			
				150
			 | 
			
			
				
				     public function calculateDiscountTotalAmount(): int 
			 |