Lines 35-40
use Date::Calc qw( Add_Delta_Days );
Link Here
|
35 |
use Encode; |
35 |
use Encode; |
36 |
use Carp; |
36 |
use Carp; |
37 |
use Koha::Email; |
37 |
use Koha::Email; |
|
|
38 |
use Scalar::Util qw( blessed ); |
39 |
use Try::Tiny; |
38 |
|
40 |
|
39 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
41 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); |
40 |
|
42 |
|
Lines 948-953
sub SendQueuedMessages {
Link Here
|
948 |
|
950 |
|
949 |
my $unsent_messages = _get_unsent_messages(); |
951 |
my $unsent_messages = _get_unsent_messages(); |
950 |
MESSAGE: foreach my $message ( @$unsent_messages ) { |
952 |
MESSAGE: foreach my $message ( @$unsent_messages ) { |
|
|
953 |
|
951 |
# warn Data::Dumper->Dump( [ $message ], [ 'message' ] ); |
954 |
# warn Data::Dumper->Dump( [ $message ], [ 'message' ] ); |
952 |
warn sprintf( 'sending %s message to patron: %s', |
955 |
warn sprintf( 'sending %s message to patron: %s', |
953 |
$message->{'message_transport_type'}, |
956 |
$message->{'message_transport_type'}, |
Lines 955-965
sub SendQueuedMessages {
Link Here
|
955 |
if $params->{'verbose'} or $debug; |
958 |
if $params->{'verbose'} or $debug; |
956 |
# This is just begging for subclassing |
959 |
# This is just begging for subclassing |
957 |
next MESSAGE if ( lc($message->{'message_transport_type'}) eq 'rss' ); |
960 |
next MESSAGE if ( lc($message->{'message_transport_type'}) eq 'rss' ); |
958 |
if ( lc( $message->{'message_transport_type'} ) eq 'email' ) { |
961 |
eval { |
959 |
_send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'} ); |
962 |
if ( lc( $message->{'message_transport_type'} ) eq 'email' ) { |
960 |
} |
963 |
_send_message_by_email( $message, $params->{'username'}, $params->{'password'}, $params->{'method'} ); |
961 |
elsif ( lc( $message->{'message_transport_type'} ) eq 'sms' ) { |
964 |
} |
962 |
_send_message_by_sms( $message ); |
965 |
elsif ( lc( $message->{'message_transport_type'} ) eq 'sms' ) { |
|
|
966 |
_send_message_by_sms( $message ); |
967 |
} |
968 |
}; |
969 |
if ($@) { |
970 |
warn $@; |
963 |
} |
971 |
} |
964 |
} |
972 |
} |
965 |
return scalar( @$unsent_messages ); |
973 |
return scalar( @$unsent_messages ); |
Lines 1269-1280
sub _send_message_by_sms {
Link Here
|
1269 |
return; |
1277 |
return; |
1270 |
} |
1278 |
} |
1271 |
|
1279 |
|
1272 |
my $success = C4::SMS->send_sms( { destination => $member->{'smsalertnumber'}, |
1280 |
my $success; |
1273 |
message => $message->{'content'}, |
1281 |
try { |
1274 |
} ); |
1282 |
$success = C4::SMS->send_sms( { destination => $member->{'smsalertnumber'}, |
1275 |
_set_message_status( { message_id => $message->{'message_id'}, |
1283 |
message => $message->{'content'}, |
1276 |
status => ($success ? 'sent' : 'failed'), |
1284 |
} ); |
1277 |
delivery_note => ($success ? '' : 'No notes from SMS driver') } ); |
1285 |
_set_message_status( { message_id => $message->{'message_id'}, |
|
|
1286 |
status => ($success ? 'sent' : 'failed'), |
1287 |
delivery_note => ($success ? '' : 'No notes from SMS driver') } ); |
1288 |
|
1289 |
} catch { |
1290 |
if (blessed($_)){ |
1291 |
if ($_->isa('Koha::Exception::ConnectionFailed')){ |
1292 |
# Keep the message in pending status but |
1293 |
# add a delivery note explaining what happened |
1294 |
_set_message_status ( { message_id => $message->{'message_id'}, |
1295 |
status => 'pending', |
1296 |
delivery_note => 'Connection failed. Attempting to resend.' } ); |
1297 |
} |
1298 |
else { |
1299 |
$_->rethrow(); |
1300 |
} |
1301 |
} |
1302 |
else { |
1303 |
die $_; |
1304 |
} |
1305 |
}; |
1278 |
|
1306 |
|
1279 |
return $success; |
1307 |
return $success; |
1280 |
} |
1308 |
} |