diff --git a/C4/Overdues.pm b/C4/Overdues.pm index 8074411a9a..41674a468a 100644 --- a/C4/Overdues.pm +++ b/C4/Overdues.pm @@ -282,7 +282,10 @@ sub CalcFine { } } # else { # a zero (or null) chargeperiod or negative units_minus_grace value means no charge. } - $amount = $issuing_rule->{overduefinescap} if $issuing_rule->{overduefinescap} && $amount > $issuing_rule->{overduefinescap}; + $amount = $issuing_rule->{overduefinescap} + if $issuing_rule->{overduefinescap} + && $issuing_rule->{overduefinescap} > 0 + && $amount > $issuing_rule->{overduefinescap}; # This must be moved to Koha::Item (see also similar code in C4::Accounts::chargelostitem $item->{replacementprice} ||= $itemtype->defaultreplacecost diff --git a/t/db_dependent/Circulation/CalcFine.t b/t/db_dependent/Circulation/CalcFine.t index 628e45b460..d372d17339 100755 --- a/t/db_dependent/Circulation/CalcFine.t +++ b/t/db_dependent/Circulation/CalcFine.t @@ -122,15 +122,15 @@ subtest 'Overdue fines cap should be disabled when value is 0' => sub { ); my $start_dt = DateTime->new( - year => 2000, - month => 1, - day => 1, + year => 2000, + month => 1, + day => 1, ); my $end_dt = DateTime->new( - year => 2000, - month => 1, - day => 30, + year => 2000, + month => 1, + day => 30, ); my ($amount) = CalcFine( $item->unblessed, $patron->{categorycode}, $branch->{branchcode}, $start_dt, $end_dt ); @@ -161,15 +161,15 @@ subtest 'Overdue fines cap should be disabled when value is 0.00' => sub { ); my $start_dt = DateTime->new( - year => 2000, - month => 1, - day => 1, + year => 2000, + month => 1, + day => 1, ); my $end_dt = DateTime->new( - year => 2000, - month => 1, - day => 30, + year => 2000, + month => 1, + day => 30, ); my ($amount) = CalcFine( $item->unblessed, $patron->{categorycode}, $branch->{branchcode}, $start_dt, $end_dt ); @@ -179,6 +179,7 @@ subtest 'Overdue fines cap should be disabled when value is 0.00' => sub { teardown(); }; + subtest 'Test with fine amount empty' => sub { plan tests => 1;