|
Lines 2822-2835
sub CanBookBeRenewed {
Link Here
|
| 2822 |
and $issuingrule->{norenewalbefore} ne "" ) |
2822 |
and $issuingrule->{norenewalbefore} ne "" ) |
| 2823 |
{ |
2823 |
{ |
| 2824 |
|
2824 |
|
| 2825 |
# Get current time and add norenewalbefore. |
2825 |
# Calculate soonest renewal by subtracting 'No renewal before' from due date |
| 2826 |
# If this is smaller than date_due, it's too soon for renewal. |
2826 |
my $soonestrenewal = |
| 2827 |
my $now = dt_from_string; |
2827 |
$itemissue->{date_due}->clone() |
| 2828 |
if ( |
2828 |
->subtract( |
| 2829 |
$now->add( |
2829 |
$issuingrule->{lengthunit} => $issuingrule->{norenewalbefore} ); |
| 2830 |
$issuingrule->{lengthunit} => $issuingrule->{norenewalbefore} |
2830 |
|
| 2831 |
) < $itemissue->{date_due} |
2831 |
# Depending on syspref reset the exact time, only check the date |
| 2832 |
) |
2832 |
if ( C4::Context->preference('NoRenewalBeforePrecision') eq 'date' |
|
|
2833 |
and $issuingrule->{lengthunit} eq 'days' ) |
| 2834 |
{ |
| 2835 |
$soonestrenewal->truncate( to => 'day' ); |
| 2836 |
} |
| 2837 |
|
| 2838 |
if ( $soonestrenewal > DateTime->now( time_zone => C4::Context->tz() ) ) |
| 2833 |
{ |
2839 |
{ |
| 2834 |
return ( 0, "auto_too_soon" ) if $itemissue->{auto_renew}; |
2840 |
return ( 0, "auto_too_soon" ) if $itemissue->{auto_renew}; |
| 2835 |
return ( 0, "too_soon" ); |
2841 |
return ( 0, "too_soon" ); |
|
Lines 3065-3075
sub GetSoonestRenewDate {
Link Here
|
| 3065 |
and $issuingrule->{norenewalbefore} ne "" ) |
3071 |
and $issuingrule->{norenewalbefore} ne "" ) |
| 3066 |
{ |
3072 |
{ |
| 3067 |
my $soonestrenewal = |
3073 |
my $soonestrenewal = |
| 3068 |
$itemissue->{date_due}->subtract( |
3074 |
$itemissue->{date_due}->clone() |
|
|
3075 |
->subtract( |
| 3069 |
$issuingrule->{lengthunit} => $issuingrule->{norenewalbefore} ); |
3076 |
$issuingrule->{lengthunit} => $issuingrule->{norenewalbefore} ); |
| 3070 |
|
3077 |
|
| 3071 |
$soonestrenewal = $now > $soonestrenewal ? $now : $soonestrenewal; |
3078 |
if ( C4::Context->preference('NoRenewalBeforePrecision') eq 'date' |
| 3072 |
return $soonestrenewal; |
3079 |
and $issuingrule->{lengthunit} eq 'days' ) |
|
|
3080 |
{ |
| 3081 |
$soonestrenewal->truncate( to => 'day' ); |
| 3082 |
} |
| 3083 |
return $soonestrenewal if $now < $soonestrenewal; |
| 3073 |
} |
3084 |
} |
| 3074 |
return $now; |
3085 |
return $now; |
| 3075 |
} |
3086 |
} |
| 3076 |
- |
|
|