@@ -, +, @@
notice will be sent when cancelling a hold
---
C4/Reserves.pm | 3 ++-
Koha/Hold.pm | 2 +-
circ/pendingreserves.pl | 3 ++-
.../prog/en/modules/circ/pendingreserves.tt | 3 +++
.../intranet-tmpl/prog/en/modules/reserve/request.tt | 10 ++++++++++
reserve/modrequest.pl | 3 +++
reserve/request.pl | 3 ++-
7 files changed, 23 insertions(+), 4 deletions(-)
--- a/C4/Reserves.pm
+++ a/C4/Reserves.pm
@@ -1017,6 +1017,7 @@ sub ModReserve {
my $borrowernumber = $params->{'borrowernumber'};
my $biblionumber = $params->{'biblionumber'};
my $cancellation_reason = $params->{'cancellation_reason'};
+ my $notify_patron = $params->{'notify_patron'};
return if $rank eq "W";
return if $rank eq "n";
@@ -1034,7 +1035,7 @@ sub ModReserve {
$hold ||= Koha::Holds->find($reserve_id);
if ( $rank eq "del" ) {
- $hold->cancel({ cancellation_reason => $cancellation_reason });
+ $hold->cancel({ cancellation_reason => $cancellation_reason, notify_patron => $notify_patron });
}
elsif ($rank =~ /^\d+/ and $rank > 0) {
logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) )
--- a/Koha/Hold.pm
+++ a/Koha/Hold.pm
@@ -504,7 +504,7 @@ sub cancel {
$self->cancellation_reason( $params->{cancellation_reason} );
$self->store();
- if ( $params->{cancellation_reason} ) {
+ if ( $params->{cancellation_reason} && $params->{notify_patron} ) {
my $letter = C4::Letters::GetPreparedLetter(
module => 'reserves',
letter_code => 'HOLD_CANCELLATION',
--- a/circ/pendingreserves.pl
+++ a/circ/pendingreserves.pl
@@ -56,7 +56,8 @@ if ( $op eq 'cancel_reserve' and $reserve_id ) {
my $hold = Koha::Holds->find( $reserve_id );
if ( $hold ) {
my $cancellation_reason = $input->param('cancellation-reason');
- $hold->cancel({ cancellation_reason => $cancellation_reason });
+ my $cancellation_notify_patron = $input->param('cancellation-notify-patron');
+ $hold->cancel({ cancellation_reason => $cancellation_reason, notify_patron => $cancellation_notify_patron });
push @messages, { type => 'message', code => 'hold_cancelled' };
}
} elsif ( $op =~ m|^mark_as_lost| ) {
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt
@@ -167,6 +167,9 @@
[% END %]
+
+
+
[% END %]
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/reserve/request.tt
@@ -821,6 +821,9 @@
[% END %]
+
+
+
[% END %]
@@ -971,6 +974,9 @@
[% END %]
+
+
+
[% END %]
@@ -1335,10 +1341,14 @@
let biblionumber = cancel_link.data('biblionumber');
let reserve_id = cancel_link.data('id');
let reason = $("#modal-cancellation-reason").val();
+ let notify = $("#modal-cancellation-notify-patron").prop('checked');
let link = `request.pl?action=cancel&borrowernumber=${ borrowernumber }&biblionumber=${ biblionumber }&reserve_id=${ reserve_id }`;
if ( reason ) {
link += "&cancellation-reason=" + reason
}
+ if ( notify ) {
+ link += "&cancellation-notify-patron=1";
+ }
window.location.href = link;
return false;
});
--- a/reserve/modrequest.pl
+++ a/reserve/modrequest.pl
@@ -71,6 +71,8 @@ else {
undef $itemnumber[$i] if !$itemnumber[$i];
my $suspend_until = $query->param( "suspend_until_" . $reserve_id[$i] );
my $cancellation_reason = $query->param("cancellation-reason");
+ my $cancellation_notify_patron = $query->param("cancellation-notify-patron");
+
my $params = {
rank => $rank[$i],
reserve_id => $reserve_id[$i],
@@ -79,6 +81,7 @@ else {
itemnumber => $itemnumber[$i],
defined $suspend_until ? ( suspend_until => $suspend_until ) : (),
cancellation_reason => $cancellation_reason,
+ notify_patron => $cancellation_notify_patron,
};
if (C4::Context->preference('AllowHoldDateInFuture')) {
$params->{reservedate} = $reservedates[$i] ? dt_from_string($reservedates[$i]) : undef;
--- a/reserve/request.pl
+++ a/reserve/request.pl
@@ -106,8 +106,9 @@ if ( $action eq 'move' ) {
} elsif ( $action eq 'cancel' ) {
my $reserve_id = $input->param('reserve_id');
my $cancellation_reason = $input->param("cancellation-reason");
+ my $cancellation_notify_patron = $input->param("cancellation-notify-patron");
my $hold = Koha::Holds->find( $reserve_id );
- $hold->cancel({ cancellation_reason => $cancellation_reason }) if $hold;
+ $hold->cancel({ cancellation_reason => $cancellation_reason, notify_patron => $cancellation_notify_patron }) if $hold;
} elsif ( $action eq 'setLowestPriority' ) {
my $reserve_id = $input->param('reserve_id');
ToggleLowestPriority( $reserve_id );
--