merge uber-hold reworking
authorMike Rylander <mrylander@gmail.com>
Tue, 1 Mar 2011 17:11:03 +0000 (12:11 -0500)
committerMike Rylander <mrylander@gmail.com>
Tue, 1 Mar 2011 17:11:03 +0000 (12:11 -0500)
1  2 
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Holds.pm

@@@ -2832,29 -2687,33 +2831,34 @@@ sub uber_hold_impl 
        my $user = $hold->usr;
        $hold->usr($user->id);
  
-       my $card = $e->retrieve_actor_card($user->card)
-               or return $e->event;
  
-       my( $mvr, $volume, $copy, $issuance, $part ) = find_hold_mvr($e, $hold);
 -      my( $mvr, $volume, $copy, $issuance, $bre ) = find_hold_mvr($e, $hold, $args->{suppress_mvr});
++      my( $mvr, $volume, $copy, $issuance, $part, $bre ) = find_hold_mvr($e, $hold, $args->{suppress_mvr});
  
-       flesh_hold_notices([$hold], $e);
-       flesh_hold_transits([$hold]);
+       flesh_hold_notices([$hold], $e) unless $args->{suppress_notices};
+       flesh_hold_transits([$hold]) unless $args->{suppress_transits};
  
      my $details = retrieve_hold_queue_status_impl($e, $hold);
  
-     return {
+     my $resp = {
          hold           => $hold,
--        copy           => $copy,
--        volume         => $volume,
-         issuance       => $issuance,
-         part           => $part,
-         mvr            => $mvr,
-         patron_first   => $user->first_given_name,
-         patron_last    => $user->family_name,
-         patron_barcode => $card->barcode,
-         patron_alias   => $user->alias,
++        ($copy     ? (copy           => $copy)     : ()),
++        ($volume   ? (volume         => $volume)   : ()),
++        ($issuance ? (issuance       => $issuance) : ()),
++        ($part     ? (part           => $part)     : ()),
++        ($args->{include_bre}  ?  (bre => $bre)    : ()),
++        ($args->{suppress_mvr} ?  () : (mvr => $mvr)),
          %$details
      };
 -    $resp->{mvr} = $mvr unless $args->{suppress_mvr};
 -    $resp->{bre} = $bre if $args->{include_bre};
 -
+     unless($args->{suppress_patron_details}) {
+           my $card = $e->retrieve_actor_card($user->card) or return $e->event;
+         $resp->{patron_first}   = $user->first_given_name,
+         $resp->{patron_last}    = $user->family_name,
+         $resp->{patron_barcode} = $card->barcode,
+         $resp->{patron_alias}   = $user->alias,
+     };
+     return $resp;
  }
  
  
@@@ -2922,7 -2772,7 +2926,7 @@@ sub find_hold_mvr 
  
      # TODO return metarcord mvr for M holds
        my $title = $e->retrieve_biblio_record_entry($tid);
-       return ( $U->record_to_mvr($title), $volume, $copy, $issuance, $part );
 -      return ( ($no_mvr) ? undef : $U->record_to_mvr($title), $volume, $copy, $issuance, $title );
++      return ( ($no_mvr) ? undef : $U->record_to_mvr($title), $volume, $copy, $issuance, $part, $title );
  }
  
  __PACKAGE__->register_method(