diff --git a/C4/Overdues.pm b/C4/Overdues.pm index 88e52cefca..34c7749f9f 100644 --- a/C4/Overdues.pm +++ b/C4/Overdues.pm @@ -720,21 +720,19 @@ returns a list of branch codes for branches with overdue rules defined. =cut sub GetBranchcodesWithOverdueRules { - my $dbh = C4::Context->dbh; - my $branchcodes = $dbh->selectcol_arrayref( - q| - SELECT DISTINCT(branchcode) - FROM overduerules - WHERE delay1 IS NOT NULL - ORDER BY branchcode - | - ); - if ( defined $branchcodes->[0] && $branchcodes->[0] eq '' ) { - - # If a default rule exists, all branches should be returned - return Koha::Libraries->search( {}, { order_by => 'branchname' } )->get_column('branchcode'); + my @branchcodes = Koha::CirculationRules->search( + { rule_name => 'overdue_1_delay' }, + { + order_by => 'branchcode', + columns => ['branchcode'], + distinct => 1, + } + )->get_column('branchcode'); + if ( !$branchcodes[0] ) { + @branchcodes = Koha::Libraries->search( {}, { order_by => 'branchname' } )->get_column('branchcode'); } - return @$branchcodes; + + return @branchcodes; } =head2 GetOverduesForBranch diff --git a/t/db_dependent/Overdues.t b/t/db_dependent/Overdues.t index 9084a1d04e..2f6c85a19e 100755 --- a/t/db_dependent/Overdues.t +++ b/t/db_dependent/Overdues.t @@ -96,7 +96,7 @@ is_deeply( ); # Test GetBranchcodesWithOverdueRules -$dbh->do(q|DELETE FROM overduerules|); +$dbh->do(q|DELETE FROM circulation_rules WHERE rule_name LIKE 'overdue_%' |); my @overdue_branches; warnings_are { @overdue_branches = C4::Overdues::GetBranchcodesWithOverdueRules(); } [], @@ -104,10 +104,10 @@ warnings_are { @overdue_branches = C4::Overdues::GetBranchcodesWithOverdueRules( $dbh->do( q| - INSERT INTO overduerules - ( branchcode,categorycode, delay1,letter1,debarred1, delay2,letter2,debarred2, delay3,letter3,debarred3 ) + INSERT INTO circulation_rules + ( branchcode, categorycode, itemtype, rule_name, rule_value ) VALUES - ( '', '', 1, 'LETTER_CODE1', 1, 5, 'LETTER_CODE2', 1, 10, 'LETTER_CODE3', 1 ) + ( NULL, NULL, NULL, 'overdue_1_delay', 1 ) | ); @@ -121,10 +121,10 @@ is_deeply( $dbh->do( q| - INSERT INTO overduerules - ( branchcode,categorycode, delay1,letter1,debarred1, delay2,letter2,debarred2, delay3,letter3,debarred3 ) + INSERT INTO circulation_rules + ( branchcode, categorycode, itemtype, rule_name, rule_value ) VALUES - ( 'CPL', '', 1, 'LETTER_CODE1', 1, 5, 'LETTER_CODE2', 1, 10, 'LETTER_CODE3', 1 ) + ( 'CPL', NULL, NULL, 'overdue_1_delay', 1 ) | ); @@ -134,27 +134,27 @@ is_deeply( 'If a default rule exists and a specific rule exists, all branches should be returned' ); -$dbh->do(q|DELETE FROM overduerules|); +$dbh->do(q|DELETE FROM circulation_rules WHERE rule_name LIKE 'overdue_%' |); $dbh->do( q| - INSERT INTO overduerules - ( branchcode,categorycode, delay1,letter1,debarred1, delay2,letter2,debarred2, delay3,letter3,debarred3 ) + INSERT INTO circulation_rules + ( branchcode, categorycode, itemtype, rule_name, rule_value ) VALUES - ( 'CPL', '', 1, 'LETTER_CODE1', 1, 5, 'LETTER_CODE2', 1, 10, 'LETTER_CODE3', 1 ) + ( 'CPL', NULL, NULL, 'overdue_1_delay', 1 ) | ); @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|DELETE FROM circulation_rules WHERE rule_name LIKE 'overdue_%' |); $dbh->do( q| - INSERT INTO overduerules - ( branchcode,categorycode, delay1,letter1,debarred1, delay2,letter2,debarred2, delay3,letter3,debarred3 ) + INSERT INTO circulation_rules + ( branchcode, categorycode, itemtype, rule_name, rule_value ) 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 ) + ( 'CPL', NULL, NULL, 'overdue_1_delay', 1 ), + ( 'MPL', NULL, NULL, 'overdue_1_delay', 1 ) | );