Lines 1807-1816
sub _FixFineDaysOnReturn {
Link Here
|
1807 |
my $circcontrol = C4::Context::preference('CircControl'); |
1807 |
my $circcontrol = C4::Context::preference('CircControl'); |
1808 |
my $issuingrule = GetIssuingRule( $borrower->{categorycode}, $item->{itype}, $branchcode ); |
1808 |
my $issuingrule = GetIssuingRule( $borrower->{categorycode}, $item->{itype}, $branchcode ); |
1809 |
my $finedays = $issuingrule->{finedays}; |
1809 |
my $finedays = $issuingrule->{finedays}; |
|
|
1810 |
my $unit = $issuingrule->{lengthunit}; |
1810 |
|
1811 |
|
1811 |
# exit if no finedays defined |
1812 |
# exit if no finedays defined |
1812 |
return unless $finedays; |
1813 |
return unless $finedays; |
1813 |
my $grace = DateTime::Duration->new( days => $issuingrule->{firstremind} ); |
1814 |
# finedays is in days, so hourly loans must multiply by 24 |
|
|
1815 |
# thus 1 hour late equals 1 day suspension * finedays rate |
1816 |
$finedays = $finedays * 24 if ($unit eq 'hours'); |
1817 |
|
1818 |
# grace period is measured in the same units as the loan |
1819 |
my $grace = DateTime::Duration->new( $unit => $issuingrule->{firstremind} ); |
1814 |
|
1820 |
|
1815 |
if ( ( $deltadays - $grace )->is_positive ) { # you can't compare DateTime::Durations with logical operators |
1821 |
if ( ( $deltadays - $grace )->is_positive ) { # you can't compare DateTime::Durations with logical operators |
1816 |
my $new_debar_dt = $dt_today->clone()->add_duration( $deltadays * $finedays ); |
1822 |
my $new_debar_dt = $dt_today->clone()->add_duration( $deltadays * $finedays ); |
1817 |
- |
|
|