From 7ca4f590acf99089aa5423ec0f3d086540d4f390 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 6 Feb 2014 11:41:35 +0100 Subject: [PATCH] Bug 11696: ensure that print overdue notices use the print template This reordering avoids the case where a print notice is sent with an email or sms template is no email or SMS is defined. Test plan: Check print, sms and email for an overdue rule Don't define an email address and generate an overdue for a user Define 3 templates for the notice used Launch the cronjob script and verify the print notice is generated using the print template. Signed-off-by: Olli-Antti Kivilahti Signed-off-by: Marcel de Rooy Signed-off-by: Galen Charlton --- C4/Overdues.pm | 8 ++++++++ t/db_dependent/Overdues.t | 4 +++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/C4/Overdues.pm b/C4/Overdues.pm index 1e1a207e23..169b36ccfd 100644 --- a/C4/Overdues.pm +++ b/C4/Overdues.pm @@ -23,6 +23,8 @@ use strict; #use warnings; FIXME - Bug 2505 use Date::Calc qw/Today Date_to_Days/; use Date::Manip qw/UnixDate/; +use List::MoreUtils qw( uniq ); + use C4::Circulation; use C4::Context; use C4::Accounts; @@ -928,6 +930,12 @@ sub GetOverdueMessageTransportTypes { while ( my $mtt = $sth->fetchrow ) { push @mtts, $mtt; } + + # Put 'print' in first if exists + # It avoid to sent a print notice with an email or sms template is no email or sms is defined + @mtts = uniq( 'print', @mtts ) + if grep {/^print$/} @mtts; + return \@mtts; } diff --git a/t/db_dependent/Overdues.t b/t/db_dependent/Overdues.t index b023cfd2c6..1a1d5f8ad1 100644 --- a/t/db_dependent/Overdues.t +++ b/t/db_dependent/Overdues.t @@ -38,6 +38,8 @@ $dbh->do(q| ('', 'PT', 1, 'email'), ('', 'PT', 2, 'email'), ('', 'PT', 2, 'sms'), + ('', 'PT', 3, 'sms'), + ('', 'PT', 3, 'email'), ('', 'PT', 3, 'print'), ('', 'YA', 2, 'sms') |); @@ -69,7 +71,7 @@ $mtts = C4::Overdues::GetOverdueMessageTransportTypes('', 'PT', 2); is_deeply( $mtts, ['email', 'sms'], 'GetOverdueMessageTransportTypes: second overdue is by email and sms for PT (default)' ); $mtts = C4::Overdues::GetOverdueMessageTransportTypes('', 'PT', 3); -is_deeply( $mtts, ['print'], 'GetOverdueMessageTransportTypes: third overdue is by print for PT (default)' ); +is_deeply( $mtts, ['print', 'sms', 'email'], 'GetOverdueMessageTransportTypes: third overdue is by print, sms and email for PT (default). With print in first.' ); done_testing; -- 2.39.5