X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FOE.pm;h=974a1a1bdcedc935e7cdc6ad82116f348a610a2f;hb=9b16f8f89f00a7429f85144527a97d1168ea0000;hp=1169aab25330f71a831241e048c3251787ef25ea;hpb=1de4793128f35c4a8d5b64ec18c48dcc46e6765a;p=kivitendo-erp.git diff --git a/SL/OE.pm b/SL/OE.pm index 1169aab25..974a1a1bd 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -121,9 +121,10 @@ sub transactions { qq| o.closed, o.delivered, o.quonumber, o.cusordnumber, o.shippingpoint, o.shipvia, | . qq| o.transaction_description, | . qq| o.marge_total, o.marge_percent, | . + qq| o.exchangerate, | . qq| o.itime::DATE AS insertdate, | . qq| department.description as department, | . - qq| ex.$rate AS exchangerate, | . + qq| ex.$rate AS daily_exchangerate, | . qq| pt.description AS payment_terms, | . qq| pr.projectnumber AS globalprojectnumber, | . qq| e.name AS employee, s.name AS salesman, | . @@ -384,7 +385,8 @@ SQL $ref->{remaining_amount} = $ref->{amount} - $ref->{billed_amount}; $ref->{remaining_netamount} = $ref->{netamount} - $ref->{billed_netamount}; } - $ref->{exchangerate} = 1 unless $ref->{exchangerate}; + $ref->{exchangerate} ||= $ref->{daily_exchangerate}; + $ref->{exchangerate} ||= 1; push @{ $form->{OE} }, $ref if $ref->{id} != $id{ $ref->{id} }; $id{ $ref->{id} } = $ref->{id}; } @@ -623,7 +625,7 @@ sub _save { ); $new_project->save; $form->{"globalproject_id"} = $new_project->id; - }; + } CVar->get_non_editable_ic_cvars(form => $form, dbh => $dbh, @@ -1195,7 +1197,7 @@ sub _retrieve { # get tax rates and description my $accno_id = ($form->{vc} eq "customer") ? $ref->{income_accno} : $ref->{expense_accno}; $query = - qq|SELECT c.accno, t.taxdescription, t.rate, c.accno as taxnumber | . + qq|SELECT c.accno, t.taxdescription, t.rate, t.id as tax_id, c.accno as taxnumber | . qq|FROM tax t | . qq|LEFT JOIN chart c on (c.id = t.chart_id) | . qq|WHERE t.id IN (SELECT tk.tax_id FROM taxkeys tk | . @@ -1215,6 +1217,7 @@ sub _retrieve { $form->{"$ptr->{accno}_rate"} = $ptr->{rate}; $form->{"$ptr->{accno}_description"} = $ptr->{taxdescription}; $form->{"$ptr->{accno}_taxnumber"} = $ptr->{taxnumber}; + $form->{"$ptr->{accno}_tax_id"} = $ptr->{tax_id}; $form->{taxaccounts} .= "$ptr->{accno} "; } @@ -1592,17 +1595,13 @@ sub order_details { push(@{ $form->{TEMPLATE_ARRAYS}->{taxrate} }, $form->format_amount($myconfig, $form->{"${item}_rate"} * 100)); push(@{ $form->{TEMPLATE_ARRAYS}->{taxrate_nofmt} }, $form->{"${item}_rate"} * 100); push(@{ $form->{TEMPLATE_ARRAYS}->{taxnumber} }, $form->{"${item}_taxnumber"}); + push(@{ $form->{TEMPLATE_ARRAYS}->{tax_id} }, $form->{"${item}_tax_id"}); - my $tax_objs = SL::DB::Manager::Tax->get_objects_from_sql( - sql => 'SELECT * from tax where chart_id = (SELECT id FROM chart WHERE accno = ?)', - args => [ $form->{"${item}_taxnumber"} ] - ); - my $tax_obj; - if ( $tax_objs ) { - $tax_obj = $tax_objs->[0]; + if ( $form->{"${item}_tax_id"} ) { + my $tax_obj = SL::DB::Manager::Tax->find_by(id => $form->{"${item}_tax_id"}) or die "Can't find tax with id " . $form->{"${item}_tax_id"}; + my $description = $tax_obj ? $tax_obj->translated_attribute('taxdescription', $form->{language_id}, 0) : ''; + push(@{ $form->{TEMPLATE_ARRAYS}->{taxdescription} }, $description . q{ } . 100 * $form->{"${item}_rate"} . q{%}); } - my $description = $tax_obj ? $tax_obj->translated_attribute('taxdescription', $form->{language_id}, 0) : ''; - push(@{ $form->{TEMPLATE_ARRAYS}->{taxdescription} }, $description . q{ } . 100 * $form->{"${item}_rate"} . q{%}); } $form->{nodiscount_subtotal} = $form->format_amount($myconfig, $form->{nodiscount_total}, 2);