X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/f8b23396dfa8e2c064c025f2b2786366ba3908af..393cef65daf67853ed468b4778b7c738773d48f1:/SL/Controller/Order.pm diff --git a/SL/Controller/Order.pm b/SL/Controller/Order.pm index f06f06e03..516ad4c36 100644 --- a/SL/Controller/Order.pm +++ b/SL/Controller/Order.pm @@ -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 }); @@ -1045,9 +1044,11 @@ sub action_update_row_from_master_data { $price_src = $price_source->best_price ? $price_source->best_price : $price_source->price_from_source(""); + $price_src->price($::form->round_amount($price_src->price / $self->order->exchangerate, 5)) if $self->order->exchangerate; $price_src->price(0) if !$price_source->best_price; } + $item->sellprice($price_src->price); $item->active_price_source($price_src); @@ -1364,8 +1365,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 +1375,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 +1385,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}) { @@ -1467,8 +1465,9 @@ sub new_item { $price_src->price($item->sellprice); } else { $price_src = $price_source->best_price - ? $price_source->best_price - : $price_source->price_from_source(""); + ? $price_source->best_price + : $price_source->price_from_source(""); + $price_src->price($::form->round_amount($price_src->price / $record->exchangerate, 5)) if $record->exchangerate; $price_src->price(0) if !$price_source->best_price; } @@ -1528,8 +1527,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} = []; @@ -1731,7 +1728,8 @@ sub pre_render { $self->get_item_cvpartnumber($_) for @{$self->order->items_sorted}; - $::request->{layout}->use_javascript("${_}.js") for qw(kivi.SalesPurchase kivi.Order kivi.File ckeditor/ckeditor ckeditor/adapters/jquery edit_periodic_invoices_config calculate_qty); + $::request->{layout}->use_javascript("${_}.js") for qw(kivi.SalesPurchase kivi.Order kivi.File ckeditor/ckeditor ckeditor/adapters/jquery + edit_periodic_invoices_config calculate_qty); $self->setup_edit_action_bar; } @@ -2126,8 +2124,6 @@ java script functions =item * testing -=item * currency - =item * credit limit =item * more workflows (quotation, rfq)