LP#1511765 Fix error when checking in with zero-balance lost OU setting enabled
authorMichele Morgan <mmorgan@noblenet.org>
Wed, 23 May 2018 17:54:28 +0000 (13:54 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Tue, 6 Aug 2019 00:14:47 +0000 (20:14 -0400)
Fixes an error generated when checking in Lost/Long Overdue/Lost and Paid
items with no associated circ when the org unit setting
circ.checkin.lost_zero_balance.do_not_change is set to TRUE

Items can attain this state from migration, or when the associated circ
has been aged.

Signed-off-by: Michele Morgan <mmorgan@noblenet.org>
Signed-off-by: Kyle Huckins <khuckins@catalyte.io>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm

index 73d69ef..7a2958a 100644 (file)
@@ -2678,7 +2678,8 @@ sub do_checkin {
             $copy_circ_lib, 'circ.checkin.lost_zero_balance.do_not_change',
             $self->editor) || 0;
 
             $copy_circ_lib, 'circ.checkin.lost_zero_balance.do_not_change',
             $self->editor) || 0;
 
-        if ($dont_change_lost_zero) {
+        # Don't assume there's always a circ based on copy status
+        if ($dont_change_lost_zero && $self->circ) {
             my ($obt) = $U->fetch_mbts($self->circ->id, $self->editor);
             $dont_change_lost_zero = 0 if( $obt and $obt->balance_owed != 0 );
         }
             my ($obt) = $U->fetch_mbts($self->circ->id, $self->editor);
             $dont_change_lost_zero = 0 if( $obt and $obt->balance_owed != 0 );
         }