Lines 2188-2194
C<$item> item hashref
Link Here
|
2188 |
|
2188 |
|
2189 |
C<$datedue> date due DateTime object |
2189 |
C<$datedue> date due DateTime object |
2190 |
|
2190 |
|
2191 |
C<$today> DateTime object representing the return time |
2191 |
C<$return_date> DateTime object representing the return time |
2192 |
|
2192 |
|
2193 |
Internal function, called only by AddReturn that calculates and updates |
2193 |
Internal function, called only by AddReturn that calculates and updates |
2194 |
the user fine days, and debars him if necessary. |
2194 |
the user fine days, and debars him if necessary. |
Lines 2198-2204
Should only be called for overdue returns
Link Here
|
2198 |
=cut |
2198 |
=cut |
2199 |
|
2199 |
|
2200 |
sub _debar_user_on_return { |
2200 |
sub _debar_user_on_return { |
2201 |
my ( $borrower, $item, $dt_due, $dt_today ) = @_; |
2201 |
my ( $borrower, $item, $dt_due, $return_date ) = @_; |
2202 |
|
2202 |
|
2203 |
my $branchcode = _GetCircControlBranch( $item, $borrower ); |
2203 |
my $branchcode = _GetCircControlBranch( $item, $borrower ); |
2204 |
|
2204 |
|
Lines 2211-2217
sub _debar_user_on_return {
Link Here
|
2211 |
); |
2211 |
); |
2212 |
my $finedays = $issuing_rule ? $issuing_rule->finedays : undef; |
2212 |
my $finedays = $issuing_rule ? $issuing_rule->finedays : undef; |
2213 |
my $unit = $issuing_rule ? $issuing_rule->lengthunit : undef; |
2213 |
my $unit = $issuing_rule ? $issuing_rule->lengthunit : undef; |
2214 |
my $chargeable_units = C4::Overdues::get_chargeable_units($unit, $dt_due, $dt_today, $branchcode); |
2214 |
my $chargeable_units = C4::Overdues::get_chargeable_units($unit, $dt_due, $return_date, $branchcode); |
2215 |
|
2215 |
|
2216 |
if ($finedays) { |
2216 |
if ($finedays) { |
2217 |
|
2217 |
|
Lines 2238-2252
sub _debar_user_on_return {
Link Here
|
2238 |
if DateTime::Duration->compare( $max_sd, $suspension_days ) < 0; |
2238 |
if DateTime::Duration->compare( $max_sd, $suspension_days ) < 0; |
2239 |
} |
2239 |
} |
2240 |
|
2240 |
|
|
|
2241 |
my ( $has_been_extended, $is_a_reminder ); |
2241 |
if ( C4::Context->preference('CumulativeRestrictionPeriods') and $borrower->{debarred} ) { |
2242 |
if ( C4::Context->preference('CumulativeRestrictionPeriods') and $borrower->{debarred} ) { |
2242 |
my $debarment = @{ GetDebarments( { borrowernumber => $borrower->{borrowernumber}, type => 'SUSPENSION' } ) }[0]; |
2243 |
my $debarment = @{ GetDebarments( { borrowernumber => $borrower->{borrowernumber}, type => 'SUSPENSION' } ) }[0]; |
2243 |
if ( $debarment ) { |
2244 |
if ( $debarment ) { |
2244 |
$return_date = dt_from_string( $debarment->{expiration}, 'sql' ); |
2245 |
$return_date = dt_from_string( $debarment->{expiration}, 'sql' ); |
|
|
2246 |
$has_been_extended = 1; |
2245 |
} |
2247 |
} |
2246 |
} |
2248 |
} |
2247 |
|
2249 |
|
2248 |
my $new_debar_dt = |
2250 |
my $new_debar_dt = |
2249 |
$dt_today->clone()->add_duration( $suspension_days ); |
2251 |
$return_date->clone()->add_duration( $suspension_days ); |
2250 |
|
2252 |
|
2251 |
Koha::Patron::Debarments::AddUniqueDebarment({ |
2253 |
Koha::Patron::Debarments::AddUniqueDebarment({ |
2252 |
borrowernumber => $borrower->{borrowernumber}, |
2254 |
borrowernumber => $borrower->{borrowernumber}, |
Lines 2255-2264
sub _debar_user_on_return {
Link Here
|
2255 |
}); |
2257 |
}); |
2256 |
# if borrower was already debarred but does not get an extra debarment |
2258 |
# if borrower was already debarred but does not get an extra debarment |
2257 |
my $patron = Koha::Patrons->find( $borrower->{borrowernumber} ); |
2259 |
my $patron = Koha::Patrons->find( $borrower->{borrowernumber} ); |
|
|
2260 |
my $new_debarment_str; |
2258 |
if ( $borrower->{debarred} eq $patron->is_debarred ) { |
2261 |
if ( $borrower->{debarred} eq $patron->is_debarred ) { |
2259 |
return ($borrower->{debarred},1); |
2262 |
$is_a_reminder = 1; |
|
|
2263 |
$new_debarment_str = $borrower->{debarred}; |
2264 |
} else { |
2265 |
$new_debarment_str = $new_debar_dt->ymd(); |
2260 |
} |
2266 |
} |
2261 |
return $new_debar_dt->ymd(); |
2267 |
# FIXME Should return a DateTime object |
|
|
2268 |
return $new_debarment_str, $is_a_reminder; |
2262 |
} |
2269 |
} |
2263 |
} |
2270 |
} |
2264 |
return; |
2271 |
return; |
2265 |
- |
|
|