@@ -, +, @@ same day --- C4/Letters.pm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) --- a/C4/Letters.pm +++ a/C4/Letters.pm @@ -1019,6 +1019,21 @@ $content EOS } +sub _is_duplicate { + my ( $message ) = @_; + my $dbh = C4::Context->dbh; + my $count = $dbh->selectrow_array(q| + SELECT COUNT(*) + FROM message_queue + WHERE message_transport_type = ? + AND borrowernumber = ? + AND letter_code = ? + AND CAST(time_queued AS date) = CAST(? AS date) + AND status="sent" + |, {}, $message->{message_transport_type}, $message->{borrowernumber}, $message->{letter_code}, $message->{time_queued} ); + return $count; +} + sub _send_message_by_sms { my $message = shift or return; my $member = C4::Members::GetMember( 'borrowernumber' => $message->{'borrowernumber'} ); @@ -1029,6 +1044,12 @@ sub _send_message_by_sms { return; } + if ( _is_duplicate( $message ) ) { + _set_message_status( { message_id => $message->{'message_id'}, + status => 'failed' } ); + return; + } + my $success = C4::SMS->send_sms( { destination => $member->{'smsalertnumber'}, message => $message->{'content'}, } ); --