]> wagnertech.de Git - mfinanz.git/blobdiff - SL/Form.pm
Merge branch 'tax_festsetzen'
[mfinanz.git] / SL / Form.pm
index b34458ef698ddc81cb9b1d865357c1134b8f569f..f406817f6ef83404ac657f84ece1b478a3a01a22 100644 (file)
@@ -380,9 +380,10 @@ sub _get_request_uri {
   my $self = shift;
 
   return URI->new($ENV{HTTP_REFERER})->canonical() if $ENV{HTTP_X_FORWARDED_FOR};
+  return URI->new                                  if !$ENV{REQUEST_URI}; # for testing
 
   my $scheme =  $ENV{HTTPS} && (lc $ENV{HTTPS} eq 'on') ? 'https' : 'http';
-  my $port   =  $ENV{SERVER_PORT} || '';
+  my $port   =  $ENV{SERVER_PORT};
   $port      =  undef if (($scheme eq 'http' ) && ($port == 80))
                       || (($scheme eq 'https') && ($port == 443));
 
@@ -466,9 +467,10 @@ sub header {
   # standard css for all
   # this should gradually move to the layouts that need it
   $layout->use_stylesheet("$_.css") for qw(
-    main menu tabcontent list_accounts jquery.autocomplete
+    main menu list_accounts jquery.autocomplete
     jquery.multiselect2side frame_header/header
     ui-lightness/jquery-ui-1.8.12.custom
+    jquery-ui.custom
     js/jscalendar/calendar-win2k-1
   );
 
@@ -479,7 +481,7 @@ sub header {
   );
 
   $self->{favicon} ||= "favicon.ico";
-  $self->{titlebar} = join ' - ', grep $_, $self->{title}, $self->{login}, $::myconfig{dbname}, $self->{version} if $self->{title};
+  $self->{titlebar} = join ' - ', grep $_, $self->{title}, $self->{login}, $::myconfig{dbname}, $self->{version} if $self->{title} || !$self->{titlebar};
 
   # build includes
   if ($self->{refresh_url} || $self->{refresh_time}) {
@@ -514,15 +516,6 @@ EOT
   print "  $_\n" for @header;
   print <<EOT;
   <meta name="robots" content="noindex,nofollow">
-  <script type="text/javascript" src="js/tabcontent.js">
-
-  /***********************************************
-   * Tab Content script v2.2- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
-   * This notice MUST stay intact for legal use
-   * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
-   ***********************************************/
-
-  </script>
  </head>
  <body>
 
@@ -2536,7 +2529,7 @@ sub all_vc {
   # Hotfix für Bug 1837 - Besser wäre es alte Buchungsbelege
   # OHNE Auswahlliste (reines Textfeld) zu laden. Hilft aber auch
   # nicht für veränderbare Belege (oe, do, ...)
-  my $obsolete = "WHERE NOT obsolete" unless $self->{id};
+  my $obsolete = $self->{id} ? '' : "WHERE NOT obsolete";
   my $query = qq|SELECT count(*) FROM $table $obsolete|;
   my ($count) = selectrow_query($self, $dbh, $query);
 
@@ -2736,6 +2729,9 @@ sub create_links {
     $self->{TAX} = selectall_hashref_query($self, $dbh, $query);
   }
 
+  my $extra_columns = '';
+  $extra_columns   .= 'a.direct_debit, ' if ($module eq 'AR') || ($module eq 'AP');
+
   if ($self->{id}) {
     $query =
       qq|SELECT
@@ -2743,7 +2739,7 @@ sub create_links {
            a.duedate, a.ordnumber, a.taxincluded, a.curr AS currency, a.notes,
            a.intnotes, a.department_id, a.amount AS oldinvtotal,
            a.paid AS oldtotalpaid, a.employee_id, a.gldate, a.type,
-           a.globalproject_id,
+           a.globalproject_id, ${extra_columns}
            c.name AS $table,
            d.description AS department,
            e.name AS employee
@@ -2809,7 +2805,14 @@ sub create_links {
          FROM acc_trans a
          LEFT JOIN chart c ON (c.id = a.chart_id)
          LEFT JOIN project p ON (p.id = a.project_id)
-         LEFT JOIN tax t ON (t.id= a.tax_id)
+         LEFT JOIN tax t ON (t.id= (SELECT tk.tax_id FROM taxkeys tk
+                                    WHERE (tk.taxkey_id=a.taxkey) AND
+                                      ((CASE WHEN a.chart_id IN (SELECT chart_id FROM taxkeys WHERE taxkey_id = a.taxkey)
+                                        THEN tk.chart_id = a.chart_id
+                                        ELSE 1 = 1
+                                        END)
+                                       OR (c.link='%tax%')) AND
+                                      (startdate <= a.transdate) ORDER BY startdate DESC LIMIT 1))
          WHERE a.trans_id = ?
          AND a.fx_transaction = '0'
          ORDER BY a.acc_trans_id, a.transdate|;