X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=bin%2Fmozilla%2Foe.pl;h=146063080165f9c5a27cf6e79e3ed1e6a2ae8472;hb=df1b03d578280d71fb839b437505dd283f6dd749;hp=b9abb0f160c1592caf9397677716588fc81abd9b;hpb=eebe8e90991eacadb6fbd20a648c152017a620c7;p=kivitendo-erp.git diff --git a/bin/mozilla/oe.pl b/bin/mozilla/oe.pl index b9abb0f16..146063080 100644 --- a/bin/mozilla/oe.pl +++ b/bin/mozilla/oe.pl @@ -594,8 +594,6 @@ sub update { check_oe_access(); - my $order = _make_record(); - set_headings($form->{"id"} ? "edit" : "add"); $form->{update} = 1; @@ -680,6 +678,15 @@ sub update { if ($sellprice) { $form->{"sellprice_$i"} = $sellprice; } else { + my $record = _make_record(); + my $price_source = SL::PriceSource->new(record_item => $record->items->[$i-1], record => $record); + my $best_price = $price_source->best_price; + + if ($best_price) { + $::form->{"sellprice_$i"} = $best_price->price; + $::form->{"active_price_source_$i"} = $best_price->source; + } + $form->{"sellprice_$i"} *= (1 - $form->{tradediscount}); $form->{"sellprice_$i"} /= $exchangerate; # if there is an exchange rate adjust sellprice } @@ -2111,28 +2118,3 @@ sub dispatcher { $::form->error($::locale->text('No action defined.')); } -sub _make_record { - my $obj = SL::DB::Order->new; - - for my $method (keys %$::form) { - next unless $obj->can($method); - next unless $obj->meta->column($method); - - if ($obj->meta->column($method)->isa('Rose::DB::Object::Metadata::Column::Date')) { - $obj->${\"$method\_as_date"}($::form->{$method}); - } elsif ((ref $obj->meta->column($method)) =~ /^Rose::DB::Object::Metadata::Column::(?:Integer|Numeric|Float|DoublePrecsion)$/) { - $obj->$method($::form->{$method}); - } - } - - my @items; - for my $i (1 .. $::form->{rowcount}) { - next unless $::form->{"id_$i"}; - push @items, _make_record_item($i) - } - - $obj->orderitems(@items); - - return $obj; -} -