Doc-Build-Script fixen
[kivitendo-erp.git] / SL / AM.pm
index 4f5b971..df8bf23 100644 (file)
--- a/SL/AM.pm
+++ b/SL/AM.pm
@@ -210,7 +210,14 @@ sub save_account {
   # sanity check, can't have AR with AR_...
   if ($form->{AR} || $form->{AP} || $form->{IC}) {
     map { delete $form->{$_} }
-      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 CT_tax);
+      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} = "";
@@ -221,7 +228,7 @@ sub save_account {
                     $form->{IC},            $form->{IC_sale},
                     $form->{IC_cogs},       $form->{IC_taxpart},
                     $form->{IC_income},     $form->{IC_expense},
-                    $form->{IC_taxservice}, $form->{CT_tax}
+                    $form->{IC_taxservice}
     ) {
     $form->{link} .= "${item}:" if ($item);
   }
@@ -250,7 +257,7 @@ sub save_account {
 
     # if charttype is heading make sure certain values are empty
     # specifically, if charttype is changed from an existing account, empty the
-    # fields unnecessary for headings, so that e.g. heading doesn't appear in 
+    # fields unnecessary for headings, so that e.g. heading doesn't appear in
     # drop-down menues due to still having a valid "link" entry
 
     if ( $form->{charttype} eq 'H' ) {
@@ -474,110 +481,6 @@ sub delete_account {
   return $rc;
 }
 
-sub departments {
-  $main::lxdebug->enter_sub();
-
-  my ($self, $myconfig, $form) = @_;
-
-  # connect to database
-  my $dbh = $form->dbconnect($myconfig);
-
-  my $query = qq|SELECT d.id, d.description, d.role
-                 FROM department d
-                 ORDER BY 2|;
-
-  my $sth = $dbh->prepare($query);
-  $sth->execute || $form->dberror($query);
-
-  $form->{ALL} = [];
-  while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
-    push @{ $form->{ALL} }, $ref;
-  }
-
-  $sth->finish;
-  $dbh->disconnect;
-
-  $main::lxdebug->leave_sub();
-}
-
-sub get_department {
-  $main::lxdebug->enter_sub();
-
-  my ($self, $myconfig, $form) = @_;
-
-  # connect to database
-  my $dbh = $form->dbconnect($myconfig);
-
-  my $query = qq|SELECT d.description, d.role
-                 FROM department d
-                 WHERE d.id = ?|;
-  my $sth = $dbh->prepare($query);
-  $sth->execute($form->{id}) || $form->dberror($query . " ($form->{id})");
-
-  my $ref = $sth->fetchrow_hashref("NAME_lc");
-
-  map { $form->{$_} = $ref->{$_} } keys %$ref;
-
-  $sth->finish;
-
-  # see if it is in use
-  $query = qq|SELECT count(*) FROM dpt_trans d
-              WHERE d.department_id = ?|;
-  ($form->{orphaned}) = selectrow_query($form, $dbh, $query, $form->{id});
-
-  $form->{orphaned} = !$form->{orphaned};
-  $sth->finish;
-
-  $dbh->disconnect;
-
-  $main::lxdebug->leave_sub();
-}
-
-sub save_department {
-  $main::lxdebug->enter_sub();
-
-  my ($self, $myconfig, $form) = @_;
-  my ($query);
-
-  # connect to database
-  my $dbh = $form->dbconnect($myconfig);
-
-  my @values = ($form->{description}, $form->{role});
-  if ($form->{id}) {
-    $query = qq|UPDATE department SET
-                description = ?, role = ?
-                WHERE id = ?|;
-    push(@values, $form->{id});
-  } else {
-    $query = qq|INSERT INTO department
-                (description, role)
-                VALUES (?, ?)|;
-  }
-  do_query($form, $dbh, $query, @values);
-
-  $dbh->disconnect;
-
-  $main::lxdebug->leave_sub();
-}
-
-sub delete_department {
-  $main::lxdebug->enter_sub();
-
-  my ($self, $myconfig, $form) = @_;
-  my ($query);
-
-  # connect to database
-  my $dbh = $form->dbconnect($myconfig);
-
-  $query = qq|DELETE FROM department
-              WHERE id = ?|;
-  do_query($form, $dbh, $query, $form->{id});
-
-  $dbh->disconnect;
-
-  $main::lxdebug->leave_sub();
-}
-
 sub lead {
   $main::lxdebug->enter_sub();
 
@@ -675,106 +578,6 @@ sub delete_lead {
   $main::lxdebug->leave_sub();
 }
 
-sub business {
-  $main::lxdebug->enter_sub();
-
-  my ($self, $myconfig, $form) = @_;
-
-  # connect to database
-  my $dbh = $form->dbconnect($myconfig);
-
-  my $query = qq|SELECT id, description, discount, customernumberinit, salesman
-                 FROM business
-                 ORDER BY 2|;
-
-  my $sth = $dbh->prepare($query);
-  $sth->execute || $form->dberror($query);
-
-  while (my $ref = $sth->fetchrow_hashref("NAME_lc")) {
-    push @{ $form->{ALL} }, $ref;
-  }
-
-  $sth->finish;
-  $dbh->disconnect;
-
-  $main::lxdebug->leave_sub();
-}
-
-sub get_business {
-  $main::lxdebug->enter_sub();
-
-  my ($self, $myconfig, $form) = @_;
-
-  # connect to database
-  my $dbh = $form->dbconnect($myconfig);
-
-  my $query =
-    qq|SELECT b.description, b.discount, b.customernumberinit, b.salesman
-       FROM business b
-       WHERE b.id = ?|;
-  my $sth = $dbh->prepare($query);
-  $sth->execute($form->{id}) || $form->dberror($query . " ($form->{id})");
-
-  my $ref = $sth->fetchrow_hashref("NAME_lc");
-
-  map { $form->{$_} = $ref->{$_} } keys %$ref;
-
-  $sth->finish;
-
-  $dbh->disconnect;
-
-  $main::lxdebug->leave_sub();
-}
-
-sub save_business {
-  $main::lxdebug->enter_sub();
-
-  my ($self, $myconfig, $form) = @_;
-  my ($query);
-
-  # connect to database
-  my $dbh = $form->dbconnect($myconfig);
-
-  my @values = ($form->{description}, $form->{discount}, $form->{customernumberinit}, $form->{salesman} ? 't' : 'f');
-  # id is the old record
-  if ($form->{id}) {
-    $query = qq|UPDATE business SET
-                description = ?,
-                discount = ?,
-                customernumberinit = ?,
-                salesman = ?
-                WHERE id = ?|;
-    push(@values, $form->{id});
-  } else {
-    $query = qq|INSERT INTO business
-                (description, discount, customernumberinit, salesman)
-                VALUES (?, ?, ?, ?)|;
-  }
-  do_query($form, $dbh, $query, @values);
-
-  $dbh->disconnect;
-
-  $main::lxdebug->leave_sub();
-}
-
-sub delete_business {
-  $main::lxdebug->enter_sub();
-
-  my ($self, $myconfig, $form) = @_;
-
-  # connect to database
-  my $dbh = $form->dbconnect($myconfig);
-
-  my $query = qq|DELETE FROM business
-              WHERE id = ?|;
-  do_query($form, $dbh, $query, $form->{id});
-
-  $dbh->disconnect;
-
-  $main::lxdebug->leave_sub();
-}
-
-
 sub language {
   $main::lxdebug->enter_sub();
 
@@ -1169,7 +972,9 @@ sub prepare_template_filename {
     }
 
     $filename .= "." . ($form->{format} eq "html" ? "html" : "tex");
-    $filename =~ s|.*/||;
+    if ($form->{"formname"} =~ m|\.\.| || $form->{"formname"} =~ m|^/|) {
+      $filename =~ s|.*/||;
+    }
     $display_filename = $filename;
     $filename = "$myconfig->{templates}/$filename";
   }
@@ -1213,7 +1018,7 @@ sub save_template {
 
   my $error = "";
 
-  if (open(TEMPLATE, ">$filename")) {
+  if (open(TEMPLATE, ">", $filename)) {
     $content = Encode::encode('utf-8-strict', $content) if $::locale->is_utf8;
     $content =~ s/\r\n/\n/g;
     print(TEMPLATE $content);
@@ -1269,7 +1074,8 @@ sub save_defaults {
         pdonumber          = ?,
         curr               = ?,
         businessnumber     = ?,
-        weightunit         = ?|;
+        weightunit         = ?,
+        language_id        = ?|;
   my @values = ($accnos{inventory_accno}, $accnos{income_accno}, $accnos{expense_accno},
                 $accnos{fxgain_accno},    $accnos{fxloss_accno}, $accnos{ar_paid_accno},
                 $form->{invnumber},       $form->{cnnumber},
@@ -1279,7 +1085,8 @@ sub save_defaults {
                 $form->{articlenumber},   $form->{servicenumber},
                 $form->{sdonumber},       $form->{pdonumber},
                 $currency,
-                $form->{businessnumber},  $form->{weightunit});
+                $form->{businessnumber},  $form->{weightunit},
+                conv_i($form->{language_id}));
   do_query($form, $dbh, $query, @values);
 
   $dbh->commit();
@@ -1535,6 +1342,7 @@ sub retrieve_units {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form, $prefix) = @_;
+  $prefix ||= '';
 
   my $dbh = $form->get_standard_dbh;
 
@@ -1588,13 +1396,13 @@ sub retrieve_all_units {
 
   my $self = shift;
 
-  if (!$main::all_units) {
-    $main::all_units = $self->retrieve_units(\%main::myconfig, $main::form);
+  if (!$::request->{cache}{all_units}) {
+    $::request->{cache}{all_units} = $self->retrieve_units(\%main::myconfig, $main::form);
   }
 
   $main::lxdebug->leave_sub();
 
-  return $main::all_units;
+  return $::request->{cache}{all_units};
 }