X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FCirculation.pm;h=6d3347f53242bbb43d952aa820252ef8bbc0a51d;hb=aa6117da3682230cfe6fe43ee3b29fdb71c74a5a;hp=639956b51aedc629d9227b0b9139374b0eb2fb48;hpb=2ff88b27b8c142185af98aa3ff68568c8a7bc8f7;p=koha_fer diff --git a/C4/Circulation.pm b/C4/Circulation.pm index 639956b51a..6d3347f532 100644 --- a/C4/Circulation.pm +++ b/C4/Circulation.pm @@ -2085,10 +2085,21 @@ sub _debar_user_on_return { # grace period is measured in the same units as the loan my $grace = DateTime::Duration->new( $unit => $issuingrule->{firstremind} ); + if ( $deltadays->subtract($grace)->is_positive() ) { + my $suspension_days = $deltadays * $finedays; + + # If the max suspension days is < than the suspension days + # the suspension days is limited to this maximum period. + my $max_sd = $issuingrule->{maxsuspensiondays}; + if ( defined $max_sd ) { + $max_sd = DateTime::Duration->new( days => $max_sd ); + $suspension_days = $max_sd + if DateTime::Duration->compare( $max_sd, $suspension_days ) < 0; + } my $new_debar_dt = - $dt_today->clone()->add_duration( $deltadays * $finedays ); + $dt_today->clone()->add_duration( $suspension_days ); Koha::Borrower::Debarments::AddUniqueDebarment({ borrowernumber => $borrower->{borrowernumber},