|
Lines 2231-2251
sub _debar_user_on_return {
Link Here
|
| 2231 |
); |
2231 |
); |
| 2232 |
my $finedays = $issuing_rule ? $issuing_rule->finedays : undef; |
2232 |
my $finedays = $issuing_rule ? $issuing_rule->finedays : undef; |
| 2233 |
my $unit = $issuing_rule ? $issuing_rule->lengthunit : undef; |
2233 |
my $unit = $issuing_rule ? $issuing_rule->lengthunit : undef; |
| 2234 |
my $chargeable_units = C4::Overdues::get_chargeable_units($unit, $dt_due, $return_date, $branchcode); |
|
|
| 2235 |
|
2234 |
|
| 2236 |
if ($finedays) { |
2235 |
if ($finedays) { |
| 2237 |
|
2236 |
|
| 2238 |
# finedays is in days, so hourly loans must multiply by 24 |
|
|
| 2239 |
# thus 1 hour late equals 1 day suspension * finedays rate |
| 2240 |
$finedays = $finedays * 24 if ( $unit eq 'hours' ); |
| 2241 |
|
| 2242 |
# grace period is measured in the same units as the loan |
2237 |
# grace period is measured in the same units as the loan |
| 2243 |
my $grace = |
2238 |
my $grace = |
| 2244 |
DateTime::Duration->new( $unit => $issuing_rule->firstremind ); |
2239 |
DateTime::Duration->new( $unit => $issuing_rule->firstremind ); |
| 2245 |
|
2240 |
|
| 2246 |
my $deltadays = DateTime::Duration->new( |
2241 |
my $deltadays = C4::Overdues::get_chargeable_units('days', $dt_due, $return_date, $branchcode); |
| 2247 |
days => $chargeable_units |
2242 |
$deltadays = DateTime::Duration->new( |
|
|
2243 |
days => $deltadays, |
| 2248 |
); |
2244 |
); |
|
|
2245 |
|
| 2249 |
if ( $deltadays->subtract($grace)->is_positive() ) { |
2246 |
if ( $deltadays->subtract($grace)->is_positive() ) { |
| 2250 |
my $suspension_days = $deltadays * $finedays; |
2247 |
my $suspension_days = $deltadays * $finedays; |
| 2251 |
|
2248 |
|