ignoring inactive (by default) and deleted users
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 26 Jul 2006 19:46:29 +0000 (19:46 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 26 Jul 2006 19:46:29 +0000 (19:46 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@5114 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm

index 6c3fc24..58ede06 100644 (file)
@@ -227,6 +227,7 @@ sub patron_search {
        my $search = shift;
        my $limit = shift || 1000;
        my $sort = shift;
+       my $inactive = shift;
        $sort = ['family_name','first_given_name'] unless ($$sort[0]);
 
        # group 0 = user
@@ -300,8 +301,22 @@ sub patron_search {
        }
 
        my $order_by = join ', ', map { 'users.'. $_} @$sort;
-               
-       $select = "SELECT users.id FROM $u_table AS users JOIN ($select) AS search USING (id) ORDER BY $order_by LIMIT $limit";
+
+       if ($inactive) {
+               $inactive = 'AND user.active = FALSE';
+       } else {
+               $inactive = '';
+       }
+
+       $select = <<"   SQL";
+               SELECT  users.id
+                 FROM  $u_table AS users
+                       JOIN ($select) AS search
+                 USING (id)
+                 WHERE users.deleted = FALSE $inactive
+                 ORDER BY $order_by
+                 LIMIT $limit
+       SQL
 
        return actor::user->db_Main->selectcol_arrayref($select, {}, map {lc($_)} (@usrv,@phonev,@identv,@namev,@addrv));
 }