LP#902255: Correct "ILS Event at check in" logic
authorMike Rylander <mrylander@gmail.com>
Thu, 11 Jun 2015 12:49:21 +0000 (08:49 -0400)
committerJason Stephenson <jstephenson@mvlc.org>
Mon, 15 Jun 2015 19:14:04 +0000 (15:14 -0400)
In a classic case of "fix a bug to reveal another" it turn out that
there was a small logic bug hiding in the check in hold-capture code.
The result of this bug was that the wrong ILS Event object was being
returned when we ran into the double-scan hold-capture situation by
overwriting the correct one immediately after we construct it, which
in turn prevented the previous commit from working as designed.

We now return the correct ILS Event immediately so that we can
properly detect the situation.  Two birds with one branch.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm

index c289324..d1a935e 100644 (file)
@@ -847,13 +847,13 @@ sub runmethod {
             my $evt = OpenILS::Event->new(
                 'DATABASE_UPDATE_FAILED', payload => $arg, debug => "$err" );
             $self->event($evt);
             my $evt = OpenILS::Event->new(
                 'DATABASE_UPDATE_FAILED', payload => $arg, debug => "$err" );
             $self->event($evt);
+            return undef;
         }
 
         if( $err ) {
             $self->event( 
                 OpenILS::Event->new( 'DATABASE_QUERY_FAILED', 
                     payload => $arg, debug => "$err" ));
         }
 
         if( $err ) {
             $self->event( 
                 OpenILS::Event->new( 'DATABASE_QUERY_FAILED', 
                     payload => $arg, debug => "$err" ));
-            return undef;
         }
 
         return undef;
         }
 
         return undef;