@@ -, +, @@ patron messaging preferences --- C4/Reserves.pm | 18 ++++++++++++++++-- circ/pendingreserves.pl | 18 ++++++++++++++++-- .../atomicupdate/bug_20453-message_attributes.perl | 6 ++++++ .../atomicupdate/bug_20453-message_transports.perl | 6 ++++++ .../prog/en/includes/messaging-preference-form.inc | 1 + .../opac-tmpl/bootstrap/en/modules/opac-messaging.tt | 1 + reserve/request.pl | 9 ++++++++- 7 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_20453-message_attributes.perl create mode 100644 installer/data/mysql/atomicupdate/bug_20453-message_transports.perl --- a/C4/Reserves.pm +++ a/C4/Reserves.pm @@ -1020,7 +1020,14 @@ sub ModReserve { 'borrowers', $hold_borrowernumber } ); - C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email'); + + my $messaging_preferences = C4::Members::Messaging::GetMessagingPreferences({ borrowernumber => $hold_borrowernumber, message_name => 'Hold_Manually_Cancelled' }); + + while ( my ( $transport, $letter_code ) = each %{ $messaging_preferences->{transports} } ){ + if ( $transport eq 'email' ){ + C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email'); + } + } } elsif ($rank =~ /^\d+/ and $rank > 0) { logaction( 'HOLDS', 'MODIFY', $hold->reserve_id, Dumper($hold->unblessed) ) if C4::Context->preference('HoldsLog'); @@ -1235,7 +1242,14 @@ sub ModReserveCancelAll { 'borrowers', $hold_borrowernumber } ); - C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email'); + + my $messaging_preferences = C4::Members::Messaging::GetMessagingPreferences({ borrowernumber => $hold_borrowernumber, message_name => 'Hold_Manually_Cancelled' }); + + while ( my ( $transport, $letter_code ) = each %{ $messaging_preferences->{transports} } ){ + if ( $transport eq 'email' ){ + C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email'); + } + } #step 2 launch the subroutine of the others reserves ( $messages, $nextreservinfo ) = GetOtherReserves($itemnumber); --- a/circ/pendingreserves.pl +++ a/circ/pendingreserves.pl @@ -73,7 +73,14 @@ if ( $op eq 'cancel_reserve' and $reserve_id ) { 'borrowers', $hold_borrowernumber } ); - C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email'); + + my $messaging_preferences = C4::Members::Messaging::GetMessagingPreferences({ borrowernumber => $hold_borrowernumber, message_name => 'Hold_Manually_Cancelled' }); + + while ( my ( $transport, $letter_code ) = each %{ $messaging_preferences->{transports} } ){ + if ( $transport eq 'email' ){ + C4::Message->enqueue($letter, $hold_borrower->unblessed, 'email'); + } + } } } elsif ( $op =~ m|^mark_as_lost| ) { my $hold = Koha::Holds->find( $reserve_id ); @@ -152,7 +159,14 @@ if ( $op eq 'cancel_reserve' and $reserve_id ) { 'borrowers', $hold_borrowernumber } ); - C4::Message->enqueue($letter, $patron->unblessed, 'email'); + + my $messaging_preferences = C4::Members::Messaging::GetMessagingPreferences({ borrowernumber => $hold_borrowernumber, message_name => 'Hold_Manually_Cancelled' }); + + while ( my ( $transport, $letter_code ) = each %{ $messaging_preferences->{transports} } ){ + if ( $transport eq 'email' ){ + C4::Message->enqueue($letter, $patron->unblessed, 'email'); + } + } } elsif ( not $item ) { push @messages, { type => 'alert', code => 'hold_placed_at_biblio_level'}; } # else the url parameters have been modified and the user is not allowed to continue --- a/installer/data/mysql/atomicupdate/bug_20453-message_attributes.perl +++ a/installer/data/mysql/atomicupdate/bug_20453-message_attributes.perl @@ -0,0 +1,6 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + $dbh->do(q{INSERT IGNORE INTO message_attributes (message_attribute_id, message_name, takes_days) VALUES (7, 'Hold_Manually_Cancelled', 0) }); + + NewVersion( $DBversion, 20453, "Add Hold_Manually_Cancelled message attribute"); +} --- a/installer/data/mysql/atomicupdate/bug_20453-message_transports.perl +++ a/installer/data/mysql/atomicupdate/bug_20453-message_transports.perl @@ -0,0 +1,6 @@ +$DBversion = 'XXX'; +if( CheckVersion( $DBversion ) ) { + $dbh->do(q{INSERT IGNORE INTO message_transports (message_attribute_id, message_transport_type, is_digest, letter_module, letter_code, branchcode) VALUES (7, "email", 0, "reserves", "HOLD_MANUAL_CANCEL", null) }); + + NewVersion( $DBversion, 20453, "Add HOLD_MANUAL_CANCEL message transport" ); +} --- a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/messaging-preference-form.inc @@ -20,6 +20,7 @@ [% ELSIF ( messaging_preference.Hold_Filled ) %]Hold filled [% ELSIF ( messaging_preference.Item_Check_in ) %]Item check-in [% ELSIF ( messaging_preference.Item_Checkout ) %]Item checkout + [% ELSIF ( messaging_preference.Hold_Manually_Cancelled ) %]Hold manually cancelled [% ELSE %]Unknown [% END %] [% IF ( messaging_preference.takes_days ) %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-messaging.tt @@ -52,6 +52,7 @@ [% ELSIF ( messaging_preference.Hold_Filled ) %]Hold filled [% ELSIF ( messaging_preference.Item_Check_in ) %]Item check-in [% ELSIF ( messaging_preference.Item_Checkout ) %]Item checkout + [% ELSIF ( messaging_preference.Hold_Manually_Cancelled ) %]Hold manually cancelled [% ELSE %]Unknown [% END %] [% IF ( messaging_preference.takes_days ) %]