CsvReport: Status mitspeichern
[kivitendo-erp.git] / SL / AM.pm
index f6c93ad..c7a88d2 100644 (file)
--- a/SL/AM.pm
+++ b/SL/AM.pm
@@ -213,6 +213,13 @@ 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);
   }
 
+  if ($form->{AR_include_in_dropdown}) {
+    $form->{$form->{AR_include_in_dropdown}} = $form->{AR_include_in_dropdown};
+  }
+  if ($form->{AP_include_in_dropdown}) {
+    $form->{$form->{AP_include_in_dropdown}} = $form->{AP_include_in_dropdown};
+  }
+
   $form->{link} = "";
   foreach my $item ($form->{AR},            $form->{AR_amount},
                     $form->{AR_tax},        $form->{AR_paid},
@@ -236,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);
@@ -243,7 +269,7 @@ sub save_account {
     do_query($form, $dbh, $query, $form->{"id"}, $form->{"accno"});
   }
 
-  my @values;
+  @values = ();
 
 
   if ($form->{id}) {
@@ -540,7 +566,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 +1135,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 +1528,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};