my $dbh = C4::Context->dbh();
my $statement = << 'ENDSQL';
INSERT INTO message_queue
-( borrowernumber, subject, content, metadata, letter_code, message_transport_type, status, time_queued, to_address, from_address, reply_address, content_type, delivery_note )
+( borrowernumber, subject, content, metadata, letter_code, message_transport_type, status, time_queued, to_address, from_address, reply_address, content_type, failure_code )
VALUES
( ?, ?, ?, ?, ?, ?, ?, CAST(NOW() AS DATETIME), ?, ?, ?, ?, ? )
ENDSQL
$params->{'from_address'}, # from_address
$params->{'reply_address'}, # reply_address
$params->{'letter'}->{'content-type'}, # content_type
- $params->{'delivery_note'} || '', # delivery_note
+ $params->{'failure_code'} || '', # failure_code
);
return $dbh->last_insert_id(undef,undef,'message_queue', undef);
}
my $dbh = C4::Context->dbh();
my $statement = << 'ENDSQL';
-SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued, updated_on, delivery_note
+SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued, updated_on, failure_code
FROM message_queue
ENDSQL
return unless $message_id;
my $dbh = C4::Context->dbh;
return $dbh->selectrow_hashref(q|
- 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
+ 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, failure_code
FROM message_queue
WHERE message_id = ?
|, {}, $message_id );
my $dbh = C4::Context->dbh();
my $statement = qq{
- 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
+ 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.failure_code
FROM message_queue mq
LEFT JOIN borrowers b ON b.borrowernumber = mq.borrowernumber
WHERE status = ?
unless ($to_address) {
unless ($patron) {
warn "FAIL: No 'to_address' and INVALID borrowernumber ($message->{borrowernumber})";
- _set_message_status( { message_id => $message->{'message_id'},
- status => 'failed',
- delivery_note => 'Invalid borrowernumber '.$message->{borrowernumber},
- error_code => 'INVALID_BORNUMBER' } );
+ _set_message_status(
+ {
+ message_id => $message->{'message_id'},
+ status => 'failed',
+ failure_code => 'INVALID_BORNUMBER'
+ }
+ );
return;
}
$to_address = $patron->notice_email_address;
unless ($to_address) {
# warn "FAIL: No 'to_address' and no email for " . ($member->{surname} ||'') . ", borrowernumber ($message->{borrowernumber})";
# warning too verbose for this more common case?
- _set_message_status( { message_id => $message->{'message_id'},
- status => 'failed',
- delivery_note => 'Unable to find an email address for this borrower',
- error_code => 'NO_EMAIL' } );
+ _set_message_status(
+ {
+ message_id => $message->{'message_id'},
+ status => 'failed',
+ failure_code => 'NO_EMAIL'
+ }
+ );
return;
}
}
|| $branch_email
|| C4::Context->preference('KohaAdminEmailAddress');
if( !$from_address ) {
- _set_message_status({
- message_id => $message->{'message_id'},
- status => 'failed',
- delivery_note => 'No from address',
- });
+ _set_message_status(
+ {
+ message_id => $message->{'message_id'},
+ status => 'failed',
+ failure_code => 'NO_FROM',
+ }
+ );
return;
};
my $email = Koha::Email->create(
{
message_id => $message->{'message_id'},
status => 'sent',
- delivery_note => ''
+ failure_code => ''
}
);
return 1;
{
message_id => $message->{'message_id'},
status => 'failed',
- delivery_note => $Mail::Sendmail::error
+ failure_code => 'SENDMAIL'
}
);
carp "$_";
+ carp "$Mail::Sendmail::error";
return;
};
}
unless ( $patron and $patron->smsalertnumber ) {
_set_message_status( { message_id => $message->{'message_id'},
status => 'failed',
- delivery_note => 'Missing SMS number',
- error_code => 'MISSING_SMS' } );
+ failure_code => 'MISSING_SMS' } );
return;
}
if ( _is_duplicate( $message ) ) {
- _set_message_status( { message_id => $message->{'message_id'},
- status => 'failed',
- delivery_note => 'Message is duplicate',
- error_code => 'DUPLICATE_MESSAGE' } );
+ _set_message_status(
+ {
+ message_id => $message->{'message_id'},
+ status => 'failed',
+ failure_code => 'DUPLICATE_MESSAGE'
+ }
+ );
return;
}
- my $success = C4::SMS->send_sms( { destination => $patron->smsalertnumber,
- message => $message->{'content'},
- } );
- _set_message_status( { message_id => $message->{'message_id'},
- status => ($success ? 'sent' : 'failed'),
- delivery_note => ($success ? '' : 'No notes from SMS driver'),
- error_code => 'NO_NOTES' } );
+ my $success = C4::SMS->send_sms(
+ {
+ destination => $patron->smsalertnumber,
+ message => $message->{'content'},
+ }
+ );
+
+ if ($success) {
+ _set_message_status(
+ {
+ message_id => $message->{'message_id'},
+ status => 'sent',
+ failure_code => ''
+ }
+ );
+ }
+ else {
+ _set_message_status(
+ {
+ message_id => $message->{'message_id'},
+ status => 'failed',
+ failure_code => 'NO_NOTES'
+ }
+ );
+ }
return $success;
}
}
my $dbh = C4::Context->dbh();
- my $statement = 'UPDATE message_queue SET status= ?, delivery_note= ? WHERE message_id = ?';
+ my $statement = 'UPDATE message_queue SET status= ?, failure_code= ? WHERE message_id = ?';
my $sth = $dbh->prepare( $statement );
my $result = $sth->execute( $params->{'status'},
- $params->{'delivery_note'} || '',
+ $params->{'failure_code'} || '',
$params->{'message_id'} );
return $result;
}