X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FAM.pm;h=591f580b720f96caf805e8e2c06b9714bbce5050;hb=e36b34d301ba80bbb8f9ba2fe33608e153f8f71c;hp=6862eb7732a8b399fca4a4815497344616401d66;hpb=9d218dc8b07ff4f9be9589cb3246e50653e2b6e2;p=kivitendo-erp.git diff --git a/SL/AM.pm b/SL/AM.pm index 6862eb773..591f580b7 100644 --- a/SL/AM.pm +++ b/SL/AM.pm @@ -244,11 +244,18 @@ sub save_account { } $query = ' - SELECT - accno + SELECT accno FROM chart WHERE accno = ?'; - my ($accno) = selectrow_query($form, $dbh, $query, $form->{accno}); + + my @values = ($form->{accno}); + + if ( $form->{id} ) { + $query .= ' AND NOT id = ?'; + push(@values, $form->{id}); + } + + my ($accno) = selectrow_query($form, $dbh, $query, @values); if ($accno) { $form->error($::locale->text('Account number not unique!')); @@ -262,7 +269,7 @@ sub save_account { do_query($form, $dbh, $query, $form->{"id"}, $form->{"accno"}); } - my @values; + @values = (); if ($form->{id}) { @@ -468,11 +475,9 @@ sub delete_account { do_query($form, $dbh, $query, $form->{id}); } - foreach my $table (qw(partstax customertax vendortax tax)) { - $query = qq|DELETE FROM $table - WHERE chart_id = ?|; - do_query($form, $dbh, $query, $form->{id}); - } + $query = qq|DELETE FROM tax + WHERE chart_id = ?|; + do_query($form, $dbh, $query, $form->{id}); # delete chart of account record $query = qq|DELETE FROM chart @@ -1772,7 +1777,9 @@ sub get_tax { taxkey, taxdescription, round(rate * 100, 2) AS rate, - chart_id + chart_id, + (id IN (SELECT tax_id + FROM acc_trans)) AS tax_already_used FROM tax WHERE id = ? |;