LP#1443952 Move overdue restore above lost void/adjustment
authorDan Wells <dbw2@calvin.edu>
Fri, 20 Feb 2015 22:28:44 +0000 (17:28 -0500)
committerBen Shum <bshum@biblio.org>
Tue, 14 Apr 2015 20:29:04 +0000 (16:29 -0400)
If a person loses something and has their overdues voided/zeroed,
then pays for part of it, then returns the item, the part they
actually paid should apply to the overdues.  In order for this to
happen, the overdues must exist *before* the lost fines are adjusted.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Circ/Circulate.pm

index 7a330b2..c0e68cd 100644 (file)
@@ -3594,12 +3594,12 @@ sub checkin_handle_lost_or_longoverdue {
         my $restore_od = $U->ou_ancestor_setting_value(
             $circ_lib, $args{ous_restore_overdue}, $self->editor) || 0;
 
+        $self->checkin_handle_lost_or_lo_now_found_restore_od($circ_lib) 
+            if $restore_od && ! $self->void_overdues;
         $self->checkin_handle_lost_or_lo_now_found(
             $args{void_cost_btype}, $args{is_longoverdue}) if ($void_cost);
         $self->checkin_handle_lost_or_lo_now_found(
             $args{void_fee_btype}, $args{is_longoverdue}) if ($void_proc_fee);
-        $self->checkin_handle_lost_or_lo_now_found_restore_od($circ_lib) 
-            if $restore_od && ! $self->void_overdues;
     }
 
     if ($circ_lib != $self->circ_lib) {