PriceTaxCalculator - Währungskurs abhängig von Belegtyp
authorG. Richardson <information@kivitendo-premium.de>
Thu, 23 Jun 2016 14:41:50 +0000 (16:41 +0200)
committerG. Richardson <information@kivitendo-premium.de>
Fri, 8 Jul 2016 13:03:54 +0000 (15:03 +0200)
Bei OE-Belegen wird alles in der Belegwährung gespeichert, daher keine
Wechselkursumrechnung (exchangerate = 1).
Bei Rechnungsbelegen wird hingegen der Währungskurs berücksichtigt.

SL/DB/Helper/PriceTaxCalculator.pm

index 6afb45a..c36633d 100644 (file)
@@ -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);