ou hiding : filter hold counts pickup lib; part 2 tpac-ou-hiding-repairs-ip
authorBill Erickson <berick@esilibrary.com>
Wed, 14 Nov 2012 14:49:40 +0000 (09:49 -0500)
committerBill Erickson <berick@esilibrary.com>
Wed, 14 Nov 2012 14:49:40 +0000 (09:49 -0500)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm

index 4497c33..0b96721 100644 (file)
@@ -378,13 +378,24 @@ sub prepare_browse_call_numbers {
 
 sub get_hold_copy_summary {
     my ($self, $rec_id, $org) = @_;
+    my $ctx = $self->ctx;
     
     my $search = OpenSRF::AppSession->create('open-ils.search');
     my $req1 = $search->request(
         'open-ils.search.biblio.record.copy_count', $org, $rec_id); 
 
+    # if org unit hiding applies, limit the hold count to holds
+    # whose pickup library is equal to or "below" the root of
+    # our hiding depth-scoped tree
+    my $count_args = {};
+    while ($org and $ctx->{org_within_hiding_scope}->($org)) {
+        $count_args->{pickup_lib_descendant} = $org;
+        $org = $ctx->{get_aou}->($org)->parent_ou;
+    }
+
     $self->ctx->{record_hold_count} = $U->simplereq(
-        'open-ils.circ', 'open-ils.circ.bre.holds.count', $rec_id);
+        'open-ils.circ', 'open-ils.circ.bre.holds.count', 
+        $rec_id, $count_args);
 
     $self->ctx->{copy_summary} = $req1->recv->content;