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

(-)a/C4/Circulation.pm (-7 / +8 lines)
Lines 2021-2027 sub AddReturn { Link Here
2021
2021
2022
    # fix up the overdues in accounts...
2022
    # fix up the overdues in accounts...
2023
    if ($borrowernumber) {
2023
    if ($borrowernumber) {
2024
        my $fix = _FixOverduesOnReturn( $borrowernumber, $item->itemnumber, $exemptfine );
2024
        my $fix = _FixOverduesOnReturn( $borrowernumber, $item->itemnumber, $exemptfine, 'RETURNED' );
2025
        defined($fix) or warn "_FixOverduesOnReturn($borrowernumber, $item->itemnumber...) failed!";  # zero is OK, check defined
2025
        defined($fix) or warn "_FixOverduesOnReturn($borrowernumber, $item->itemnumber...) failed!";  # zero is OK, check defined
2026
2026
2027
        if ( $issue and $issue->is_overdue ) {
2027
        if ( $issue and $issue->is_overdue ) {
Lines 2305-2311 sub _debar_user_on_return { Link Here
2305
2305
2306
=head2 _FixOverduesOnReturn
2306
=head2 _FixOverduesOnReturn
2307
2307
2308
   &_FixOverduesOnReturn($borrowernumber, $itemnumber, $exemptfine);
2308
   &_FixOverduesOnReturn($borrowernumber, $itemnumber, $exemptfine, $status);
2309
2309
2310
C<$borrowernumber> borrowernumber
2310
C<$borrowernumber> borrowernumber
2311
2311
Lines 2313-2324 C<$itemnumber> itemnumber Link Here
2313
2313
2314
C<$exemptfine> BOOL -- remove overdue charge associated with this issue. 
2314
C<$exemptfine> BOOL -- remove overdue charge associated with this issue. 
2315
2315
2316
C<$status> ENUM -- reason for fix [ RETURNED, RENEWED, LOST, FORGIVEN ]
2317
2316
Internal function
2318
Internal function
2317
2319
2318
=cut
2320
=cut
2319
2321
2320
sub _FixOverduesOnReturn {
2322
sub _FixOverduesOnReturn {
2321
    my ( $borrowernumber, $item, $exemptfine ) = @_;
2323
    my ( $borrowernumber, $item, $exemptfine, $status ) = @_;
2322
    unless( $borrowernumber ) {
2324
    unless( $borrowernumber ) {
2323
        warn "_FixOverduesOnReturn() not supplied valid borrowernumber";
2325
        warn "_FixOverduesOnReturn() not supplied valid borrowernumber";
2324
        return;
2326
        return;
Lines 2363-2369 sub _FixOverduesOnReturn { Link Here
2363
            &logaction("FINES", 'MODIFY',$borrowernumber,"Overdue forgiven: item $item");
2365
            &logaction("FINES", 'MODIFY',$borrowernumber,"Overdue forgiven: item $item");
2364
        }
2366
        }
2365
    } else {
2367
    } else {
2366
        $accountline->status('RETURNED');
2368
        $accountline->status($status);
2367
    }
2369
    }
2368
2370
2369
    return $accountline->store();
2371
    return $accountline->store();
Lines 2842-2848 sub AddRenewal { Link Here
2842
    if ( C4::Context->preference('CalculateFinesOnReturn') && $issue->is_overdue ) {
2844
    if ( C4::Context->preference('CalculateFinesOnReturn') && $issue->is_overdue ) {
2843
        _CalculateAndUpdateFine( { issue => $issue, item => $item_unblessed, borrower => $patron_unblessed } );
2845
        _CalculateAndUpdateFine( { issue => $issue, item => $item_unblessed, borrower => $patron_unblessed } );
2844
    }
2846
    }
2845
    _FixOverduesOnReturn( $borrowernumber, $itemnumber );
2847
    _FixOverduesOnReturn( $borrowernumber, $itemnumber, undef, 'RENEWED' );
2846
2848
2847
    # If the due date wasn't specified, calculate it by adding the
2849
    # If the due date wasn't specified, calculate it by adding the
2848
    # book's loan length to today's date or the current due date
2850
    # book's loan length to today's date or the current due date
Lines 3687-3693 sub LostItem{ Link Here
3687
    if ( my $borrowernumber = $issues->{borrowernumber} ){
3689
    if ( my $borrowernumber = $issues->{borrowernumber} ){
3688
        my $patron = Koha::Patrons->find( $borrowernumber );
3690
        my $patron = Koha::Patrons->find( $borrowernumber );
3689
3691
3690
        my $fix = _FixOverduesOnReturn($borrowernumber, $itemnumber, C4::Context->preference('WhenLostForgiveFine'), 0); # 1, 0 = exemptfine, no-dropbox
3692
        my $fix = _FixOverduesOnReturn($borrowernumber, $itemnumber, C4::Context->preference('WhenLostForgiveFine'), 'LOST');
3691
        defined($fix) or warn "_FixOverduesOnReturn($borrowernumber, $itemnumber...) failed!";  # zero is OK, check defined
3693
        defined($fix) or warn "_FixOverduesOnReturn($borrowernumber, $itemnumber...) failed!";  # zero is OK, check defined
3692
3694
3693
        if (C4::Context->preference('WhenLostChargeReplacementFee')){
3695
        if (C4::Context->preference('WhenLostChargeReplacementFee')){
3694
- 

Return to bug 22563