]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Form.pm
Den Code für das Bearbeiten von Vorlagen in eine eigene Datei ausgelagert. Zusätzlich...
[mfinanz.git] / SL / Form.pm
index ecc4c5708927f00cf991a28f26354eb41ad43f97..1912f7560f749535322738bf3713897aae05fcdc 100644 (file)
@@ -451,6 +451,7 @@ sub parse_html_template {
   } else {
     $language = $main::myconfig{"countrycode"};
   }
+  $language = "de" unless ($language);
 
   if (-f "templates/webpages/${file}_${language}.html") {
     if ((-f ".developer") &&
@@ -795,7 +796,7 @@ sub parse_template {
 
       map { $mail->{$_} = $self->{$_} }
         qw(cc bcc subject message version format charset);
-      $mail->{to}     = qq|$self->{email}|;
+      $mail->{to} = $self->{EMAIL_RECIPIENT} ? $self->{EMAIL_RECIPIENT} : $self->{email};
       $mail->{from}   = qq|"$myconfig->{name}" <$myconfig->{email}>|;
       $mail->{fileid} = "$fileid.";
       $myconfig->{signature} =~ s/\\r\\n/\\n/g;
@@ -1468,7 +1469,7 @@ sub _get_printers {
 
   $key = "all_printers" unless ($key);
 
-  my $query = qq|SELECT id, printer_description, printer_command FROM printers|;
+  my $query = qq|SELECT id, printer_description, printer_command, template_code FROM printers|;
 
   $self->{$key} = selectall_hashref_query($self, $dbh, $query);
 
@@ -1537,6 +1538,20 @@ sub _get_business_types {
   $main::lxdebug->leave_sub();
 }
 
+sub _get_languages {
+  $main::lxdebug->enter_sub();
+
+  my ($self, $dbh, $key) = @_;
+
+  $key = "all_languages" unless ($key);
+
+  my $query = qq|SELECT * FROM language ORDER BY id|;
+
+  $self->{$key} = selectall_hashref_query($self, $dbh, $query);
+
+  $main::lxdebug->leave_sub();
+}
+
 sub get_lists {
   $main::lxdebug->enter_sub();
 
@@ -1567,6 +1582,10 @@ sub get_lists {
     $self->_get_printers($dbh, $params{"printers"});
   }
 
+  if ($params{"languages"}) {
+    $self->_get_languages($dbh, $params{"languages"});
+  }
+
   if ($params{"charts"}) {
     $self->_get_charts($dbh, $params{"charts"});
   }
@@ -1821,7 +1840,7 @@ sub create_links {
 
     $sth = $dbh->prepare($query);
 
-    do_statement($form, $sth, $query, '%' . $module . '%');
+    do_statement($self, $sth, $query, '%' . $module . '%');
 
     $self->{accounts} = "";
     while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
@@ -1846,16 +1865,16 @@ sub create_links {
 
   # get taxkeys and description
   $query = qq|SELECT id, taxkey, taxdescription FROM tax|;
-  $self->{TAXKEY} = selectall_hashref_query($form, $dbh, $query);
+  $self->{TAXKEY} = selectall_hashref_query($self, $dbh, $query);
 
   # get tax zones
   $query = qq|SELECT id, description FROM tax_zones|;
-  $self->{TAXZONE} = selectall_hashref_query($form, $dbh, $query);
+  $self->{TAXZONE} = selectall_hashref_query($self, $dbh, $query);
 
   if (($module eq "AP") || ($module eq "AR")) {
     # get tax rates and description
     $query = qq|SELECT * FROM tax|;
-    $self->{TAX} = selectall_hashref_query($form, $dbh, $query);
+    $self->{TAX} = selectall_hashref_query($self, $dbh, $query);
   }
 
   if ($self->{id}) {
@@ -1885,17 +1904,17 @@ sub create_links {
     }
 
     # now get the account numbers
-    $query = qq|
-      SELECT
-        c.accno, c.description, c.link, c.taxkey_id,
-        tk.tax_id
-      FROM chart c
-      LEFT JOIN taxkeys tk ON (tk.chart_id = c.id)
-      WHERE (c.link LIKE ?) AND (tk.chart_id = c.id) AND NOT (c.link LIKE '%_tax%')
-      ORDER BY c.accno|;
+     $query = qq|SELECT c.accno, c.description, c.link, c.taxkey_id, tk.tax_id
+                 FROM chart c, taxkeys tk
+                 WHERE c.link LIKE ? 
+                   AND (    tk.chart_id = c.id OR     c.link LIKE '%_tax%') 
+                   AND (NOT tk.chart_id = c.id OR NOT c.link LIKE '%_tax%')
+                   AND (tk.id = (SELECT id FROM taxkeys WHERE taxkeys.chart_id = c.id AND startdate <= $transdate ORDER BY startdate DESC LIMIT 1)
+                     OR c.link LIKE '%_tax%')
+                 ORDER BY c.accno|;
 
     $sth = $dbh->prepare($query);
-    do_statement($form, $sth, $query, "%" . $module . "%");
+    do_statement($self, $sth, $query, "%$module%");
 
     $self->{accounts} = "";
     while ($ref = $sth->fetchrow_hashref(NAME_lc)) {
@@ -1940,7 +1959,7 @@ sub create_links {
          AND a.fx_transaction = '0'
          ORDER BY a.oid, a.transdate|;
     $sth = $dbh->prepare($query);
-    do_statement($form, $sth, $query, $self->{id});
+    do_statement($self, $sth, $query, $self->{id});
 
     # get exchangerate for currency
     $self->{exchangerate} =
@@ -2419,7 +2438,7 @@ sub get_partsgroup {
     @values = ($p->{language_code});
   }
 
-  $self->{all_partsgroups} = selectall_hashref_query($self, $dbh, $query, @values);
+  $self->{all_partsgroup} = selectall_hashref_query($self, $dbh, $query, @values);
 
   $dbh->disconnect;
   $main::lxdebug->leave_sub();