Auftrags-Controller: Wechselkurs pro Beleg …
[kivitendo-erp.git] / SL / Controller / Order.pm
index f06f06e..5d30492 100644 (file)
@@ -930,12 +930,11 @@ sub action_recalc_amounts_and_taxes {
 
 sub action_update_exchangerate {
   my ($self) = @_;
-  my $data = {};
 
-  $data = {
+  my $data = {
     is_standard   => $self->order->currency_id == $::instance_conf->get_currency_id,
     currency_name => $self->order->currency->name,
-    exchangerate  => $self->order->exchangerate_as_null_number,
+    exchangerate  => $self->order->daily_exchangerate_as_null_number,
   };
 
   $self->render(\SL::JSON::to_json($data), { type => 'json', process => 0 });
@@ -1364,8 +1363,9 @@ sub make_order {
   # order here solves this problem.
   my $order;
   $order   = SL::DB::Order->new(id => $::form->{id})->load(with => [ 'orderitems', 'orderitems.part' ]) if $::form->{id};
-  $order ||= SL::DB::Order->new(orderitems => [],
-                                quotation  => (any { $self->type eq $_ } (sales_quotation_type(), request_quotation_type())));
+  $order ||= SL::DB::Order->new(orderitems  => [],
+                                quotation   => (any { $self->type eq $_ } (sales_quotation_type(), request_quotation_type())),
+                                currency_id => $::instance_conf->get_currency_id());
 
   my $cv_id_method = $self->cv . '_id';
   if (!$::form->{id} && $::form->{$cv_id_method}) {
@@ -1373,9 +1373,8 @@ sub make_order {
     setup_order_from_cv($order);
   }
 
-  my $form_orderitems               = delete $::form->{order}->{orderitems};
-  my $form_periodic_invoices_config = delete $::form->{order}->{periodic_invoices_config};
-  my $exchangerate_as_null_number   = delete $::form->{order}->{exchangerate_as_null_number};
+  my $form_orderitems                  = delete $::form->{order}->{orderitems};
+  my $form_periodic_invoices_config    = delete $::form->{order}->{periodic_invoices_config};
 
   $order->assign_attributes(%{$::form->{order}});
 
@@ -1384,9 +1383,6 @@ sub make_order {
     $periodic_invoices_config->assign_attributes(%$periodic_invoices_config_attrs);
   }
 
-  # set exchangerate after transdate and currency_id
-  $order->assign_attributes(exchangerate_as_null_number => $exchangerate_as_null_number) if $order->currency_id;
-
   # remove deleted items
   $self->item_ids_to_delete([]);
   foreach my $idx (reverse 0..$#{$order->orderitems}) {
@@ -1528,8 +1524,6 @@ sub setup_order_from_cv {
 sub recalc {
   my ($self) = @_;
 
-  $self->order->currency_id($::instance_conf->get_currency_id()) unless $self->order->currency_id;
-
   my %pat = $self->order->calculate_prices_and_taxes();
 
   $self->{taxes} = [];
@@ -2126,8 +2120,6 @@ java script functions
 
 =item * testing
 
-=item * currency
-
 =item * credit limit
 
 =item * more workflows (quotation, rfq)