X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/abd56be11a58421b1d9401e812a83d28832b939a..fdebfd5d0c558cb156849b01c9c9268b29dc443b:/SL/DB/Helper/PriceTaxCalculator.pm diff --git a/SL/DB/Helper/PriceTaxCalculator.pm b/SL/DB/Helper/PriceTaxCalculator.pm index 6afb45a4f..9a2718415 100644 --- a/SL/DB/Helper/PriceTaxCalculator.pm +++ b/SL/DB/Helper/PriceTaxCalculator.pm @@ -40,7 +40,15 @@ sub calculate_prices_and_taxes { items => [ ], ); - _get_exchangerate($self, \%data, %params); + # set exchangerate in $data>{exchangerate} + if ( ref($self) eq 'SL::DB::Order' ) { + # orders store amount in the order currency + $data{exchangerate} = 1; + } else { + # invoices store amount in the default currency + _get_exchangerate($self, \%data, %params); + # $data{exchangerate} = $self->exchangerate; # untested alternative for setting exchangerate + }; $self->netamount( 0); $self->marge_total(0); @@ -104,7 +112,7 @@ sub _calculate_item { $item->marge_percent(0); } else { - my $lastcost = ! ($item->lastcost * 1) ? ($part->lastcost || 0) : $item->lastcost; + my $lastcost = !(($item->lastcost // 0) * 1) ? ($part->lastcost || 0) : $item->lastcost; $linetotal_cost = _round($lastcost * $item->qty / $item->marge_price_factor, 2); $item->marge_total( $linetotal - $linetotal_cost);