X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FOE.pm;h=4599443180abe803a66267c31c07d0bd20eab84c;hb=e5e96630943eecefe1090cf39f600850e8f9e291;hp=16ce8c164006953ed3ec5831c890937943e1a4ad;hpb=32b9234509522f36795001a5298c19e3315cd2a5;p=kivitendo-erp.git diff --git a/SL/OE.pm b/SL/OE.pm index 16ce8c164..459944318 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -538,7 +538,7 @@ sub save { # force new project, if not set yet if ($::instance_conf->get_order_always_project && !$form->{"globalproject_id"} && ($form->{type} eq 'sales_order')) { require SL::DB::Customer; - my $customer = SL::DB::Manager::Customer->find_by( id => $form->{customer_id} ); + my $customer = SL::DB::Manager::Customer->find_by(id => $form->{customer_id}); die "Can't find customer" unless $customer; my $new_project = SL::DB::Project->new( projectnumber => $form->{ordnumber}, @@ -644,7 +644,7 @@ SQL my $tax = 0; map { $tax += $form->round_amount($taxaccounts{$_}, 2) } keys %taxaccounts; - $amount = $form->round_amount($netamount + $tax, 2); + $amount = $form->round_amount($netamount + $tax, 2, 1); $netamount = $form->round_amount($netamount, 2); if ($form->{currency} eq $form->{defaultcurrency}) { @@ -653,7 +653,10 @@ SQL $exchangerate = $form->check_exchangerate($myconfig, $form->{currency}, $form->{transdate}, ($form->{vc} eq 'customer') ? 'buy' : 'sell'); } - $form->{exchangerate} = $exchangerate || $form->parse_amount($myconfig, $form->{exchangerate}); + # from inputfield (exchangerate) or hidden (forex) + my $exchangerate_from_form = $form->{forex} || $form->parse_amount($myconfig, $form->{exchangerate}); + + $form->{exchangerate} = $exchangerate || $exchangerate_from_form; my $quotation = $form->{type} =~ /_order$/ ? 'f' : 't'; @@ -693,6 +696,8 @@ SQL conv_i($form->{id})); do_query($form, $dbh, $query, @values); + $form->new_lastmtime('oe'); + $form->{ordtotal} = $amount; $form->{name} = $form->{ $form->{vc} }; @@ -905,7 +910,9 @@ sub retrieve { (SELECT c.accno FROM chart c WHERE d.income_accno_id = c.id) AS income_accno, (SELECT c.accno FROM chart c WHERE d.expense_accno_id = c.id) AS expense_accno, (SELECT c.accno FROM chart c WHERE d.fxgain_accno_id = c.id) AS fxgain_accno, - (SELECT c.accno FROM chart c WHERE d.fxloss_accno_id = c.id) AS fxloss_accno + (SELECT c.accno FROM chart c WHERE d.fxloss_accno_id = c.id) AS fxloss_accno, + (SELECT c.accno FROM chart c WHERE d.rndgain_accno_id = c.id) AS rndgain_accno, + (SELECT c.accno FROM chart c WHERE d.rndloss_accno_id = c.id) AS rndloss_accno $query_add FROM defaults d|; my $ref = selectfirst_hashref_query($form, $dbh, $query);