From 8ad9f7a7e25613d7e2b1da64d521213fc8747449 Mon Sep 17 00:00:00 2001
From: Olli-Antti Kivilahti <olli-antti.kivilahti@jns.fi>
Date: Tue, 10 Jun 2014 09:48:14 +0300
Subject: [PATCH] [SIGNED-OFF] 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 <bgkriegel@gmail.com>
Problem exis.
Patch work as described following test plan.
No koha-qa errors
---
 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 1fe3a66..62e36e4 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};
 
-- 
1.7.9.5