Lines 2051-2064
sub AddReturn {
Link Here
|
2051 |
|
2051 |
|
2052 |
if ( $issue and $issue->is_overdue($return_date) ) { |
2052 |
if ( $issue and $issue->is_overdue($return_date) ) { |
2053 |
# fix fine days |
2053 |
# fix fine days |
2054 |
my ($debardate,$reminder) = _debar_user_on_return( $patron_unblessed, $item->unblessed, dt_from_string($issue->date_due), $return_date ); |
2054 |
my $newdebardate = _debar_user_on_return( $patron_unblessed, $item->unblessed, dt_from_string($issue->date_due), $return_date ); |
2055 |
if ($reminder){ |
2055 |
|
2056 |
$messages->{'PrevDebarred'} = $debardate; |
2056 |
if ( $newdebardate ) { |
2057 |
} else { |
2057 |
$messages->{'Debarred'} = $newdebardate; |
2058 |
$messages->{'Debarred'} = $debardate if $debardate; |
|
|
2059 |
} |
2058 |
} |
|
|
2059 |
} |
2060 |
# there's no overdue on the item but borrower had been previously debarred |
2060 |
# there's no overdue on the item but borrower had been previously debarred |
2061 |
} elsif ( $issue->date_due and $patron->debarred ) { |
2061 |
if ( $patron->debarred ) { |
2062 |
if ( $patron->debarred eq "9999-12-31") { |
2062 |
if ( $patron->debarred eq "9999-12-31") { |
2063 |
$messages->{'ForeverDebarred'} = $patron->debarred; |
2063 |
$messages->{'ForeverDebarred'} = $patron->debarred; |
2064 |
} else { |
2064 |
} else { |
Lines 2360-2366
sub _calculate_new_debar_dt {
Link Here
|
2360 |
else { |
2360 |
else { |
2361 |
$new_debar_dt = $return_date->clone()->add_duration($suspension_days); |
2361 |
$new_debar_dt = $return_date->clone()->add_duration($suspension_days); |
2362 |
} |
2362 |
} |
2363 |
return $new_debar_dt; |
2363 |
return ($new_debar_dt, $has_been_extended); |
2364 |
} |
2364 |
} |
2365 |
return; |
2365 |
return; |
2366 |
} |
2366 |
} |
Lines 2370-2376
sub _debar_user_on_return {
Link Here
|
2370 |
|
2370 |
|
2371 |
$return_date //= dt_from_string(); |
2371 |
$return_date //= dt_from_string(); |
2372 |
|
2372 |
|
2373 |
my $new_debar_dt = _calculate_new_debar_dt ($borrower, $item, $dt_due, $return_date); |
2373 |
my ($new_debar_dt, $has_been_extended) = _calculate_new_debar_dt ($borrower, $item, $dt_due, $return_date); |
2374 |
|
2374 |
|
2375 |
return unless $new_debar_dt; |
2375 |
return unless $new_debar_dt; |
2376 |
|
2376 |
|
Lines 2379-2395
sub _debar_user_on_return {
Link Here
|
2379 |
expiration => $new_debar_dt->ymd(), |
2379 |
expiration => $new_debar_dt->ymd(), |
2380 |
type => 'SUSPENSION', |
2380 |
type => 'SUSPENSION', |
2381 |
}); |
2381 |
}); |
2382 |
# if borrower was already debarred but does not get an extra debarment |
2382 |
# Only return a valid date if there is a new (or extented) debarment |
2383 |
my $patron = Koha::Patrons->find( $borrower->{borrowernumber} ); |
2383 |
my $patron = Koha::Patrons->find( $borrower->{borrowernumber} ); |
2384 |
my ($new_debarment_str, $is_a_reminder); |
2384 |
if ( ( $borrower->{debarred} && $borrower->{debarred} ne $patron->is_debarred ) or $has_been_extended ) { |
2385 |
if ( $borrower->{debarred} && $borrower->{debarred} eq $patron->is_debarred ) { |
2385 |
# FIXME Should return a DateTime object |
2386 |
$is_a_reminder = 1; |
2386 |
return $new_debar_dt->ymd(); |
2387 |
$new_debarment_str = $borrower->{debarred}; |
|
|
2388 |
} else { |
2389 |
$new_debarment_str = $new_debar_dt->ymd(); |
2390 |
} |
2387 |
} |
2391 |
# FIXME Should return a DateTime object |
|
|
2392 |
return $new_debarment_str, $is_a_reminder; |
2393 |
} |
2388 |
} |
2394 |
|
2389 |
|
2395 |
=head2 _FixOverduesOnReturn |
2390 |
=head2 _FixOverduesOnReturn |
2396 |
- |
|
|