View | Details | Raw Unified | Return to bug 23673
Collapse All | Expand All

(-)a/C4/Letters.pm (-4 / +4 lines)
Lines 1070-1076 sub GetQueuedMessages { Link Here
1070
1070
1071
    my $dbh = C4::Context->dbh();
1071
    my $dbh = C4::Context->dbh();
1072
    my $statement = << 'ENDSQL';
1072
    my $statement = << 'ENDSQL';
1073
SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued, time_status_changed
1073
SELECT message_id, borrowernumber, subject, content, message_transport_type, status, time_queued, updated_on
1074
FROM message_queue
1074
FROM message_queue
1075
ENDSQL
1075
ENDSQL
1076
1076
Lines 1124-1130 sub GetMessage { Link Here
1124
    return unless $message_id;
1124
    return unless $message_id;
1125
    my $dbh = C4::Context->dbh;
1125
    my $dbh = C4::Context->dbh;
1126
    return $dbh->selectrow_hashref(q|
1126
    return $dbh->selectrow_hashref(q|
1127
        SELECT message_id, borrowernumber, subject, content, metadata, letter_code, message_transport_type, status, time_queued, time_status_changed, to_address, from_address, content_type
1127
        SELECT message_id, borrowernumber, subject, content, metadata, letter_code, message_transport_type, status, time_queued, updated_on, to_address, from_address, content_type
1128
        FROM message_queue
1128
        FROM message_queue
1129
        WHERE message_id = ?
1129
        WHERE message_id = ?
1130
    |, {}, $message_id );
1130
    |, {}, $message_id );
Lines 1368-1374 sub _is_duplicate { Link Here
1368
        WHERE message_transport_type = ?
1368
        WHERE message_transport_type = ?
1369
        AND borrowernumber = ?
1369
        AND borrowernumber = ?
1370
        AND letter_code = ?
1370
        AND letter_code = ?
1371
        AND CAST(time_status_changed AS date) = CAST(NOW() AS date)
1371
        AND CAST(updated_on AS date) = CAST(NOW() AS date)
1372
        AND status="sent"
1372
        AND status="sent"
1373
        AND content = ?
1373
        AND content = ?
1374
    |, {}, $message->{message_transport_type}, $message->{borrowernumber}, $message->{letter_code}, $message->{content} );
1374
    |, {}, $message->{message_transport_type}, $message->{borrowernumber}, $message->{letter_code}, $message->{content} );
Lines 1419-1425 sub _set_message_status { Link Here
1419
    }
1419
    }
1420
1420
1421
    my $dbh = C4::Context->dbh();
1421
    my $dbh = C4::Context->dbh();
1422
    my $statement = 'UPDATE message_queue SET status= ?, time_status_changed = NOW() WHERE message_id = ?';
1422
    my $statement = 'UPDATE message_queue SET status= ?, updated_on = NOW() WHERE message_id = ?';
1423
    my $sth = $dbh->prepare( $statement );
1423
    my $sth = $dbh->prepare( $statement );
1424
    my $result = $sth->execute( $params->{'status'},
1424
    my $result = $sth->execute( $params->{'status'},
1425
                                $params->{'message_id'} );
1425
                                $params->{'message_id'} );
(-)a/installer/data/mysql/atomicupdate/bug-23673.perl (-3 / +3 lines)
Lines 3-12 if( CheckVersion( $DBversion ) ) { Link Here
3
3
4
    $dbh->do("ALTER TABLE message_queue MODIFY time_queued timestamp NOT NULL default CURRENT_TIMESTAMP");
4
    $dbh->do("ALTER TABLE message_queue MODIFY time_queued timestamp NOT NULL default CURRENT_TIMESTAMP");
5
5
6
    if( !column_exists( 'message_queue', 'time_status_changed' ) ) {
6
    if( !column_exists( 'message_queue', 'updated_on' ) ) {
7
        $dbh->do("ALTER TABLE message_queue ADD COLUMN time_status_changed timestamp NULL AFTER time_queued");
7
        $dbh->do("ALTER TABLE message_queue ADD COLUMN updated_on timestamp NULL AFTER time_queued");
8
    }
8
    }
9
9
10
    SetVersion( $DBversion );
10
    SetVersion( $DBversion );
11
    print "Upgrade to $DBversion done (Bug 23673 - modify time_queued and add time_status_changed to message_queue)\n";
11
    print "Upgrade to $DBversion done (Bug 23673 - modify time_queued and add updated_on to message_queue)\n";
12
}
12
}
(-)a/installer/data/mysql/kohastructure.sql (-1 / +1 lines)
Lines 2427-2433 CREATE TABLE `message_queue` ( Link Here
2427
  `message_transport_type` varchar(20) NOT NULL,
2427
  `message_transport_type` varchar(20) NOT NULL,
2428
  `status` enum('sent','pending','failed','deleted') NOT NULL default 'pending',
2428
  `status` enum('sent','pending','failed','deleted') NOT NULL default 'pending',
2429
  `time_queued` timestamp NOT NULL default CURRENT_TIMESTAMP,
2429
  `time_queued` timestamp NOT NULL default CURRENT_TIMESTAMP,
2430
  `time_status_changed` timestamp NULL,
2430
  `updated_on` timestamp NULL,
2431
  `to_address` LONGTEXT,
2431
  `to_address` LONGTEXT,
2432
  `from_address` LONGTEXT,
2432
  `from_address` LONGTEXT,
2433
  `content_type` MEDIUMTEXT,
2433
  `content_type` MEDIUMTEXT,
(-)a/t/db_dependent/Letters.t (-3 / +2 lines)
Lines 133-139 is( $messages->[0]->{content}, $my_message->{letter}->{content}, 'EnqueueLetter Link Here
133
is( $messages->[0]->{message_transport_type}, $my_message->{message_transport_type}, 'EnqueueLetter stores the message type correctly' );
133
is( $messages->[0]->{message_transport_type}, $my_message->{message_transport_type}, 'EnqueueLetter stores the message type correctly' );
134
is( $messages->[0]->{status}, 'pending', 'EnqueueLetter stores the status pending correctly' );
134
is( $messages->[0]->{status}, 'pending', 'EnqueueLetter stores the status pending correctly' );
135
isnt( $messages->[0]->{time_queued}, undef, 'Time queued inserted by default in message_queue table' );
135
isnt( $messages->[0]->{time_queued}, undef, 'Time queued inserted by default in message_queue table' );
136
is( $messages->[0]->{time_status_changed}, undef, 'Time status changed undefined by default in message_queue table' );
136
is( $messages->[0]->{updated_on}, undef, 'Time status changed undefined by default in message_queue table' );
137
137
138
my $message_time_queued = $messages->[0]->{time_queued};
138
my $message_time_queued = $messages->[0]->{time_queued};
139
139
Lines 148-154 is( Link Here
148
    'failed',
148
    'failed',
149
    'message marked failed if tried to send SMS message for borrower with no smsalertnumber set (bug 11208)'
149
    'message marked failed if tried to send SMS message for borrower with no smsalertnumber set (bug 11208)'
150
);
150
);
151
isnt($messages->[0]->{time_status_changed}, undef, 'Time status changed set on status change' );
151
isnt($messages->[0]->{updated_on}, undef, 'Time status changed set on status change' );
152
is($messages->[0]->{time_queued}, $message_time_queued, 'Time queued remaines inmutable' );
152
is($messages->[0]->{time_queued}, $message_time_queued, 'Time queued remaines inmutable' );
153
153
154
# ResendMessage
154
# ResendMessage
155
- 

Return to bug 23673