X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/53db54a80c97c95321d567bfc6f73ae47d7d6a4d..3279f52ddbfe79dc10924c31daaf5f55d9e7ab64:/SL/OE.pm diff --git a/SL/OE.pm b/SL/OE.pm index d86b6c0ec..144cb1cfd 100644 --- a/SL/OE.pm +++ b/SL/OE.pm @@ -610,6 +610,9 @@ sub _save { require SL::DB::Customer; my $customer = SL::DB::Manager::Customer->find_by(id => $form->{customer_id}); die "Can't find customer" unless $customer; + die $main::locale->text("Error while creating project with project number of new order number, project number #1 already exists!", $form->{ordnumber}) + if SL::DB::Manager::Project->find_by(projectnumber => $form->{ordnumber}); + my $new_project = SL::DB::Project->new( projectnumber => $form->{ordnumber}, description => $customer->name, @@ -1192,7 +1195,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 | . @@ -1212,6 +1215,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} "; } @@ -1589,17 +1593,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);