|
Lines 2153-2173
sub _debar_user_on_return {
Link Here
|
| 2153 |
GetIssuingRule( $borrower->{categorycode}, $item->{itype}, $branchcode ); |
2153 |
GetIssuingRule( $borrower->{categorycode}, $item->{itype}, $branchcode ); |
| 2154 |
my $finedays = $issuingrule->{finedays}; |
2154 |
my $finedays = $issuingrule->{finedays}; |
| 2155 |
my $unit = $issuingrule->{lengthunit}; |
2155 |
my $unit = $issuingrule->{lengthunit}; |
| 2156 |
my $chargeable_units = C4::Overdues::get_chargeable_units($unit, $dt_due, $dt_today, $branchcode); |
|
|
| 2157 |
|
2156 |
|
| 2158 |
if ($finedays) { |
2157 |
if ($finedays) { |
| 2159 |
|
2158 |
|
| 2160 |
# finedays is in days, so hourly loans must multiply by 24 |
|
|
| 2161 |
# thus 1 hour late equals 1 day suspension * finedays rate |
| 2162 |
$finedays = $finedays * 24 if ( $unit eq 'hours' ); |
| 2163 |
|
| 2164 |
# grace period is measured in the same units as the loan |
2159 |
# grace period is measured in the same units as the loan |
| 2165 |
my $grace = |
2160 |
my $grace = |
| 2166 |
DateTime::Duration->new( $unit => $issuingrule->{firstremind} ); |
2161 |
DateTime::Duration->new( $unit => $issuingrule->{firstremind} ); |
| 2167 |
|
2162 |
|
| 2168 |
my $deltadays = DateTime::Duration->new( |
2163 |
my $deltadays = C4::Overdues::get_chargeable_units('days', $dt_due, $dt_today, $branchcode); |
| 2169 |
days => $chargeable_units |
2164 |
$deltadays = DateTime::Duration->new( |
|
|
2165 |
days => $deltadays, |
| 2170 |
); |
2166 |
); |
|
|
2167 |
|
| 2171 |
if ( $deltadays->subtract($grace)->is_positive() ) { |
2168 |
if ( $deltadays->subtract($grace)->is_positive() ) { |
| 2172 |
my $suspension_days = $deltadays * $finedays; |
2169 |
my $suspension_days = $deltadays * $finedays; |
| 2173 |
|
2170 |
|