|  | @@ -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
 |