X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/c4a045af6606109317782780e0caafa48c1e7895..7cad87f84d2284d6836f17d672ce44c9c3418f2b:/SL/Controller/Order.pm?ds=inline diff --git a/SL/Controller/Order.pm b/SL/Controller/Order.pm index caa3f918d..460b59305 100644 --- a/SL/Controller/Order.pm +++ b/SL/Controller/Order.pm @@ -934,7 +934,7 @@ sub action_update_exchangerate { 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 }); @@ -1044,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); @@ -1375,7 +1377,6 @@ sub make_order { my $form_orderitems = delete $::form->{order}->{orderitems}; my $form_periodic_invoices_config = delete $::form->{order}->{periodic_invoices_config}; - my $form_exchangerate_as_null_number = delete $::form->{order}->{exchangerate_as_null_number}; $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 => $form_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; } @@ -1729,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 kivi.Validator); $self->setup_edit_action_bar; } @@ -1748,7 +1748,7 @@ sub setup_edit_action_bar { call => [ 'kivi.Order.save', 'save', $::instance_conf->get_order_warn_duplicate_parts, $::instance_conf->get_order_warn_no_deliverydate, ], - checks => [ 'kivi.Order.check_save_active_periodic_invoices' ], + checks => [ 'kivi.Order.check_save_active_periodic_invoices', ['kivi.validate_form','#order_form'] ], ], action => [ t8('Save as new'),