Fix checkout on alternate patron barcode user/tsbere@mvlc.org/multiple_patron_barcode_checkout_fix
authorThomas Berezansky <tsbere@mvlc.org>
Sat, 2 Jul 2011 22:50:27 +0000 (18:50 -0400)
committerThomas Berezansky <tsbere@mvlc.org>
Tue, 5 Jul 2011 16:46:14 +0000 (12:46 -0400)
Specifically, when a non-primary patron barcode is used.
Such as via SIP2.

Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm

index 0b36f40..2d42704 100644 (file)
@@ -764,9 +764,12 @@ sub mk_env {
                my $card = $e->search_actor_card({barcode => $self->patron_barcode})->[0] 
                        or return $self->bail_on_events(OpenILS::Event->new('ACTOR_USER_NOT_FOUND'));
 
-               $patron = $e->search_actor_user([{card => $card->id}, $flesh])->[0]
+               $patron = $e->retrieve_actor_user($card->usr)
                        or return $self->bail_on_events(OpenILS::Event->new('ACTOR_USER_NOT_FOUND'));
 
+        # Use the card we looked up, not the patron's primary, for card active checks
+        $patron->card($card);
+
     } else {
         if( my $copy = $self->copy ) {