@@ -, +, @@ --- C4/Overdues.pm | 6 +++--- t/db_dependent/Overdues.pl | 14 +++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) --- a/C4/Overdues.pm +++ a/C4/Overdues.pm @@ -749,18 +749,18 @@ returns a list of branch codes for branches with overdue rules defined. sub GetBranchcodesWithOverdueRules { my $dbh = C4::Context->dbh; - my @branchcodes = $dbh->selectrow_array(q| + my $branchcodes = $dbh->selectcol_arrayref(q| SELECT DISTINCT(branchcode) FROM overduerules WHERE delay1 IS NOT NULL ORDER BY branchcode |); - if ( $branchcodes[0] eq '' ) { + if ( $branchcodes->[0] eq '' ) { # If a default rule exists, all branches should be returned my $availbranches = C4::Branch::GetBranches(); return keys %$availbranches; } - return @branchcodes; + return @$branchcodes; } =head2 CheckItemNotify --- a/t/db_dependent/Overdues.pl +++ a/t/db_dependent/Overdues.pl @@ -1,7 +1,7 @@ #!/usr/bin/perl use Modern::Perl; -use Test::More tests => 3; +use Test::More tests => 4; use C4::Branch; use C4::Context; @@ -45,3 +45,15 @@ $dbh->do(q| @overdue_branches = C4::Overdues::GetBranchcodesWithOverdueRules; is_deeply( \@overdue_branches, ['CPL'] , 'If only a specific rule exist, only 1 branch should be returned' ); + +$dbh->do(q|DELETE FROM overduerules|); +$dbh->do(q| + INSERT INTO overduerules + ( branchcode,categorycode, delay1,letter1,debarred1, delay2,letter2,debarred2, delay3,letter3,debarred3 ) + VALUES + ( 'CPL', '', 1, 'LETTER_CODE1_CPL', 1, 5, 'LETTER_CODE2_CPL', 1, 10, 'LETTER_CODE3_CPL', 1 ), + ( 'MPL', '', 1, 'LETTER_CODE1_MPL', 1, 5, 'LETTER_CODE2_MPL', 1, 10, 'LETTER_CODE3_MPL', 1 ) +|); + +@overdue_branches = C4::Overdues::GetBranchcodesWithOverdueRules; +is_deeply( \@overdue_branches, ['CPL', 'MPL'] , 'If only 2 specific rules exist, 2 branches should be returned' ); --