|
Lines 2986-3003
sub AddRenewal {
Link Here
|
| 2986 |
return; |
2986 |
return; |
| 2987 |
} |
2987 |
} |
| 2988 |
|
2988 |
|
|
|
2989 |
my $borrower = C4::Members::GetMemberDetails( $borrowernumber ); |
| 2990 |
return unless $borrower; |
| 2991 |
|
| 2989 |
# If the due date wasn't specified, calculate it by adding the |
2992 |
# If the due date wasn't specified, calculate it by adding the |
| 2990 |
# book's loan length to today's date or the current due date |
2993 |
# book's loan length to today's date or the current due date |
| 2991 |
# based on the value of the RenewalPeriodBase syspref. |
2994 |
# based on the value of the RenewalPeriodBase syspref. |
| 2992 |
unless ($datedue) { |
2995 |
unless ($datedue) { |
|
|
2996 |
my $itemtype = |
| 2997 |
C4::Context->preference('item-level_itypes') |
| 2998 |
? $biblio->{'itype'} |
| 2999 |
: $biblio->{'itemtype'}; |
| 2993 |
|
3000 |
|
| 2994 |
my $borrower = C4::Members::GetMember( borrowernumber => $borrowernumber ) or return; |
3001 |
$datedue = |
| 2995 |
my $itemtype = (C4::Context->preference('item-level_itypes')) ? $biblio->{'itype'} : $biblio->{'itemtype'}; |
3002 |
C4::Context->preference('RenewalPeriodBase') eq 'date_due' |
|
|
3003 |
? dt_from_string( $issuedata->{date_due} ) |
| 3004 |
: DateTime->now( time_zone => C4::Context->tz() ); |
| 2996 |
|
3005 |
|
| 2997 |
$datedue = (C4::Context->preference('RenewalPeriodBase') eq 'date_due') ? |
3006 |
$datedue = CalcDateDue( $datedue, $itemtype, $issuedata->{'branchcode'}, $borrower, 'is a renewal' ); |
| 2998 |
dt_from_string( $issuedata->{date_due} ) : |
|
|
| 2999 |
DateTime->now( time_zone => C4::Context->tz()); |
| 3000 |
$datedue = CalcDateDue($datedue, $itemtype, $issuedata->{'branchcode'}, $borrower, 'is a renewal'); |
| 3001 |
} |
3007 |
} |
| 3002 |
|
3008 |
|
| 3003 |
# Update the issues record to have the new due date, and a new count |
3009 |
# Update the issues record to have the new due date, and a new count |
|
Lines 3013-3019
sub AddRenewal {
Link Here
|
| 3013 |
# Update the renewal count on the item, and tell zebra to reindex |
3019 |
# Update the renewal count on the item, and tell zebra to reindex |
| 3014 |
$renews = $biblio->{'renewals'} + 1; |
3020 |
$renews = $biblio->{'renewals'} + 1; |
| 3015 |
|
3021 |
|
| 3016 |
my $borrower = C4::Members::GetMember( borrowernumber => $borrowernumber ); |
|
|
| 3017 |
my $schema = Koha::Database->new()->schema(); |
3022 |
my $schema = Koha::Database->new()->schema(); |
| 3018 |
my $rule = $schema->resultset('DefaultBranchCircRule')->single( { branchcode => _GetCircControlBranch( $item, $borrower ) } ); |
3023 |
my $rule = $schema->resultset('DefaultBranchCircRule')->single( { branchcode => _GetCircControlBranch( $item, $borrower ) } ); |
| 3019 |
$rule ||= $schema->resultset('DefaultCircRule')->single(); |
3024 |
$rule ||= $schema->resultset('DefaultCircRule')->single(); |
|
Lines 3059-3085
sub AddRenewal {
Link Here
|
| 3059 |
} |
3064 |
} |
| 3060 |
|
3065 |
|
| 3061 |
# Send a renewal slip according to checkout alert preferencei |
3066 |
# Send a renewal slip according to checkout alert preferencei |
| 3062 |
if ( C4::Context->preference('RenewalSendNotice') eq '1') { |
3067 |
if ( C4::Context->preference('RenewalSendNotice') eq '1' ) { |
| 3063 |
my $borrower = C4::Members::GetMemberDetails( $borrowernumber, 0 ); |
3068 |
my $circulation_alert = 'C4::ItemCirculationAlertPreference'; |
| 3064 |
my $circulation_alert = 'C4::ItemCirculationAlertPreference'; |
3069 |
my %conditions = ( |
| 3065 |
my %conditions = ( |
3070 |
branchcode => $branch, |
| 3066 |
branchcode => $branch, |
3071 |
categorycode => $borrower->{categorycode}, |
| 3067 |
categorycode => $borrower->{categorycode}, |
3072 |
item_type => $item->{itype}, |
| 3068 |
item_type => $item->{itype}, |
3073 |
notification => 'CHECKOUT', |
| 3069 |
notification => 'CHECKOUT', |
3074 |
); |
| 3070 |
); |
3075 |
if ( $circulation_alert->is_enabled_for( \%conditions ) ) { |
| 3071 |
if ($circulation_alert->is_enabled_for(\%conditions)) { |
3076 |
SendCirculationAlert( |
| 3072 |
SendCirculationAlert({ |
3077 |
{ |
| 3073 |
type => 'RENEWAL', |
3078 |
type => 'RENEWAL', |
| 3074 |
item => $item, |
3079 |
item => $item, |
| 3075 |
borrower => $borrower, |
3080 |
borrower => $borrower, |
| 3076 |
branch => $branch, |
3081 |
branch => $branch, |
| 3077 |
}); |
3082 |
} |
| 3078 |
} |
3083 |
); |
|
|
3084 |
} |
| 3079 |
} |
3085 |
} |
| 3080 |
|
3086 |
|
| 3081 |
# Remove any OVERDUES related debarment if the borrower has no overdues |
3087 |
# Remove any OVERDUES related debarment if the borrower has no overdues |
| 3082 |
my $borrower = C4::Members::GetMember( borrowernumber => $borrowernumber ); |
|
|
| 3083 |
if ( $borrowernumber |
3088 |
if ( $borrowernumber |
| 3084 |
&& $borrower->{'debarred'} |
3089 |
&& $borrower->{'debarred'} |
| 3085 |
&& !C4::Members::HasOverdues( $borrowernumber ) |
3090 |
&& !C4::Members::HasOverdues( $borrowernumber ) |
|
Lines 3089-3103
sub AddRenewal {
Link Here
|
| 3089 |
} |
3094 |
} |
| 3090 |
|
3095 |
|
| 3091 |
# Log the renewal |
3096 |
# Log the renewal |
| 3092 |
UpdateStats({branch => $branch, |
3097 |
UpdateStats( |
| 3093 |
type => 'renew', |
3098 |
{ |
| 3094 |
amount => $charge, |
3099 |
branch => $branch, |
| 3095 |
itemnumber => $itemnumber, |
3100 |
type => 'renew', |
| 3096 |
itemtype => $item->{itype}, |
3101 |
amount => $charge, |
| 3097 |
borrowernumber => $borrowernumber, |
3102 |
itemnumber => $itemnumber, |
| 3098 |
ccode => $item->{'ccode'}} |
3103 |
itemtype => $item->{itype}, |
| 3099 |
); |
3104 |
borrowernumber => $borrowernumber, |
| 3100 |
return $datedue; |
3105 |
ccode => $item->{'ccode'} |
|
|
3106 |
} |
| 3107 |
); |
| 3108 |
|
| 3109 |
return $datedue; |
| 3101 |
} |
3110 |
} |
| 3102 |
|
3111 |
|
| 3103 |
sub GetRenewCount { |
3112 |
sub GetRenewCount { |
| 3104 |
- |
|
|