Commit 4fa3df94 authored by Wm. Nick Clemens's avatar Wm. Nick Clemens Committed by Kyle M Hall

Bug 18478 - Some notices sent via SMS gateway fail

It seems that for HOLD and DUE (and maybe more) notices we rely on
C4::Letters::SendQueuedMessages
to populate the correct address.

This patch adjust that subroutine to correctly populate the field and/or
fail messages if no SMS provider available

To test:
 1 - Define a messaging prefs for a patron to recieve hold notices via
 SMS
 2 - Ensure you have defined an SMS message for 'HOLD' letter
 3 - Set an SMS alert number for patron
 4 - Set the SMS::Send driver to 'Email'
 5 - Fill a hold for the patron
 6 - Check the db and note the address is null
 7 - run process_message_queue.pl
 8 - Check db - address is null and message pending
 9 - Apply patch
10 - run process_message_queue
11 - Message to_address should be populated and message sent
Signed-off-by: default avatarMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: default avatarKyle M Hall <kyle@bywatersolutions.com>
parent 4f3dfd23
......@@ -1051,9 +1051,17 @@ sub SendQueuedMessages {
my $sms_provider = Koha::SMS::Providers->find( $member->{'sms_provider_id'} );
unless ( $sms_provider ) {
warn sprintf( "Patron %s has no sms provider id set!", $message->{'borrowernumber'} ) if $params->{'verbose'} or $debug;
_set_message_status( { message_id => $message->{'message_id'}, status => 'failed' } );
next MESSAGE;
}
$message->{to_address} = $message->{to_address} ? $message->{to_address} : $member->{'smsalertnumber'};
unless ( $message->{to_address} && $member->{'smsalertnumber'} ) {
_set_message_status( { message_id => $message->{'message_id'}, status => 'failed' } );
warn sprintf( "No smsalertnumber found for patron %s!", $message->{'borrowernumber'} ) if $params->{'verbose'} or $debug;
next MESSAGE;
}
$message->{to_address} .= '@' . $sms_provider->domain();
_update_message_to_address($message->{'message_id'},$message->{to_address});
_send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'} );
} else {
_send_message_by_sms( $message );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment