View | Details | Raw Unified | Return to bug 5549
Collapse All | Expand All

(-)a/C4/Circulation.pm (-2 / +7 lines)
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
- 

Return to bug 5549