add au_by_id option to unified search
authorGalen Charlton <gmc@equinoxinitiative.org>
Sat, 25 Jan 2020 15:54:26 +0000 (10:54 -0500)
committerGalen Charlton <gmc@equinoxinitiative.org>
Sat, 25 Jan 2020 15:54:26 +0000 (10:54 -0500)
This specifies performing queries on au-linked fields by
ID rather than adding joins to query the fields by user
barcode or username, etc.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/eg2/src/app/staff/acq/search/acq-search.service.ts
Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Search.pm

index 8e9364e..e7d1913 100644 (file)
@@ -232,6 +232,7 @@ export class AcqSearchService {
                 const opts = { ...searchOptions[searchType] };
                 opts['offset'] = pager.offset;
                 opts['limit'] = pager.limit;
+                opts['au_by_id'] = true;
                 return this.net.request(
                     'open-ils.acq',
                     'open-ils.acq.' + searchType + '.unified_search',
index 14fdced..f6fa48d 100644 (file)
@@ -547,8 +547,10 @@ q/order_by clause must be of the long form, like:
     $and_terms = prepare_terms($and_terms, 1);
     $or_terms = prepare_terms($or_terms, 0);
 
-    my $offset = add_au_joins($graft_map, $hint, prepare_au_terms($and_terms));
-    add_au_joins($graft_map, $hint, prepare_au_terms($or_terms, $offset));
+    unless ($options->{au_by_id}) {
+        my $offset = add_au_joins($graft_map, $hint, prepare_au_terms($and_terms));
+        add_au_joins($graft_map, $hint, prepare_au_terms($or_terms, $offset));
+    }
 
     # The join to acqmapinv needs to be a left join when present.
     if ($query->{from}{$hint}{acqmapinv}) {