@@ -, +, @@ notices $ ./misc/cronjobs/process_message_queue.pl --- C4/Letters.pm | 8 ++++---- koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt | 6 ++++-- t/db_dependent/Letters.t | 7 ++++++- 3 files changed, 14 insertions(+), 7 deletions(-) --- a/C4/Letters.pm +++ a/C4/Letters.pm @@ -1070,7 +1070,7 @@ sub GetQueuedMessages { my $dbh = C4::Context->dbh(); my $statement = << 'ENDSQL'; -SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued +SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued, time_status_changed FROM message_queue ENDSQL @@ -1124,7 +1124,7 @@ sub GetMessage { 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, to_address, from_address, content_type + SELECT message_id, borrowernumber, subject, content, metadata, letter_code, message_transport_type, status, time_queued, time_status_changed, to_address, from_address, content_type FROM message_queue WHERE message_id = ? |, {}, $message_id ); @@ -1368,7 +1368,7 @@ sub _is_duplicate { WHERE message_transport_type = ? AND borrowernumber = ? AND letter_code = ? - AND CAST(time_queued AS date) = CAST(NOW() AS date) + AND CAST(time_status_changed AS date) = CAST(NOW() AS date) AND status="sent" AND content = ? |, {}, $message->{message_transport_type}, $message->{borrowernumber}, $message->{letter_code}, $message->{content} ); @@ -1419,7 +1419,7 @@ sub _set_message_status { } my $dbh = C4::Context->dbh(); - my $statement = 'UPDATE message_queue SET status= ? WHERE message_id = ?'; + my $statement = 'UPDATE message_queue SET status= ?, time_status_changed = NOW() WHERE message_id = ?'; my $sth = $dbh->prepare( $statement ); my $result = $sth->execute( $params->{'status'}, $params->{'message_id'} ); --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/notices.tt @@ -35,7 +35,8 @@ Notice Type Status - Time + Time status changed + Time created @@ -73,6 +74,7 @@ [% END %] + [% QUEUED_MESSAGE.time_status_changed | $KohaDates with_hours => 1 %] [% QUEUED_MESSAGE.time_queued | $KohaDates with_hours => 1 %] [% END %] @@ -98,7 +100,7 @@ $(document).ready(function() { $("#noticestable").dataTable($.extend(true, {}, dataTablesDefaults, { "aaSorting": [[ 3, "desc" ]], - "aoColumns": [ null,null,null,{ "sType": "title-string" } ], + "aoColumns": [ null,null,null, { "sType": "title-string" } ,{ "sType": "title-string" } ], "sPaginationType": "full" })); --- a/t/db_dependent/Letters.t +++ a/t/db_dependent/Letters.t @@ -18,7 +18,7 @@ # along with Koha; if not, see . use Modern::Perl; -use Test::More tests => 69; +use Test::More tests => 73; use Test::MockModule; use Test::Warn; @@ -132,7 +132,10 @@ is( $messages->[0]->{subject}, $my_message->{letter}->{title}, 'EnqueueLetter st is( $messages->[0]->{content}, $my_message->{letter}->{content}, 'EnqueueLetter stores the content correctly' ); is( $messages->[0]->{message_transport_type}, $my_message->{message_transport_type}, 'EnqueueLetter stores the message type correctly' ); is( $messages->[0]->{status}, 'pending', 'EnqueueLetter stores the status pending correctly' ); +isnt( $messages->[0]->{time_queued}, undef, 'Time queued inserted by default in message_queue table' ); +is( $messages->[0]->{time_status_changed}, undef, 'Time status changed undefined by default in message_queue table' ); +my $message_time_queued = $messages->[0]->{time_queued}; # SendQueuedMessages my $messages_processed = C4::Letters::SendQueuedMessages( { type => 'email' }); @@ -145,6 +148,8 @@ is( 'failed', 'message marked failed if tried to send SMS message for borrower with no smsalertnumber set (bug 11208)' ); +isnt($messages->[0]->{time_status_changed}, undef, 'Time status changed set on status change' ); +is($messages->[0]->{time_queued}, $message_time_queued, 'Time queued remaines inmutable' ); # ResendMessage my $resent = C4::Letters::ResendMessage($messages->[0]->{message_id}); --