Bug 12315: fix sending of duplicate advanced notices (and sending advanced notices...
authorJonathan Druart <jonathan.druart@biblibre.com>
Tue, 27 May 2014 08:12:20 +0000 (10:12 +0200)
committerTomas Cohen Arazi <tomascohen@gmail.com>
Fri, 30 May 2014 18:31:00 +0000 (15:31 -0300)
Bug 10833 introduced a variable loop but does not reset it every
iteration.

So the first patron receives correct letters, but the following ones
received all the previous ones as well as their own notices

Test plan:
0/ Delete the content of the message_queue table.
1/ Define advanced notices sent 2 days in advance for 2 patrons.
2/ Check 1 item out for each one and specify a due date today + 2 days.
3/ Launch the advance_notices.pl script.
4/ Before this patch, you got 3 notices. Now, you get 2 notices, 1 for
   each patron.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Work well, no errors.

Tested following test plan, printing on screen or saving into db,
3 messages before, 2 after (advance_notices.pl -v -n -m 2 -c)

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
misc/cronjobs/advance_notices.pl

index c7c2e0f..1fe3a66 100755 (executable)
@@ -226,6 +226,7 @@ my $admin_adress = C4::Context->preference('KohaAdminEmailAddress');
 
 my @letters;
 UPCOMINGITEM: foreach my $upcoming ( @$upcoming_dues ) {
+    @letters = ();
     warn 'examining ' . $upcoming->{'itemnumber'} . ' upcoming due items' if $verbose;
     # warn( Data::Dumper->Dump( [ $upcoming ], [ 'overdue' ] ) );