Merge branch 'master' of vc.linet-services.de:public/lx-office-erp
[kivitendo-erp.git] / SL / AM.pm
index 1a085b8..c7a88d2 100644 (file)
--- a/SL/AM.pm
+++ b/SL/AM.pm
@@ -243,6 +243,25 @@ sub save_account {
     $form->{id} = "";
   }
 
+  $query = '
+    SELECT accno
+    FROM chart
+    WHERE 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!'));
+  }
+
+
   if (!$form->{id} || $form->{id} eq "") {
     $query = qq|SELECT nextval('id')|;
     ($form->{"id"}) = selectrow_query($form, $dbh, $query);
@@ -250,7 +269,7 @@ sub save_account {
     do_query($form, $dbh, $query, $form->{"id"}, $form->{"accno"});
   }
 
-  my @values;
+  @values = ();
 
 
   if ($form->{id}) {
@@ -269,17 +288,6 @@ sub save_account {
       $form->{valid_from} = '';
     };
 
-    $query = '
-      SELECT
-        accno
-      FROM chart
-      WHERE accno = ?';
-    my ($accno) = selectrow_query($form, $dbh, $query, $form->{accno});
-
-    if ($accno) {
-      $form->error($::locale->text('Account number not unique!'));
-    }
-
     $query = qq|UPDATE chart SET
                   accno = ?,
                   description = ?,