Lines 913-921
sub EnqueueLetter {
Link Here
|
913 |
my $dbh = C4::Context->dbh(); |
913 |
my $dbh = C4::Context->dbh(); |
914 |
my $statement = << 'ENDSQL'; |
914 |
my $statement = << 'ENDSQL'; |
915 |
INSERT INTO message_queue |
915 |
INSERT INTO message_queue |
916 |
( borrowernumber, subject, content, metadata, letter_code, message_transport_type, status, time_queued, to_address, from_address, reply_address, content_type ) |
916 |
( borrowernumber, subject, content, metadata, letter_code, message_transport_type, status, time_queued, to_address, from_address, reply_address, content_type, delivery_note ) |
917 |
VALUES |
917 |
VALUES |
918 |
( ?, ?, ?, ?, ?, ?, ?, NOW(), ?, ?, ?, ? ) |
918 |
( ?, ?, ?, ?, ?, ?, ?, NOW(), ?, ?, ?, ?, ? ) |
919 |
ENDSQL |
919 |
ENDSQL |
920 |
|
920 |
|
921 |
my $sth = $dbh->prepare($statement); |
921 |
my $sth = $dbh->prepare($statement); |
Lines 931-936
ENDSQL
Link Here
|
931 |
$params->{'from_address'}, # from_address |
931 |
$params->{'from_address'}, # from_address |
932 |
$params->{'reply_address'}, # reply_address |
932 |
$params->{'reply_address'}, # reply_address |
933 |
$params->{'letter'}->{'content-type'}, # content_type |
933 |
$params->{'letter'}->{'content-type'}, # content_type |
|
|
934 |
$params->{'delivery_note'} || '', # delivery_note |
934 |
); |
935 |
); |
935 |
return $dbh->last_insert_id(undef,undef,'message_queue', undef); |
936 |
return $dbh->last_insert_id(undef,undef,'message_queue', undef); |
936 |
} |
937 |
} |
Lines 1072-1078
sub GetQueuedMessages {
Link Here
|
1072 |
|
1073 |
|
1073 |
my $dbh = C4::Context->dbh(); |
1074 |
my $dbh = C4::Context->dbh(); |
1074 |
my $statement = << 'ENDSQL'; |
1075 |
my $statement = << 'ENDSQL'; |
1075 |
SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued, updated_on |
1076 |
SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued, updated_on, delivery_note |
1076 |
FROM message_queue |
1077 |
FROM message_queue |
1077 |
ENDSQL |
1078 |
ENDSQL |
1078 |
|
1079 |
|
Lines 1126-1132
sub GetMessage {
Link Here
|
1126 |
return unless $message_id; |
1127 |
return unless $message_id; |
1127 |
my $dbh = C4::Context->dbh; |
1128 |
my $dbh = C4::Context->dbh; |
1128 |
return $dbh->selectrow_hashref(q| |
1129 |
return $dbh->selectrow_hashref(q| |
1129 |
SELECT message_id, borrowernumber, subject, content, metadata, letter_code, message_transport_type, status, time_queued, updated_on, to_address, from_address, reply_address, content_type |
1130 |
SELECT message_id, borrowernumber, subject, content, metadata, letter_code, message_transport_type, status, time_queued, updated_on, to_address, from_address, reply_address, content_type, delivery_note |
1130 |
FROM message_queue |
1131 |
FROM message_queue |
1131 |
WHERE message_id = ? |
1132 |
WHERE message_id = ? |
1132 |
|, {}, $message_id ); |
1133 |
|, {}, $message_id ); |
Lines 1230-1236
sub _get_unsent_messages {
Link Here
|
1230 |
|
1231 |
|
1231 |
my $dbh = C4::Context->dbh(); |
1232 |
my $dbh = C4::Context->dbh(); |
1232 |
my $statement = qq{ |
1233 |
my $statement = qq{ |
1233 |
SELECT mq.message_id, mq.borrowernumber, mq.subject, mq.content, mq.message_transport_type, mq.status, mq.time_queued, mq.from_address, mq.reply_address, mq.to_address, mq.content_type, b.branchcode, mq.letter_code |
1234 |
SELECT mq.message_id, mq.borrowernumber, mq.subject, mq.content, mq.message_transport_type, mq.status, mq.time_queued, mq.from_address, mq.reply_address, mq.to_address, mq.content_type, b.branchcode, mq.letter_code, mq.delivery_note |
1234 |
FROM message_queue mq |
1235 |
FROM message_queue mq |
1235 |
LEFT JOIN borrowers b ON b.borrowernumber = mq.borrowernumber |
1236 |
LEFT JOIN borrowers b ON b.borrowernumber = mq.borrowernumber |
1236 |
WHERE status = ? |
1237 |
WHERE status = ? |
Lines 1277-1283
sub _send_message_by_email {
Link Here
|
1277 |
unless ($patron) { |
1278 |
unless ($patron) { |
1278 |
warn "FAIL: No 'to_address' and INVALID borrowernumber ($message->{borrowernumber})"; |
1279 |
warn "FAIL: No 'to_address' and INVALID borrowernumber ($message->{borrowernumber})"; |
1279 |
_set_message_status( { message_id => $message->{'message_id'}, |
1280 |
_set_message_status( { message_id => $message->{'message_id'}, |
1280 |
status => 'failed' } ); |
1281 |
status => 'failed', |
|
|
1282 |
delivery_note => 'Invalid borrowernumber '.$message->{borrowernumber} } ); |
1281 |
return; |
1283 |
return; |
1282 |
} |
1284 |
} |
1283 |
$to_address = $patron->notice_email_address; |
1285 |
$to_address = $patron->notice_email_address; |
Lines 1285-1291
sub _send_message_by_email {
Link Here
|
1285 |
# warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})"; |
1287 |
# warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})"; |
1286 |
# warning too verbose for this more common case? |
1288 |
# warning too verbose for this more common case? |
1287 |
_set_message_status( { message_id => $message->{'message_id'}, |
1289 |
_set_message_status( { message_id => $message->{'message_id'}, |
1288 |
status => 'failed' } ); |
1290 |
status => 'failed', |
|
|
1291 |
delivery_note => 'Unable to find an email address for this borrower' } ); |
1289 |
return; |
1292 |
return; |
1290 |
} |
1293 |
} |
1291 |
} |
1294 |
} |
Lines 1330-1340
sub _send_message_by_email {
Link Here
|
1330 |
|
1333 |
|
1331 |
if ( Mail::Sendmail::sendmail( %sendmail_params ) ) { |
1334 |
if ( Mail::Sendmail::sendmail( %sendmail_params ) ) { |
1332 |
_set_message_status( { message_id => $message->{'message_id'}, |
1335 |
_set_message_status( { message_id => $message->{'message_id'}, |
1333 |
status => 'sent' } ); |
1336 |
status => 'sent', |
|
|
1337 |
delivery_note => '' } ); |
1334 |
return 1; |
1338 |
return 1; |
1335 |
} else { |
1339 |
} else { |
1336 |
_set_message_status( { message_id => $message->{'message_id'}, |
1340 |
_set_message_status( { message_id => $message->{'message_id'}, |
1337 |
status => 'failed' } ); |
1341 |
status => 'failed', |
|
|
1342 |
delivery_note => $Mail::Sendmail::error } ); |
1338 |
carp $Mail::Sendmail::error; |
1343 |
carp $Mail::Sendmail::error; |
1339 |
return; |
1344 |
return; |
1340 |
} |
1345 |
} |
Lines 1383-1395
sub _send_message_by_sms {
Link Here
|
1383 |
|
1388 |
|
1384 |
unless ( $patron and $patron->smsalertnumber ) { |
1389 |
unless ( $patron and $patron->smsalertnumber ) { |
1385 |
_set_message_status( { message_id => $message->{'message_id'}, |
1390 |
_set_message_status( { message_id => $message->{'message_id'}, |
1386 |
status => 'failed' } ); |
1391 |
status => 'failed', |
|
|
1392 |
delivery_note => 'Missing SMS number' } ); |
1387 |
return; |
1393 |
return; |
1388 |
} |
1394 |
} |
1389 |
|
1395 |
|
1390 |
if ( _is_duplicate( $message ) ) { |
1396 |
if ( _is_duplicate( $message ) ) { |
1391 |
_set_message_status( { message_id => $message->{'message_id'}, |
1397 |
_set_message_status( { message_id => $message->{'message_id'}, |
1392 |
status => 'failed' } ); |
1398 |
status => 'failed', |
|
|
1399 |
delivery_note => 'Message is duplicate' } ); |
1393 |
return; |
1400 |
return; |
1394 |
} |
1401 |
} |
1395 |
|
1402 |
|
Lines 1397-1403
sub _send_message_by_sms {
Link Here
|
1397 |
message => $message->{'content'}, |
1404 |
message => $message->{'content'}, |
1398 |
} ); |
1405 |
} ); |
1399 |
_set_message_status( { message_id => $message->{'message_id'}, |
1406 |
_set_message_status( { message_id => $message->{'message_id'}, |
1400 |
status => ($success ? 'sent' : 'failed') } ); |
1407 |
status => ($success ? 'sent' : 'failed'), |
|
|
1408 |
delivery_note => ($success ? '' : 'No notes from SMS driver') } ); |
1409 |
|
1401 |
return $success; |
1410 |
return $success; |
1402 |
} |
1411 |
} |
1403 |
|
1412 |
|
Lines 1421-1429
sub _set_message_status {
Link Here
|
1421 |
} |
1430 |
} |
1422 |
|
1431 |
|
1423 |
my $dbh = C4::Context->dbh(); |
1432 |
my $dbh = C4::Context->dbh(); |
1424 |
my $statement = 'UPDATE message_queue SET status= ? WHERE message_id = ?'; |
1433 |
my $statement = 'UPDATE message_queue SET status= ?, delivery_note= ? WHERE message_id = ?'; |
1425 |
my $sth = $dbh->prepare( $statement ); |
1434 |
my $sth = $dbh->prepare( $statement ); |
1426 |
my $result = $sth->execute( $params->{'status'}, |
1435 |
my $result = $sth->execute( $params->{'status'}, |
|
|
1436 |
$params->{'delivery_note'} || '', |
1427 |
$params->{'message_id'} ); |
1437 |
$params->{'message_id'} ); |
1428 |
return $result; |
1438 |
return $result; |
1429 |
} |
1439 |
} |