my $limit = shift || 1000;
my $sort = shift;
my $inactive = shift;
+
$sort = ['family_name','first_given_name'] unless ($$sort[0]);
+ push @$sort,'id';
# group 0 = user
# group 1 = address
}
my $order_by = join ', ', map { 'LOWER(users.'. (split / /,$_)[0] . ') ' . (split / /,$_)[1] } @$sort;
- my $distinct_list = join ', ', map { 'users.'. (split / /, $_)[0] } @$sort;
+ my $distinct_list = join ', ', map { 'LOWER(users.'. (split / /,$_)[0] . ')' } @$sort;
if ($inactive) {
$inactive = '';
}
$select = <<" SQL";
- SELECT DISTINCT $distinct_list, users.id
+ SELECT DISTINCT $distinct_list
FROM $u_table AS users
JOIN ($select) AS search
USING (id)
LIMIT $limit
SQL
- return actor::user->db_Main->selectcol_arrayref($select, {Columns=>[scalar(@$sort) + 1]}, map {lc($_)} (@usrv,@phonev,@identv,@namev,@addrv,@addrv));
+ return actor::user->db_Main->selectcol_arrayref($select, {Columns=>[scalar(@$sort)]}, map {lc($_)} (@usrv,@phonev,@identv,@namev,@addrv,@addrv));
}
__PACKAGE__->register_method(
api_name => 'open-ils.storage.actor.user.crazy_search',