|
Lines 2760-2772
sub CanBookBeRenewed {
Link Here
|
| 2760 |
|
2760 |
|
| 2761 |
if ( defined $issuingrule->{norenewalbefore} ) { |
2761 |
if ( defined $issuingrule->{norenewalbefore} ) { |
| 2762 |
|
2762 |
|
| 2763 |
# Get current time and add norenewalbefore. |
2763 |
# Calculate soonest renewal by subtracting 'No renewal before' from due date |
| 2764 |
# If this is smaller than date_due, it's too soon for renewal. |
2764 |
my $soonestrenewal = |
| 2765 |
if ( |
2765 |
$itemissue->{date_due}->clone() |
| 2766 |
DateTime->now( time_zone => C4::Context->tz() )->add( |
2766 |
->subtract( |
| 2767 |
$issuingrule->{lengthunit} => $issuingrule->{norenewalbefore} |
2767 |
$issuingrule->{lengthunit} => $issuingrule->{norenewalbefore} ); |
| 2768 |
) < $itemissue->{date_due} |
2768 |
|
| 2769 |
) |
2769 |
# Depending on syspref reset the exact time, only check the date |
|
|
2770 |
if ( C4::Context->preference('NoRenewalBeforePrecision') eq 'date' |
| 2771 |
and $issuingrule->{lengthunit} eq 'days' ) |
| 2772 |
{ |
| 2773 |
$soonestrenewal->truncate( to => 'day' ); |
| 2774 |
} |
| 2775 |
|
| 2776 |
if ( $soonestrenewal > DateTime->now( time_zone => C4::Context->tz() ) ) |
| 2770 |
{ |
2777 |
{ |
| 2771 |
return ( 0, "auto_too_soon" ) if $itemissue->{auto_renew}; |
2778 |
return ( 0, "auto_too_soon" ) if $itemissue->{auto_renew}; |
| 2772 |
return ( 0, "too_soon" ); |
2779 |
return ( 0, "too_soon" ); |
|
Lines 3001-3011
sub GetSoonestRenewDate {
Link Here
|
| 3001 |
|
3008 |
|
| 3002 |
if ( defined $issuingrule->{norenewalbefore} ) { |
3009 |
if ( defined $issuingrule->{norenewalbefore} ) { |
| 3003 |
my $soonestrenewal = |
3010 |
my $soonestrenewal = |
| 3004 |
$itemissue->{date_due}->subtract( |
3011 |
$itemissue->{date_due}->clone() |
|
|
3012 |
->subtract( |
| 3005 |
$issuingrule->{lengthunit} => $issuingrule->{norenewalbefore} ); |
3013 |
$issuingrule->{lengthunit} => $issuingrule->{norenewalbefore} ); |
| 3006 |
|
3014 |
|
| 3007 |
$soonestrenewal = $now > $soonestrenewal ? $now : $soonestrenewal; |
3015 |
if ( C4::Context->preference('NoRenewalBeforePrecision') eq 'date' |
| 3008 |
return $soonestrenewal; |
3016 |
and $issuingrule->{lengthunit} eq 'days' ) |
|
|
3017 |
{ |
| 3018 |
$soonestrenewal->truncate( to => 'day' ); |
| 3019 |
} |
| 3020 |
return $soonestrenewal if $now < $soonestrenewal; |
| 3009 |
} |
3021 |
} |
| 3010 |
return $now; |
3022 |
return $now; |
| 3011 |
} |
3023 |
} |
| 3012 |
- |
|
|