]> wagnertech.de Git - mfinanz.git/commitdiff
Merge branch 'master' of ssh://lx-office/~/lx-office-erp
authorHolger Lindemann <hli@lx-system.de>
Fri, 25 Sep 2009 00:40:16 +0000 (02:40 +0200)
committerHolger Lindemann <hli@lx-system.de>
Fri, 25 Sep 2009 00:40:16 +0000 (02:40 +0200)
SL/AP.pm
SL/AR.pm
SL/Auth.pm
SL/DO.pm
bin/mozilla/admin_groups.pl
templates/webpages/rp/html_report_susa_de.html
templates/webpages/rp/html_report_susa_master.html

index 6ec28627c118a884098fce8b01bc40225485b4c0..6bc1095b44302a72cec8f49c21d36b2e304004fb 100644 (file)
--- a/SL/AP.pm
+++ b/SL/AP.pm
@@ -401,15 +401,19 @@ sub ap_transactions {
     qq|  v.vendornumber, v.country, v.ustid, | .
     qq|  tz.description AS taxzone, | .
     qq|  pt.description AS payment_terms, | .
-    qq{  ch.accno || ' -- ' || ch.description AS charts } .
+    qq{  ( SELECT ch.accno || ' -- ' || ch.description
+           FROM acc_trans at
+           LEFT JOIN chart ch ON ch.id = at.chart_id
+           WHERE ch.link ~ 'AP[[:>:]]'
+            AND at.trans_id = a.id
+            LIMIT 1
+          ) AS charts } .
     qq|FROM ap a | .
     qq|JOIN vendor v ON (a.vendor_id = v.id) | .
     qq|LEFT JOIN employee e ON (a.employee_id = e.id) | .
     qq|LEFT JOIN project pr ON (a.globalproject_id = pr.id) | .
     qq|LEFT JOIN tax_zones tz ON (tz.id = v.taxzone_id)| .
-    qq|LEFT JOIN payment_terms pt ON (pt.id = v.payment_id)| .
-    qq|LEFT JOIN acc_trans at ON (at.trans_id = a.id)| .
-    qq|INNER JOIN chart ch ON (ch.id = at.chart_id AND ch.link ~ 'AP[[:>:]]')|;
+    qq|LEFT JOIN payment_terms pt ON (pt.id = v.payment_id)|;
 
   my $where = '';
   my @values;
index 88ee519f0283a47eabdab8a9b88c91925d112d11..a211b1fcf6001e81168632305f00760d18c1006d 100644 (file)
--- a/SL/AR.pm
+++ b/SL/AR.pm
@@ -424,16 +424,20 @@ sub ar_transactions {
     qq|  e2.name AS salesman, | .
     qq|  tz.description AS taxzone, | .
     qq|  pt.description AS payment_terms, | .
-    qq{  ch.accno || ' -- ' || ch.description AS charts } .
+    qq{  ( SELECT ch.accno || ' -- ' || ch.description
+           FROM acc_trans at
+           LEFT JOIN chart ch ON ch.id = at.chart_id
+           WHERE ch.link ~ 'AR[[:>:]]'
+            AND at.trans_id = a.id
+            LIMIT 1
+          ) AS charts } .
     qq|FROM ar a | .
     qq|JOIN customer c ON (a.customer_id = c.id) | .
     qq|LEFT JOIN employee e ON (a.employee_id = e.id) | .
     qq|LEFT JOIN employee e2 ON (a.salesman_id = e2.id) | .
     qq|LEFT JOIN project pr ON (a.globalproject_id = pr.id)| .
     qq|LEFT JOIN tax_zones tz ON (tz.id = c.taxzone_id)| .
-    qq|LEFT JOIN payment_terms pt ON (pt.id = c.payment_id)| .
-    qq|LEFT JOIN acc_trans at ON (at.trans_id = a.id)| .
-    qq|INNER JOIN chart ch ON (ch.id = at.chart_id AND ch.link ~ 'AR[[:>:]]')|;
+    qq|LEFT JOIN payment_terms pt ON (pt.id = c.payment_id)|;
 
   my $where = "1 = 1";
   if ($form->{customer_id}) {
index 94f843a6d926df6ee91bfbc42b498249dfb15a14..97f1d8270280d0564dd0ea18d517225fe09ce418 100644 (file)
@@ -11,6 +11,7 @@ use constant SESSION_EXPIRED =>   2;
 use Digest::MD5 qw(md5_hex);
 use IO::File;
 use Time::HiRes qw(gettimeofday);
+use List::MoreUtils qw(uniq);
 
 use SL::Auth::DB;
 use SL::Auth::LDAP;
@@ -704,13 +705,14 @@ sub read_groups {
   $sth   = prepare_query($form, $dbh, $query);
 
   foreach $group (values %{$groups}) {
-    $group->{members} = [];
+    my @members;
 
     do_statement($form, $sth, $query, $group->{id});
 
     while ($row = $sth->fetchrow_hashref()) {
-      push @{$group->{members}}, $row->{user_id};
+      push @members, $row->{user_id};
     }
+    $group->{members} = [ uniq @members ];
   }
   $sth->finish();
 
@@ -760,7 +762,7 @@ sub save_group {
   $query  = qq|INSERT INTO auth.user_group (user_id, group_id) VALUES (?, ?)|;
   $sth    = prepare_query($form, $dbh, $query);
 
-  foreach my $user_id (@{ $group->{members} }) {
+  foreach my $user_id (uniq @{ $group->{members} }) {
     do_statement($form, $sth, $query, $user_id, $group->{id});
   }
   $sth->finish();
index 48baa7a87c7576eb2ab99fae9a98238ee6cd20f2..49dbb9f4ddd8ea5ef98d3b9569f065268caceb4b 100644 (file)
--- a/SL/DO.pm
+++ b/SL/DO.pm
@@ -81,10 +81,10 @@ sub transactions {
   }
 
   if ($form->{project_id}) {
-    $query .=
+    push @where,
       qq|(dord.globalproject_id = ?) OR EXISTS
           (SELECT * FROM delivery_order_items doi
-           WHERE (doi.project_id = ?) AND (oi.delivery_order_id = dord.id))|;
+           WHERE (doi.project_id = ?) AND (doi.delivery_order_id = dord.id))|;
     push @values, conv_i($form->{project_id}), conv_i($form->{project_id});
   }
 
index b75af930ec54fb28bed3e803cec21d627790aef9..d84e2e5413e814127a123090f13d3e0fd5b27a93 100644 (file)
@@ -32,6 +32,8 @@
 #
 #======================================================================
 
+use List::MoreUtils qw(uniq);
+
 sub edit_groups {
   $lxdebug->enter_sub();
 
@@ -114,9 +116,9 @@ sub edit_group {
   my %all_users   = $auth->read_all_users();
   my %users_by_id = map { $_->{id} => $_ } values %all_users;
 
-  my @members     = sort { lc $a->{login} cmp lc $b->{login} } @users_by_id{ @{ $group->{members} } };
+  my @members     = uniq sort { lc $a->{login} cmp lc $b->{login} } @users_by_id{ @{ $group->{members} } };
 
-  my %grouped     = map { $_ => 1 } @{ $group->{members} };
+  my %grouped     = map { $_ => 1 } uniq @{ $group->{members} };
   my @non_members = sort { lc $a->{login} cmp lc $b->{login} } grep { !$grouped{$_->{id}} } values %all_users;
 
   my @rights = map {
@@ -173,7 +175,7 @@ sub add_to_group {
   }
 
   $group = $groups->{$form->{group_id}};
-  push @{ $group->{members} }, $form->{user_id_not_in_group};
+  $group->{members} = [ uniq @{ $group->{members} }, $form->{user_id_not_in_group} ];
 
   $auth->save_group($group);
 
@@ -195,7 +197,7 @@ sub remove_from_group {
   }
 
   $group            = $groups->{$form->{group_id}};
-  $group->{members} = [ grep { $_ ne $form->{user_id_in_group} } @{ $group->{members} } ];
+  $group->{members} = [ uniq grep { $_ ne $form->{user_id_in_group} } @{ $group->{members} } ];
 
   $auth->save_group($group);
 
index 15d560868b2a83b5c17e3b3090f3c4ddd81862a4..386bc8717195e2038aa4916144cfe336ff8186f9 100644 (file)
@@ -56,7 +56,7 @@
     <th class="listheading">Haben</th>
     <th class="listheading">Soll</th>
     <th class="listheading">Haben</th>
-  
+   </tr>
    [% FOREACH row = ROWS %]
     [% IF row.IS_CONTROL %]
      [% IF row.IS_COLSPAN_DATA %]<tr><td colspan="[% row.NUM_COLUMNS %]">[% row.data %]</td></tr>[% END %]
index 6f9d4c553de1a080837a459a1da052312f890108..2671a827276c64b6f3fc14494d07b7f31ae86c29 100644 (file)
@@ -56,7 +56,7 @@
     <th class="listheading"><translate>Credit</translate></th>
     <th class="listheading"><translate>Debit</translate></th>
     <th class="listheading"><translate>Credit</translate></th>
-  
+   </tr>
    [% FOREACH row = ROWS %]
     [% IF row.IS_CONTROL %]
      [% IF row.IS_COLSPAN_DATA %]<tr><td colspan="[% row.NUM_COLUMNS %]">[% row.data %]</td></tr>[% END %]