Bugfix: Angebot (Auch bei Rechnung): Menge mit Kommastelle, z.B 6,876, beim
[kivitendo-erp.git] / SL / AM.pm
index 81e463b..a06761c 100644 (file)
--- a/SL/AM.pm
+++ b/SL/AM.pm
@@ -41,8 +41,9 @@ sub get_account {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   $form->{id} = "NULL" unless ($form->{id});
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
 
@@ -50,19 +51,18 @@ sub get_account {
                  c.category, c.link, c.taxkey_id, c.pos_ustva, c.pos_bwa, c.pos_bilanz,c.pos_eur
                  FROM chart c
                 WHERE c.id = $form->{id}|;
-  
+
   my $sth = $dbh->prepare($query);
   $sth->execute || $form->dberror($query);
 
   my $ref = $sth->fetchrow_hashref(NAME_lc);
-  
+
   foreach my $key (keys %$ref) {
     $form->{"$key"} = $ref->{"$key"};
   }
 
   $sth->finish;
 
-
   # get default accounts
   $query = qq|SELECT inventory_accno_id, income_accno_id, expense_accno_id
               FROM defaults|;
@@ -76,7 +76,7 @@ sub get_account {
   $sth->finish;
 
   # get taxkeys and description
-  $query = qq|SELECT taxkey, taxdescription 
+  $query = qq|SELECT taxkey, taxdescription
               FROM tax|;
   $sth = $dbh->prepare($query);
   $sth->execute || $form->dberror($query);
@@ -104,7 +104,6 @@ sub get_account {
   $main::lxdebug->leave_sub();
 }
 
-
 sub save_account {
   $main::lxdebug->enter_sub();
 
@@ -115,28 +114,21 @@ 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);
+    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);
   }
-  
+
   $form->{link} = "";
-  foreach my $item ($form->{AR},
-                   $form->{AR_amount},
-                    $form->{AR_tax},
-                    $form->{AR_paid},
-                    $form->{AP},
-                   $form->{AP_amount},
-                   $form->{AP_tax},
-                   $form->{AP_paid},
-                   $form->{IC},
-                   $form->{IC_sale},
-                   $form->{IC_cogs},
-                   $form->{IC_taxpart},
-                   $form->{IC_income},
-                   $form->{IC_expense},
-                   $form->{IC_taxservice},
-                   $form->{CT_tax}
-                   ) {
-     $form->{link} .= "${item}:" if ($item);
+  foreach my $item ($form->{AR},            $form->{AR_amount},
+                    $form->{AR_tax},        $form->{AR_paid},
+                    $form->{AP},            $form->{AP_amount},
+                    $form->{AP_tax},        $form->{AP_paid},
+                    $form->{IC},            $form->{IC_sale},
+                    $form->{IC_cogs},       $form->{IC_taxpart},
+                    $form->{IC_income},     $form->{IC_expense},
+                    $form->{IC_taxservice}, $form->{CT_tax}
+    ) {
+    $form->{link} .= "${item}:" if ($item);
   }
   chop $form->{link};
 
@@ -145,14 +137,15 @@ sub save_account {
 
   # strip blanks from accno
   map { $form->{$_} =~ s/ //g; } qw(accno);
-  
+
   my ($query, $sth);
-  
-  if ($form->{id}eq "NULL") {
-    $form->{id}="";
-    }
-  
-  map({ $form->{$_} = "NULL" unless ($form->{$_}); } qw(pos_ustva pos_bwa pos_bilanz pos_eur));  
+
+  if ($form->{id} eq "NULL") {
+    $form->{id} = "";
+  }
+
+  map({ $form->{$_} = "NULL" unless ($form->{$_}); }
+      qw(pos_ustva pos_bwa pos_bilanz pos_eur));
 
   if ($form->{id}) {
     $query = qq|UPDATE chart SET
@@ -169,21 +162,21 @@ sub save_account {
                 pos_eur = $form->{pos_eur}
                WHERE id = $form->{id}|;
   } else {
-     
-    $query = qq|INSERT INTO chart 
+
+    $query = qq|INSERT INTO chart
                 (accno, description, charttype, gifi_accno, category, link, taxkey_id, pos_ustva, pos_bwa, pos_bilanz,pos_eur)
                 VALUES ('$form->{accno}', '$form->{description}',
                '$form->{charttype}', '$form->{gifi_accno}',
                '$form->{category}', '$form->{link}', $form->{taxkey_id}, $form->{pos_ustva}, $form->{pos_bwa}, $form->{pos_bilanz}, $form->{pos_eur})|;
   }
   $dbh->do($query) || $form->dberror($query);
-  
 
   if ($form->{IC_taxpart} || $form->{IC_taxservice} || $form->{CT_tax}) {
 
     my $chart_id = $form->{id};
-    
+
     unless ($form->{id}) {
+
       # get id from chart
       $query = qq|SELECT c.id
                   FROM chart c
@@ -194,7 +187,7 @@ sub save_account {
       ($chart_id) = $sth->fetchrow_array;
       $sth->finish;
     }
-    
+
     # add account if it doesn't exist in tax
     $query = qq|SELECT t.chart_id
                 FROM tax t
@@ -204,7 +197,7 @@ sub save_account {
 
     my ($tax_id) = $sth->fetchrow_array;
     $sth->finish;
-    
+
     # add tax if it doesn't exist
     unless ($tax_id) {
       $query = qq|INSERT INTO tax (chart_id, rate)
@@ -212,6 +205,7 @@ sub save_account {
       $dbh->do($query) || $form->dberror($query);
     }
   } else {
+
     # remove tax
     if ($form->{id}) {
       $query = qq|DELETE FROM tax
@@ -220,7 +214,6 @@ sub save_account {
     }
   }
 
-
   # commit
   my $rc = $dbh->commit;
   $dbh->disconnect;
@@ -230,8 +223,6 @@ sub save_account {
   return $rc;
 }
 
-
-
 sub delete_account {
   $main::lxdebug->enter_sub();
 
@@ -253,7 +244,6 @@ sub delete_account {
   }
   $sth->finish;
 
-
   # delete chart of account record
   $query = qq|DELETE FROM chart
               WHERE id = $form->{id}|;
@@ -261,23 +251,23 @@ sub delete_account {
 
   # set inventory_accno_id, income_accno_id, expense_accno_id to defaults
   $query = qq|UPDATE parts
-              SET inventory_accno_id = 
+              SET inventory_accno_id =
                         (SELECT inventory_accno_id FROM defaults)
              WHERE inventory_accno_id = $form->{id}|;
   $dbh->do($query) || $form->dberror($query);
-  
+
   $query = qq|UPDATE parts
               SET income_accno_id =
                         (SELECT income_accno_id FROM defaults)
              WHERE income_accno_id = $form->{id}|;
   $dbh->do($query) || $form->dberror($query);
-  
+
   $query = qq|UPDATE parts
               SET expense_accno_id =
                         (SELECT expense_accno_id FROM defaults)
              WHERE expense_accno_id = $form->{id}|;
   $dbh->do($query) || $form->dberror($query);
-  
+
   foreach my $table (qw(partstax customertax vendortax tax)) {
     $query = qq|DELETE FROM $table
                WHERE chart_id = $form->{id}|;
@@ -293,12 +283,11 @@ sub delete_account {
   return $rc;
 }
 
-
 sub gifi_accounts {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
 
@@ -315,12 +304,10 @@ sub gifi_accounts {
 
   $sth->finish;
   $dbh->disconnect;
-  
+
   $main::lxdebug->leave_sub();
 }
 
-
-
 sub get_gifi {
   $main::lxdebug->enter_sub();
 
@@ -328,7 +315,7 @@ sub get_gifi {
 
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   my $query = qq|SELECT g.accno, g.description
                  FROM gifi g
                 WHERE g.accno = '$form->{accno}'|;
@@ -336,7 +323,7 @@ sub get_gifi {
   $sth->execute || $form->dberror($query);
 
   my $ref = $sth->fetchrow_hashref(NAME_lc);
-  
+
   map { $form->{$_} = $ref->{$_} } keys %$ref;
 
   $sth->finish;
@@ -358,15 +345,14 @@ sub get_gifi {
   $main::lxdebug->leave_sub();
 }
 
-
 sub save_gifi {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   $form->{description} =~ s/\'/\'\'/g;
 
   # id is the old account number!
@@ -376,42 +362,40 @@ sub save_gifi {
                description = '$form->{description}'
                WHERE accno = '$form->{id}'|;
   } else {
-    $query = qq|INSERT INTO gifi 
+    $query = qq|INSERT INTO gifi
                 (accno, description)
                 VALUES ('$form->{accno}', '$form->{description}')|;
   }
   $dbh->do($query) || $form->dberror($query);
-  
+
   $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
 
-
 sub delete_gifi {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   # id is the old account number!
   $query = qq|DELETE FROM gifi
              WHERE accno = '$form->{id}'|;
   $dbh->do($query) || $form->dberror($query);
-  
+
   $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
 
-
 sub warehouses {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
 
@@ -428,12 +412,10 @@ sub warehouses {
 
   $sth->finish;
   $dbh->disconnect;
-  
+
   $main::lxdebug->leave_sub();
 }
 
-
-
 sub get_warehouse {
   $main::lxdebug->enter_sub();
 
@@ -441,7 +423,7 @@ sub get_warehouse {
 
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   my $query = qq|SELECT w.description
                  FROM warehouse w
                 WHERE w.id = $form->{id}|;
@@ -449,7 +431,7 @@ sub get_warehouse {
   $sth->execute || $form->dberror($query);
 
   my $ref = $sth->fetchrow_hashref(NAME_lc);
-  
+
   map { $form->{$_} = $ref->{$_} } keys %$ref;
 
   $sth->finish;
@@ -469,15 +451,14 @@ sub get_warehouse {
   $main::lxdebug->leave_sub();
 }
 
-
 sub save_warehouse {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   $form->{description} =~ s/\'/\'\'/g;
 
   if ($form->{id}) {
@@ -490,37 +471,34 @@ sub save_warehouse {
                 VALUES ('$form->{description}')|;
   }
   $dbh->do($query) || $form->dberror($query);
-  
+
   $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
 
-
 sub delete_warehouse {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   $query = qq|DELETE FROM warehouse
              WHERE id = $form->{id}|;
   $dbh->do($query) || $form->dberror($query);
-  
+
   $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
 
-
-
 sub departments {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
 
@@ -537,12 +515,10 @@ sub departments {
 
   $sth->finish;
   $dbh->disconnect;
-  
+
   $main::lxdebug->leave_sub();
 }
 
-
-
 sub get_department {
   $main::lxdebug->enter_sub();
 
@@ -550,7 +526,7 @@ sub get_department {
 
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   my $query = qq|SELECT d.description, d.role
                  FROM department d
                 WHERE d.id = $form->{id}|;
@@ -558,7 +534,7 @@ sub get_department {
   $sth->execute || $form->dberror($query);
 
   my $ref = $sth->fetchrow_hashref(NAME_lc);
-  
+
   map { $form->{$_} = $ref->{$_} } keys %$ref;
 
   $sth->finish;
@@ -578,15 +554,14 @@ sub get_department {
   $main::lxdebug->leave_sub();
 }
 
-
 sub save_department {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   $form->{description} =~ s/\'/\'\'/g;
 
   if ($form->{id}) {
@@ -595,41 +570,39 @@ sub save_department {
                role = '$form->{role}'
                WHERE id = $form->{id}|;
   } else {
-    $query = qq|INSERT INTO department 
+    $query = qq|INSERT INTO department
                 (description, role)
                 VALUES ('$form->{description}', '$form->{role}')|;
   }
   $dbh->do($query) || $form->dberror($query);
-  
+
   $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
 
-
 sub delete_department {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   $query = qq|DELETE FROM department
              WHERE id = $form->{id}|;
   $dbh->do($query) || $form->dberror($query);
-  
+
   $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
 
-
 sub business {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
 
@@ -646,12 +619,10 @@ sub business {
 
   $sth->finish;
   $dbh->disconnect;
-  
+
   $main::lxdebug->leave_sub();
 }
 
-
-
 sub get_business {
   $main::lxdebug->enter_sub();
 
@@ -659,15 +630,16 @@ sub get_business {
 
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
-  my $query = qq|SELECT b.description, b.discount, b.customernumberinit, b.salesman
+
+  my $query =
+    qq|SELECT b.description, b.discount, b.customernumberinit, b.salesman
                  FROM business b
                 WHERE b.id = $form->{id}|;
   my $sth = $dbh->prepare($query);
   $sth->execute || $form->dberror($query);
 
   my $ref = $sth->fetchrow_hashref(NAME_lc);
-  
+
   map { $form->{$_} = $ref->{$_} } keys %$ref;
 
   $sth->finish;
@@ -677,19 +649,18 @@ sub get_business {
   $main::lxdebug->leave_sub();
 }
 
-
 sub save_business {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   $form->{description} =~ s/\'/\'\'/g;
   $form->{discount} /= 100;
   $form->{salesman} *= 1;
-  
+
   # id is the old record
   if ($form->{id}) {
     $query = qq|UPDATE business SET
@@ -699,41 +670,39 @@ sub save_business {
                 salesman = '$form->{salesman}'
                WHERE id = $form->{id}|;
   } else {
-    $query = qq|INSERT INTO business 
+    $query = qq|INSERT INTO business
                 (description, discount, customernumberinit, salesman)
                 VALUES ('$form->{description}', $form->{discount}, '$form->{customernumberinit}', '$form->{salesman}')|;
   }
   $dbh->do($query) || $form->dberror($query);
-  
+
   $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);
-  
+
   $query = qq|DELETE FROM business
              WHERE id = $form->{id}|;
   $dbh->do($query) || $form->dberror($query);
-  
+
   $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
 
-
 sub sic {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
 
@@ -750,12 +719,10 @@ sub sic {
 
   $sth->finish;
   $dbh->disconnect;
-  
+
   $main::lxdebug->leave_sub();
 }
 
-
-
 sub get_sic {
   $main::lxdebug->enter_sub();
 
@@ -763,7 +730,7 @@ sub get_sic {
 
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   my $query = qq|SELECT s.code, s.sictype, s.description
                  FROM sic s
                 WHERE s.code = '$form->{code}'|;
@@ -771,7 +738,7 @@ sub get_sic {
   $sth->execute || $form->dberror($query);
 
   my $ref = $sth->fetchrow_hashref(NAME_lc);
-  
+
   map { $form->{$_} = $ref->{$_} } keys %$ref;
 
   $sth->finish;
@@ -781,18 +748,17 @@ sub get_sic {
   $main::lxdebug->leave_sub();
 }
 
-
 sub save_sic {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
-  $form->{code} =~ s/\'/\'\'/g;
+
+  $form->{code}        =~ s/\'/\'\'/g;
   $form->{description} =~ s/\'/\'\'/g;
-  
+
   # if there is an id
   if ($form->{id}) {
     $query = qq|UPDATE sic SET
@@ -801,41 +767,39 @@ sub save_sic {
                description = '$form->{description}'
                WHERE code = '$form->{id}'|;
   } else {
-    $query = qq|INSERT INTO sic 
+    $query = qq|INSERT INTO sic
                 (code, sictype, description)
                 VALUES ('$form->{code}', '$form->{sictype}', '$form->{description}')|;
   }
   $dbh->do($query) || $form->dberror($query);
-  
+
   $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
 
-
 sub delete_sic {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   $query = qq|DELETE FROM sic
              WHERE code = '$form->{code}'|;
   $dbh->do($query) || $form->dberror($query);
-  
+
   $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
 
-
 sub load_template {
   $main::lxdebug->enter_sub();
 
   my ($self, $form) = @_;
-  
+
   open(TEMPLATE, "$form->{file}") or $form->error("$form->{file} : $!");
 
   while (<TEMPLATE>) {
@@ -847,15 +811,14 @@ sub load_template {
   $main::lxdebug->leave_sub();
 }
 
-
 sub save_template {
   $main::lxdebug->enter_sub();
 
   my ($self, $form) = @_;
-  
+
   open(TEMPLATE, ">$form->{file}") or $form->error("$form->{file} : $!");
-  
-  # strip 
+
+  # strip
   $form->{body} =~ s/\r\n/\n/g;
   print TEMPLATE $form->{body};
 
@@ -864,28 +827,27 @@ sub save_template {
   $main::lxdebug->leave_sub();
 }
 
-
-
 sub save_preferences {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form, $memberfile, $userspath, $webdav) = @_;
 
-  map { ($form->{$_}) = split /--/, $form->{$_} } qw(inventory_accno income_accno expense_accno fxgain_accno fxloss_accno);
-  
+  map { ($form->{$_}) = split /--/, $form->{$_} }
+    qw(inventory_accno income_accno expense_accno fxgain_accno fxloss_accno);
+
   my @a;
   $form->{curr} =~ s/ //g;
   map { push(@a, uc pack "A3", $_) if $_ } split /:/, $form->{curr};
   $form->{curr} = join ':', @a;
-    
+
   # connect to database
   my $dbh = $form->dbconnect_noauto($myconfig);
-  
+
   # these defaults are database wide
   # user specific variables are in myconfig
   # save defaults
   my $query = qq|UPDATE defaults SET
-                 inventory_accno_id = 
+                 inventory_accno_id =
                     (SELECT c.id FROM chart c
                                WHERE c.accno = '$form->{inventory_accno}'),
                  income_accno_id =
@@ -923,10 +885,10 @@ sub save_preferences {
               SET name = '$name'
              WHERE login = '$form->{login}'|;
   $dbh->do($query) || $form->dberror($query);
-  
+
   foreach my $item (split / /, $form->{taxaccounts}) {
     $query = qq|UPDATE tax
-               SET rate = |.($form->{$item} / 100).qq|,
+               SET rate = | . ($form->{$item} / 100) . qq|,
                taxnumber = '$form->{"taxnumber_$item"}'
                WHERE chart_id = $item|;
     $dbh->do($query) || $form->dberror($query);
@@ -936,80 +898,77 @@ sub save_preferences {
   $dbh->disconnect;
 
   # save first currency in myconfig
-  $form->{currency} = substr($form->{curr},0,3);
-  
+  $form->{currency} = substr($form->{curr}, 0, 3);
+
   my $myconfig = new User "$memberfile", "$form->{login}";
-  
+
   foreach my $item (keys %$form) {
     $myconfig->{$item} = $form->{$item};
   }
 
   $myconfig->save_member($memberfile, $userspath);
-  
+
   if ($webdav) {
-    @webdavdirs = qw(angebote bestellungen rechnungen anfragen lieferantenbestellungen einkaufsrechnungen);
+    @webdavdirs =
+      qw(angebote bestellungen rechnungen anfragen lieferantenbestellungen einkaufsrechnungen);
     foreach $directory (@webdavdirs) {
-       $file = "webdav/".$directory."/webdav-user";
-       if ($myconfig->{$directory}) {
-               open (HTACCESS, "$file") or die "cannot open webdav-user $!\n";
-               while (<HTACCESS>) {
-                       ($login,$password) = split(/:/, $_);
-                       if ($login ne $form->{login}) {
-                               $newfile .= $_;
-                       }
-               }
-               close (HTACCESS);
-               open (HTACCESS, "> $file") or die "cannot open webdav-user $!\n";
-               $newfile .= $myconfig->{login}.":".$myconfig->{password}."\n";
-               print (HTACCESS $newfile);
-               close (HTACCESS);
-               }
-               else {
-               $form->{$directory} = 0;
-               open (HTACCESS, "$file") or die "cannot open webdav-user $!\n";
-               while (<HTACCESS>) {
-                       ($login,$password) = split(/:/, $_);
-                       if ($login ne $form->{login}) {
-                               $newfile .= $_;
-                       }
-               }
-               close (HTACCESS);
-               open (HTACCESS, "> $file") or die "cannot open webdav-user $!\n";
-               print (HTACCESS $newfile);
-               close (HTACCESS);
-               }
+      $file = "webdav/" . $directory . "/webdav-user";
+      if ($myconfig->{$directory}) {
+        open(HTACCESS, "$file") or die "cannot open webdav-user $!\n";
+        while (<HTACCESS>) {
+          ($login, $password) = split(/:/, $_);
+          if ($login ne $form->{login}) {
+            $newfile .= $_;
+          }
+        }
+        close(HTACCESS);
+        open(HTACCESS, "> $file") or die "cannot open webdav-user $!\n";
+        $newfile .= $myconfig->{login} . ":" . $myconfig->{password} . "\n";
+        print(HTACCESS $newfile);
+        close(HTACCESS);
+      } else {
+        $form->{$directory} = 0;
+        open(HTACCESS, "$file") or die "cannot open webdav-user $!\n";
+        while (<HTACCESS>) {
+          ($login, $password) = split(/:/, $_);
+          if ($login ne $form->{login}) {
+            $newfile .= $_;
+          }
+        }
+        close(HTACCESS);
+        open(HTACCESS, "> $file") or die "cannot open webdav-user $!\n";
+        print(HTACCESS $newfile);
+        close(HTACCESS);
       }
-  }    
+    }
+  }
 
   $main::lxdebug->leave_sub();
 
   return $rc;
 }
 
-
 sub defaultaccounts {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form) = @_;
-  
+
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
-  
+
   # get defaults from defaults table
   my $query = qq|SELECT * FROM defaults|;
-  my $sth = $dbh->prepare($query);
+  my $sth   = $dbh->prepare($query);
   $sth->execute || $form->dberror($query);
-  
-  $form->{defaults} = $sth->fetchrow_hashref(NAME_lc);
-  $form->{defaults}{IC} = $form->{defaults}{inventory_accno_id};
-  $form->{defaults}{IC_income} = $form->{defaults}{income_accno_id};
+
+  $form->{defaults}             = $sth->fetchrow_hashref(NAME_lc);
+  $form->{defaults}{IC}         = $form->{defaults}{inventory_accno_id};
+  $form->{defaults}{IC_income}  = $form->{defaults}{income_accno_id};
   $form->{defaults}{IC_expense} = $form->{defaults}{expense_accno_id};
-  $form->{defaults}{FX_gain} = $form->{defaults}{fxgain_accno_id};
-  $form->{defaults}{FX_loss} = $form->{defaults}{fxloss_accno_id};
-  
-  
-  $sth->finish;
+  $form->{defaults}{FX_gain}    = $form->{defaults}{fxgain_accno_id};
+  $form->{defaults}{FX_loss}    = $form->{defaults}{fxloss_accno_id};
 
+  $sth->finish;
 
   $query = qq|SELECT c.id, c.accno, c.description, c.link
               FROM chart c
@@ -1021,21 +980,22 @@ sub defaultaccounts {
   while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
     foreach my $key (split(/:/, $ref->{link})) {
       if ($key =~ /IC/) {
-       $nkey = $key;
-       if ($key =~ /cogs/) {
-         $nkey = "IC_expense";
-       }
-       if ($key =~ /sale/) {
-         $nkey = "IC_income";
-       }
-        %{ $form->{IC}{$nkey}{$ref->{accno}} } = ( id => $ref->{id},
-                                        description => $ref->{description} );
+        $nkey = $key;
+        if ($key =~ /cogs/) {
+          $nkey = "IC_expense";
+        }
+        if ($key =~ /sale/) {
+          $nkey = "IC_income";
+        }
+        %{ $form->{IC}{$nkey}{ $ref->{accno} } } = (
+                                             id          => $ref->{id},
+                                             description => $ref->{description}
+        );
       }
     }
   }
   $sth->finish;
 
-
   $query = qq|SELECT c.id, c.accno, c.description
               FROM chart c
              WHERE c.category = 'I'
@@ -1045,8 +1005,10 @@ sub defaultaccounts {
   $sth->execute || $self->dberror($query);
 
   while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
-    %{ $form->{IC}{FX_gain}{$ref->{accno}} } = ( id => $ref->{id},
-                                      description => $ref->{description} );
+    %{ $form->{IC}{FX_gain}{ $ref->{accno} } } = (
+                                             id          => $ref->{id},
+                                             description => $ref->{description}
+    );
   }
   $sth->finish;
 
@@ -1059,12 +1021,13 @@ sub defaultaccounts {
   $sth->execute || $self->dberror($query);
 
   while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
-    %{ $form->{IC}{FX_loss}{$ref->{accno}} } = ( id => $ref->{id},
-                                      description => $ref->{description} );
+    %{ $form->{IC}{FX_loss}{ $ref->{accno} } } = (
+                                             id          => $ref->{id},
+                                             description => $ref->{description}
+    );
   }
   $sth->finish;
 
-
   # now get the tax rates and numbers
   $query = qq|SELECT c.id, c.accno, c.description,
               t.rate * 100 AS rate, t.taxnumber
@@ -1075,48 +1038,49 @@ sub defaultaccounts {
   $sth->execute || $form->dberror($query);
 
   while (my $ref = $sth->fetchrow_hashref(NAME_lc)) {
-    $form->{taxrates}{$ref->{accno}}{id} = $ref->{id};
-    $form->{taxrates}{$ref->{accno}}{description} = $ref->{description};
-    $form->{taxrates}{$ref->{accno}}{taxnumber} = $ref->{taxnumber} if $ref->{taxnumber};
-    $form->{taxrates}{$ref->{accno}}{rate} = $ref->{rate} if $ref->{rate};
+    $form->{taxrates}{ $ref->{accno} }{id}          = $ref->{id};
+    $form->{taxrates}{ $ref->{accno} }{description} = $ref->{description};
+    $form->{taxrates}{ $ref->{accno} }{taxnumber}   = $ref->{taxnumber}
+      if $ref->{taxnumber};
+    $form->{taxrates}{ $ref->{accno} }{rate} = $ref->{rate} if $ref->{rate};
   }
 
   $sth->finish;
   $dbh->disconnect;
-  
+
   $main::lxdebug->leave_sub();
 }
 
-
 sub backup {
   $main::lxdebug->enter_sub();
 
   my ($self, $myconfig, $form, $userspath) = @_;
-  
+
   my $mail;
   my $err;
   my $boundary = time;
-  my $tmpfile = "$userspath/$boundary.$myconfig->{dbname}-$form->{dbversion}.sql";
+  my $tmpfile  =
+    "$userspath/$boundary.$myconfig->{dbname}-$form->{dbversion}.sql";
   my $out = $form->{OUT};
   $form->{OUT} = ">$tmpfile";
-  
+
   if ($form->{media} eq 'email') {
-   
+
     use SL::Mailer;
     $mail = new Mailer;
 
-    $mail->{to} = qq|"$myconfig->{name}" <$myconfig->{email}>|;
-    $mail->{from} = qq|"$myconfig->{name}" <$myconfig->{email}>|;
-    $mail->{subject} = "Lx-Office Backup / $myconfig->{dbname}-$form->{dbversion}.sql";
+    $mail->{to}      = qq|"$myconfig->{name}" <$myconfig->{email}>|;
+    $mail->{from}    = qq|"$myconfig->{name}" <$myconfig->{email}>|;
+    $mail->{subject} =
+      "Lx-Office Backup / $myconfig->{dbname}-$form->{dbversion}.sql";
     @{ $mail->{attachments} } = ($tmpfile);
     $mail->{version} = $form->{version};
-    $mail->{fileid} = "$boundary.";
+    $mail->{fileid}  = "$boundary.";
 
     $myconfig->{signature} =~ s/\\n/\r\n/g;
     $mail->{message} = "--\n$myconfig->{signature}";
-    
-  }
 
+  }
 
   open(OUT, "$form->{OUT}") or $form->error("$form->{OUT} : $!");
 
@@ -1125,14 +1089,15 @@ sub backup {
 
   my @sequences = ();
   my @functions = ();
-  my @triggers = ();
-  my @indices = ();
+  my @triggers  = ();
+  my @indices   = ();
   my %tablespecs;
+
   my $query = "";
   my @quote_chars;
 
   while (<FH>) {
+
     # Remove DOS and Unix style line endings.
     s/[\r\n]//g;
 
@@ -1154,6 +1119,7 @@ sub backup {
           push(@quote_chars, $char);
 
         } elsif ($char eq ";") {
+
           # Query is complete. Check for triggers and functions.
           if ($query =~ /^create\s+function\s+\"?(\w+)\"?/i) {
             push(@functions, $query);
@@ -1173,7 +1139,7 @@ sub backup {
           }
 
           $query = "";
-          $char = "";
+          $char  = "";
         }
 
         $query .= $char;
@@ -1182,17 +1148,16 @@ sub backup {
   }
   close(FH);
 
-
   # connect to database
   my $dbh = $form->dbconnect($myconfig);
 
   # get all the tables
-  my @tables = $dbh->tables( '', '', 'customer', '', {noprefix => 0});
+  my @tables = $dbh->tables('', '', 'customer', '', { noprefix => 0 });
 
   my $today = scalar localtime;
 
   $myconfig->{dbhost} = 'localhost' unless $myconfig->{dbhost};
-  
+
   print OUT qq|-- Lx-Office Backup
 -- Dataset: $myconfig->{dbname}
 -- Version: $form->{dbversion}
@@ -1213,21 +1178,21 @@ $myconfig->{dboptions};
   }
 
   print OUT "-- DROP Triggers\n";
-  
+
   foreach $item (@triggers) {
-       if ($item =~ /^create\s+trigger\s+\"?(\w+)\"?\s+.*on\s+\"?(\w+)\"?\s+/i) {
+    if ($item =~ /^create\s+trigger\s+\"?(\w+)\"?\s+.*on\s+\"?(\w+)\"?\s+/i) {
       print OUT qq|DROP TRIGGER "$1" ON "$2";\n|;
     }
   }
-  
+
   print OUT "-- DROP Functions\n";
-  
+
   foreach $item (@functions) {
     if ($item =~ /^create\s+function\s+\"?(\w+)\"?/i) {
       print OUT qq|DROP FUNCTION "$1" ();\n|;
     }
   }
-  
+
   foreach $table (@tables) {
     if (!($table =~ /^sql_.*/)) {
       my $query = qq|SELECT * FROM $table|;
@@ -1236,7 +1201,8 @@ $myconfig->{dboptions};
       $sth->execute || $form->dberror($query);
 
       $query = "INSERT INTO $table (";
-      map { $query .= qq|$sth->{NAME}->[$_],| } (0 .. $sth->{NUM_OF_FIELDS} - 1);
+      map { $query .= qq|$sth->{NAME}->[$_],| }
+        (0 .. $sth->{NUM_OF_FIELDS} - 1);
       chop $query;
 
       $query .= ") VALUES";
@@ -1271,7 +1237,6 @@ $myconfig->{dboptions};
     }
   }
 
-
   # create indices, sequences, functions and triggers
 
   print(OUT "-- CREATE Indices\n");
@@ -1280,11 +1245,11 @@ $myconfig->{dboptions};
   print OUT "-- CREATE Sequences\n";
   foreach $item (@sequences) {
     $query = qq|SELECT last_value FROM $item|;
-    $sth = $dbh->prepare($query);
+    $sth   = $dbh->prepare($query);
     $sth->execute || $form->dberror($query);
     my ($id) = $sth->fetchrow_array;
     $sth->finish;
-  
+
     print OUT qq|--
 CREATE SEQUENCE $item START $id;
 |;
@@ -1296,32 +1261,30 @@ CREATE SEQUENCE $item START $id;
   map { print(OUT $_, ";\n"); } @functions;
 
   print OUT "-- CREATE Triggers\n";
-  
+
   # triggers
   map { print(OUT $_, ";\n"); } @triggers;
 
-
   close(OUT);
-  
+
   $dbh->disconnect;
 
   # compress backup
   my @args = ("gzip", "$tmpfile");
   system(@args) == 0 or $form->error("$args[0] : $?");
-  
+
   $tmpfile .= ".gz";
 
   if ($form->{media} eq 'email') {
     @{ $mail->{attachments} } = ($tmpfile);
     $err = $mail->send($out);
   }
-  
-  
+
   if ($form->{media} eq 'file') {
-    
-    open(IN, "$tmpfile") or $form->error("$tmpfile : $!");
-    open(OUT, ">-") or $form->error("STDOUT : $!");
-   
+
+    open(IN,  "$tmpfile") or $form->error("$tmpfile : $!");
+    open(OUT, ">-")       or $form->error("STDOUT : $!");
+
     print OUT qq|Content-Type: application/x-tar-gzip;
 Content-Disposition: attachment; filename="$myconfig->{dbname}-$form->{dbversion}.sql.gz"
 
@@ -1333,15 +1296,14 @@ Content-Disposition: attachment; filename="$myconfig->{dbname}-$form->{dbversion
 
     close(IN);
     close(OUT);
-    
+
   }
 
   unlink "$tmpfile";
-   
+
   $main::lxdebug->leave_sub();
 }
 
-
 sub closedto {
   $main::lxdebug->enter_sub();
 
@@ -1350,19 +1312,18 @@ sub closedto {
   my $dbh = $form->dbconnect($myconfig);
 
   my $query = qq|SELECT closedto, revtrans FROM defaults|;
-  my $sth = $dbh->prepare($query);
+  my $sth   = $dbh->prepare($query);
   $sth->execute || $form->dberror($query);
 
   ($form->{closedto}, $form->{revtrans}) = $sth->fetchrow_array;
-  
+
   $sth->finish;
-  
+
   $dbh->disconnect;
 
   $main::lxdebug->leave_sub();
 }
 
 sub closebooks {
   $main::lxdebug->enter_sub();
 
@@ -1371,16 +1332,16 @@ sub closebooks {
   my $dbh = $form->dbconnect($myconfig);
 
   if ($form->{revtrans}) {
-   
+
     $query = qq|UPDATE defaults SET closedto = NULL,
                                    revtrans = '1'|;
   } else {
     if ($form->{closedto}) {
-    
+
       $query = qq|UPDATE defaults SET closedto = '$form->{closedto}',
                                      revtrans = '0'|;
     } else {
-      
+
       $query = qq|UPDATE defaults SET closedto = NULL,
                                      revtrans = '0'|;
     }
@@ -1388,12 +1349,10 @@ sub closebooks {
 
   # set close in defaults
   $dbh->do($query) || $form->dberror($query);
-  
+
   $dbh->disconnect;
-  
+
   $main::lxdebug->leave_sub();
 }
 
-
 1;
-