From: gmc <gmc@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Date: Fri, 6 Aug 2010 01:21:31 +0000 (+0000)
Subject: bug 614150: bail out on ACTOR_USER_NOT_FOUND
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=182913fcc2f4d5aad9bf50fda7206fa6de503a58;p=evergreen%2Fpines.git

bug 614150: bail out on ACTOR_USER_NOT_FOUND

This fixes a bug where uploading an offline checkout
that refers to a missing patron returns an INTERNAL_SERVER_ERROR
instead of ACTOR_USER_NOT_FOUND.  More generally, this avoids
an exception in case case where a circ operation is made
without checking the existence of the patron record beforehand.

mk_env could use a better name, too.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>


git-svn-id: svn://svn.open-ils.org/ILS/trunk@17113 dcc99617-32d9-48b4-a31d-7c20da2025e4
---

diff --git a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
index a8aca9f3db..de040e3849 100644
--- a/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
+++ b/Open-ILS/src/perlmods/OpenILS/Application/Circ/Circulate.pm
@@ -677,15 +677,17 @@ sub mk_env {
 	};
 
 	if( $self->patron_id ) {
-		$patron = $e->retrieve_actor_user([$self->patron_id, $flesh]) or return $e->event;
+		$patron = $e->retrieve_actor_user([$self->patron_id, $flesh])
+			or return $self->bail_on_events(OpenILS::Event->new('ACTOR_USER_NOT_FOUND'));
 
 	} elsif( $self->patron_barcode ) {
 
-		my $card = $e->search_actor_card( 
-			{barcode => $self->patron_barcode})->[0] or return $e->event;
+		# note: throwing ACTOR_USER_NOT_FOUND instead of ACTOR_CARD_NOT_FOUND is intentional
+		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] or return $e->event;
+		$patron = $e->search_actor_user([{card => $card->id}, $flesh])->[0]
+			or return $self->bail_on_events(OpenILS::Event->new('ACTOR_USER_NOT_FOUND'));
 
 	} else {
 		if( my $copy = $self->copy ) {