From 3e8607e0759261f5c41eeaa13e3a1b5217f1ad66 Mon Sep 17 00:00:00 2001 From: Olli-Antti Kivilahti Date: Tue, 10 Jun 2014 09:48:14 +0300 Subject: [PATCH] Bug 12396 - MTT FIX: Due notices (DUEDGST) are multiplicated and all of them are sent to everybody who is about to receive ODUEDGST. So the first patron receives correct letters, but the followings received all the previous ones AND his letters. Eventually you end up with !n letters in message_queue where n = amount of patrons receiving due messages as digest and having something due. Eventually we got 4 000 000 ODUEDGST-letters of which 1 100 000 were sent to our patrons :) This is madness! Test plan: 0/ Delete the content of the message_queue table. 1/ Pick 3 patrons and set them to receive due messages as digest. 2/ Check 1 item out for 3 separate patrons and specify a due date today. 3/ Launch the advance_notices.pl script. 4/ Before this patch, you got 6 notices (1+2+3 [!n]). Now, you get 3 notices, 1 for each patron. Signed-off-by: Bernardo Gonzalez Kriegel Problem exis. Patch work as described following test plan. No koha-qa errors Signed-off-by: Jonathan Druart Signed-off-by: Tomas Cohen Arazi --- misc/cronjobs/advance_notices.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/misc/cronjobs/advance_notices.pl b/misc/cronjobs/advance_notices.pl index 1fe3a66278..62e36e4a92 100755 --- a/misc/cronjobs/advance_notices.pl +++ b/misc/cronjobs/advance_notices.pl @@ -339,8 +339,8 @@ SELECT biblio.*, items.*, issues.* AND issues.borrowernumber = ? AND (TO_DAYS(date_due)-TO_DAYS(NOW()) = ?) END_SQL -@letters = (); PATRON: while ( my ( $borrowernumber, $digest ) = each %$upcoming_digest ) { + @letters = (); my $count = $digest->{count}; my $from_address = $digest->{email}; @@ -399,8 +399,8 @@ PATRON: while ( my ( $borrowernumber, $digest ) = each %$upcoming_digest ) { } # Now, run through all the people that want digests and send them -@letters = (); PATRON: while ( my ( $borrowernumber, $digest ) = each %$due_digest ) { + @letters = (); my $count = $digest->{count}; my $from_address = $digest->{email}; -- 2.39.5