Lines 2201-2207
C<$item> item hashref
Link Here
|
2201 |
|
2201 |
|
2202 |
C<$datedue> date due DateTime object |
2202 |
C<$datedue> date due DateTime object |
2203 |
|
2203 |
|
2204 |
C<$today> DateTime object representing the return time |
2204 |
C<$return_date> DateTime object representing the return time |
2205 |
|
2205 |
|
2206 |
Internal function, called only by AddReturn that calculates and updates |
2206 |
Internal function, called only by AddReturn that calculates and updates |
2207 |
the user fine days, and debars him if necessary. |
2207 |
the user fine days, and debars him if necessary. |
Lines 2211-2217
Should only be called for overdue returns
Link Here
|
2211 |
=cut |
2211 |
=cut |
2212 |
|
2212 |
|
2213 |
sub _debar_user_on_return { |
2213 |
sub _debar_user_on_return { |
2214 |
my ( $borrower, $item, $dt_due, $dt_today ) = @_; |
2214 |
my ( $borrower, $item, $dt_due, $return_date ) = @_; |
2215 |
|
2215 |
|
2216 |
my $branchcode = _GetCircControlBranch( $item, $borrower ); |
2216 |
my $branchcode = _GetCircControlBranch( $item, $borrower ); |
2217 |
|
2217 |
|
Lines 2224-2230
sub _debar_user_on_return {
Link Here
|
2224 |
); |
2224 |
); |
2225 |
my $finedays = $issuing_rule ? $issuing_rule->finedays : undef; |
2225 |
my $finedays = $issuing_rule ? $issuing_rule->finedays : undef; |
2226 |
my $unit = $issuing_rule ? $issuing_rule->lengthunit : undef; |
2226 |
my $unit = $issuing_rule ? $issuing_rule->lengthunit : undef; |
2227 |
my $chargeable_units = C4::Overdues::get_chargeable_units($unit, $dt_due, $dt_today, $branchcode); |
2227 |
my $chargeable_units = C4::Overdues::get_chargeable_units($unit, $dt_due, $return_date, $branchcode); |
2228 |
|
2228 |
|
2229 |
if ($finedays) { |
2229 |
if ($finedays) { |
2230 |
|
2230 |
|
Lines 2251-2265
sub _debar_user_on_return {
Link Here
|
2251 |
if DateTime::Duration->compare( $max_sd, $suspension_days ) < 0; |
2251 |
if DateTime::Duration->compare( $max_sd, $suspension_days ) < 0; |
2252 |
} |
2252 |
} |
2253 |
|
2253 |
|
|
|
2254 |
my ( $has_been_extended, $is_a_reminder ); |
2254 |
if ( C4::Context->preference('CumulativeRestrictionPeriods') and $borrower->{debarred} ) { |
2255 |
if ( C4::Context->preference('CumulativeRestrictionPeriods') and $borrower->{debarred} ) { |
2255 |
my $debarment = @{ GetDebarments( { borrowernumber => $borrower->{borrowernumber}, type => 'SUSPENSION' } ) }[0]; |
2256 |
my $debarment = @{ GetDebarments( { borrowernumber => $borrower->{borrowernumber}, type => 'SUSPENSION' } ) }[0]; |
2256 |
if ( $debarment ) { |
2257 |
if ( $debarment ) { |
2257 |
$return_date = dt_from_string( $debarment->{expiration}, 'sql' ); |
2258 |
$return_date = dt_from_string( $debarment->{expiration}, 'sql' ); |
|
|
2259 |
$has_been_extended = 1; |
2258 |
} |
2260 |
} |
2259 |
} |
2261 |
} |
2260 |
|
2262 |
|
2261 |
my $new_debar_dt = |
2263 |
my $new_debar_dt = |
2262 |
$dt_today->clone()->add_duration( $suspension_days ); |
2264 |
$return_date->clone()->add_duration( $suspension_days ); |
2263 |
|
2265 |
|
2264 |
Koha::Patron::Debarments::AddUniqueDebarment({ |
2266 |
Koha::Patron::Debarments::AddUniqueDebarment({ |
2265 |
borrowernumber => $borrower->{borrowernumber}, |
2267 |
borrowernumber => $borrower->{borrowernumber}, |
Lines 2268-2277
sub _debar_user_on_return {
Link Here
|
2268 |
}); |
2270 |
}); |
2269 |
# if borrower was already debarred but does not get an extra debarment |
2271 |
# if borrower was already debarred but does not get an extra debarment |
2270 |
my $patron = Koha::Patrons->find( $borrower->{borrowernumber} ); |
2272 |
my $patron = Koha::Patrons->find( $borrower->{borrowernumber} ); |
|
|
2273 |
my $new_debarment_str; |
2271 |
if ( $borrower->{debarred} eq $patron->is_debarred ) { |
2274 |
if ( $borrower->{debarred} eq $patron->is_debarred ) { |
2272 |
return ($borrower->{debarred},1); |
2275 |
$is_a_reminder = 1; |
|
|
2276 |
$new_debarment_str = $borrower->{debarred}; |
2277 |
} else { |
2278 |
$new_debarment_str = $new_debar_dt->ymd(); |
2273 |
} |
2279 |
} |
2274 |
return $new_debar_dt->ymd(); |
2280 |
# FIXME Should return a DateTime object |
|
|
2281 |
return $new_debarment_str, $is_a_reminder; |
2275 |
} |
2282 |
} |
2276 |
} |
2283 |
} |
2277 |
return; |
2284 |
return; |
2278 |
- |
|
|