From 26ce8ee7710aa6cb7105ef0f18d32fe805ed375b Mon Sep 17 00:00:00 2001 From: miker Date: Wed, 16 Aug 2006 18:18:23 +0000 Subject: [PATCH] adding address searching for cloned users git-svn-id: svn://svn.open-ils.org/ILS/trunk@5537 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../OpenILS/Application/Storage/Publisher/actor.pm | 7 +++++-- Open-ILS/src/sql/Pg/005.schema.actors.sql | 2 -- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm index 82af76ea6a..aa34401777 100644 --- a/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm +++ b/Open-ILS/src/perlmods/OpenILS/Application/Storage/Publisher/actor.pm @@ -317,11 +317,14 @@ sub patron_search { my $u_select = "SELECT id as id FROM $u_table u WHERE $usr_where"; my $a_select = "SELECT usr as id FROM $a_table a WHERE $addr_where"; + my $clone_select = "SELECT cu.id as id FROM $a_table ca ". + "JOIN $u_table cu ON (cu.mailing_address = ca.id OR cu.billing_address = ca.id) ". + "WHERE $addr_where"; my $select = ''; if ($usr_where) { if ($addr_where) { - $select = "$u_select INTERSECT $a_select"; + $select = "$u_select INTERSECT $a_select INTERSECT $clone_select"; } else { $select = $u_select; } @@ -349,7 +352,7 @@ sub patron_search { LIMIT $limit SQL - return actor::user->db_Main->selectcol_arrayref($select, {}, map {lc($_)} (@usrv,@phonev,@identv,@namev,@addrv)); + return actor::user->db_Main->selectcol_arrayref($select, {}, map {lc($_)} (@usrv,@phonev,@identv,@namev,@addrv,@addrv)); } __PACKAGE__->register_method( api_name => 'open-ils.storage.actor.user.crazy_search', diff --git a/Open-ILS/src/sql/Pg/005.schema.actors.sql b/Open-ILS/src/sql/Pg/005.schema.actors.sql index 09da90fd11..130d240a78 100644 --- a/Open-ILS/src/sql/Pg/005.schema.actors.sql +++ b/Open-ILS/src/sql/Pg/005.schema.actors.sql @@ -89,8 +89,6 @@ COMMENT ON TABLE actor.usr IS $$ */ $$; -CREATE UNIQUE INDEX actor_usr_unique_ident ON actor.usr (ident_type, ident_value); - CREATE INDEX actor_usr_home_ou_idx ON actor.usr (home_ou); CREATE INDEX actor_usr_mailing_address_idx ON actor.usr (mailing_address); CREATE INDEX actor_usr_billing_address_idx ON actor.usr (billing_address); -- 2.43.2