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;
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}) {
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;
$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();
$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();
}
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});
}
#
#======================================================================
+use List::MoreUtils qw(uniq);
+
sub edit_groups {
$lxdebug->enter_sub();
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 {
}
$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);
}
$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);
<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 %]
<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 %]