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

(-)a/C4/Circulation.pm (-6 / +17 lines)
Lines 1848-1858 sub AddReturn { Link Here
1848
        my $fix = _FixOverduesOnReturn($borrowernumber, $item->{itemnumber}, $exemptfine, $dropbox);
1848
        my $fix = _FixOverduesOnReturn($borrowernumber, $item->{itemnumber}, $exemptfine, $dropbox);
1849
        defined($fix) or warn "_FixOverduesOnReturn($borrowernumber, $item->{itemnumber}...) failed!";  # zero is OK, check defined
1849
        defined($fix) or warn "_FixOverduesOnReturn($borrowernumber, $item->{itemnumber}...) failed!";  # zero is OK, check defined
1850
        
1850
        
1851
        if ( $issue->{overdue} && $issue->{date_due} ) {
1851
    if ( $issue->{overdue} && $issue->{date_due} ) {
1852
# fix fine days
1852
# fix fine days
1853
            my $debardate =
1853
            my ($debardate,$reminder) = _debar_user_on_return( $borrower, $item, $issue->{date_due}, $today );
1854
              _debar_user_on_return( $borrower, $item, $issue->{date_due}, $today );
1854
            if ($reminder){
1855
            $messages->{Debarred} = $debardate if ($debardate);
1855
                $messages->{'PrevDebarred'} = $debardate;
1856
            } else {
1857
                $messages->{'Debarred'} = $debardate if $debardate;
1858
            }
1859
        } elsif ( $issue->{date_due} and $borrower->{'debarred'} ) {
1860
             my $borrower_debar_dt = dt_from_string( $borrower->{debarred} );
1861
             $borrower_debar_dt->truncate(to => 'day');
1862
             my $today_dt = $today->clone()->truncate(to => 'day');
1863
             if ( DateTime->compare( $borrower_debar_dt, $today_dt ) != -1 ) {
1864
                 $messages->{'PrevDebarred'} = $borrower->{'debarred'};
1865
             }
1856
        }
1866
        }
1857
    }
1867
    }
1858
1868
Lines 2028-2039 sub _debar_user_on_return { Link Here
2028
              $dt_today->clone()->add_duration( $deltadays * $finedays );
2038
              $dt_today->clone()->add_duration( $deltadays * $finedays );
2029
            if ( $borrower->{debarred} ) {
2039
            if ( $borrower->{debarred} ) {
2030
                my $borrower_debar_dt = dt_from_string( $borrower->{debarred} );
2040
                my $borrower_debar_dt = dt_from_string( $borrower->{debarred} );
2031
2041
                $borrower_debar_dt->truncate(to => 'day');
2042
                $new_debar_dt->truncate(to=>'day');
2032
                # Update patron only if new date > old
2043
                # Update patron only if new date > old
2033
                if ( DateTime->compare( $borrower_debar_dt, $new_debar_dt ) !=
2044
                if ( DateTime->compare( $borrower_debar_dt, $new_debar_dt ) !=
2034
                    -1 )
2045
                    -1 )
2035
                {
2046
                {
2036
                    return;
2047
                    return ($borrower_debar_dt,1);
2037
                }
2048
                }
2038
2049
2039
            }
2050
            }
(-)a/circ/returns.pl (+3 lines)
Lines 457-462 foreach my $code ( keys %$messages ) { Link Here
457
        $err{debarborrowernumber} = $borrower->{borrowernumber};
457
        $err{debarborrowernumber} = $borrower->{borrowernumber};
458
        $err{debarname}           = "$borrower->{firstname} $borrower->{surname}";
458
        $err{debarname}           = "$borrower->{firstname} $borrower->{surname}";
459
    }
459
    }
460
    elsif ( $code eq 'PrevDebarred' ) {
461
        $err{prevdebarred}        = $messages->{'PrevDebarred'};
462
    }
460
    else {
463
    else {
461
        die "Unknown error code $code";    # note we need all the (empty) elsif's above, or we die.
464
        die "Unknown error code $code";    # note we need all the (empty) elsif's above, or we die.
462
        # This forces the issue of staying in sync w/ Circulation.pm
465
        # This forces the issue of staying in sync w/ Circulation.pm
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/returns.tt (-2 / +4 lines)
Lines 318-324 $(document).ready(function () { Link Here
318
[% IF ( errmsgloop ) %]
318
[% IF ( errmsgloop ) %]
319
    <div class="dialog alert">
319
    <div class="dialog alert">
320
        [% FOREACH errmsgloo IN errmsgloop %]
320
        [% FOREACH errmsgloo IN errmsgloop %]
321
                    [% UNLESS ( errmsgloo.debarred ) %]
321
                    [% UNLESS ( errmsgloo.debarred or errmsgloo.prevdebarred ) %]
322
                        <h5>Cannot check in</h5>
322
                        <h5>Cannot check in</h5>
323
                    [% END %]
323
                    [% END %]
324
                    [% IF ( errmsgloo.badbarcode ) %]
324
                    [% IF ( errmsgloo.badbarcode ) %]
Lines 351-356 $(document).ready(function () { Link Here
351
                    [% IF ( errmsgloo.debarred ) %]
351
                    [% IF ( errmsgloo.debarred ) %]
352
                        <p class="problem"><a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% errmsgloo.debarborrowernumber %]">[% errmsgloo.debarname %]([% errmsgloo.debarcardnumber %])</a> is now debarred until [% errmsgloo.debarred | $KohaDates %] </p>
352
                        <p class="problem"><a href="/cgi-bin/koha/circ/circulation.pl?borrowernumber=[% errmsgloo.debarborrowernumber %]">[% errmsgloo.debarname %]([% errmsgloo.debarcardnumber %])</a> is now debarred until [% errmsgloo.debarred | $KohaDates %] </p>
353
                    [% END %]
353
                    [% END %]
354
                    [% IF ( errmsgloo.prevdebarred ) %]
355
                        <p class="problem"><b>Reminder: </b>Patron was earlier restricted until [% errmsgloo.prevdebarred | $KohaDates %]</p>
356
                    [% END %]
354
            [% END %]
357
            [% END %]
355
[% IF ( soundon ) %]
358
[% IF ( soundon ) %]
356
<audio src="/intranet-tmpl/prog/sound/critical.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
359
<audio src="/intranet-tmpl/prog/sound/critical.ogg" autoplay="autoplay" autobuffer="autobuffer"></audio>
357
- 

Return to bug 8231