Zu viel Code entfernt
[kivitendo-erp.git] / SL / AM.pm
index f6c93ad..af2c25f 100644 (file)
--- a/SL/AM.pm
+++ b/SL/AM.pm
@@ -213,6 +213,10 @@ sub save_account {
       qw(AR_amount AR_tax AR_paid AP_amount AP_tax AP_paid IC_sale IC_cogs IC_taxpart IC_income IC_expense IC_taxservice);
   }
 
+  for (qw(AR_include_in_dropdown AP_include_in_dropdown)) {
+    $form->{$form->{$_}} = $form->{$_} if $form->{$_};
+  }
+
   $form->{link} = "";
   foreach my $item ($form->{AR},            $form->{AR_amount},
                     $form->{AR_tax},        $form->{AR_paid},
@@ -236,14 +240,33 @@ 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);
-    $query = qq|INSERT INTO chart (id, accno) VALUES (?, ?)|;
-    do_query($form, $dbh, $query, $form->{"id"}, $form->{"accno"});
+    $query = qq|INSERT INTO chart (id, accno, link) VALUES (?, ?, ?)|;
+    do_query($form, $dbh, $query, $form->{"id"}, $form->{"accno"}, '');
   }
 
-  my @values;
+  @values = ();
 
 
   if ($form->{id}) {
@@ -449,11 +472,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
@@ -540,7 +561,7 @@ sub save_lead {
     $query = qq|UPDATE leads SET
                 lead = ?
                 WHERE id = ?|;
-    puhs(@values, $form->{id});
+    push(@values, $form->{id});
   } else {
     $query = qq|INSERT INTO leads
                 (lead)
@@ -1109,7 +1130,7 @@ sub save_preferences {
 
   $form->{businessnumber} =  $businessnumber;
 
-  $myconfig = new User($form->{login});
+  $myconfig = User->new(login => $form->{login});
 
   foreach my $item (keys %$form) {
     $myconfig->{$item} = $form->{$item};
@@ -1502,6 +1523,10 @@ sub convert_unit {
   $main::lxdebug->enter_sub(2);
   my ($this, $a, $b, $all_units) = @_;
 
+  if (!$all_units) {
+    $all_units = $this->retrieve_all_units;
+  }
+
   $main::lxdebug->leave_sub(2) and return 0 unless $a && $b;
   $main::lxdebug->leave_sub(2) and return 0 unless $all_units->{$a} && $all_units->{$b};
   $main::lxdebug->leave_sub(2) and return 0 unless $all_units->{$a}{base_unit} eq $all_units->{$b}{base_unit};
@@ -1749,7 +1774,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 = ? |;