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 |
- |
|
|