From 6b1c6ddfaa858d9417de8b00da73170d0760fc9f Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Wed, 26 Nov 2025 15:38:15 +0000 Subject: [PATCH] Bug 41315: Change only notice branchcode when OverDueNoticeFrom is set to patron-homelibrary This patch adds a new variable $notice_branchcode and uses this when getting the patron's homelibrary to ensure we don't change the branch we are using. To test: 1 - At branch A - checkout three items, 1 day overdue to 3 patrons of the same category from different branches (not A) 2 - Set the system preference OverdueNoticeFrom to 'patron home library' 3 - Browse to More->Tools->Overdue notice/status triggers 4 - Set overdue triggers for default library and the category used above to: Delay: 1 Letter: Overdue notice (ODUE) 5 - From the command line run the overdue notices: perl misc/cronjobs/overdue_notices.pl --triggered --library CPL --test --nomail -v -v 6 - Note that we begin pass 1 with CPL and then use a different branch for passes 2 and 3 7 - Apply patch 8 - Repeat 9 - Confirm branch is consistent 10 - Run without branch param: perl misc/cronjobs/overdue_notices.pl --triggered --library CPL --test --nomail -v -v 11 - Confirm branches are consistent --- misc/cronjobs/overdue_notices.pl | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/misc/cronjobs/overdue_notices.pl b/misc/cronjobs/overdue_notices.pl index 6e4aa782184..7962a2b2525 100755 --- a/misc/cronjobs/overdue_notices.pl +++ b/misc/cronjobs/overdue_notices.pl @@ -542,6 +542,7 @@ END_SQL PERIOD: foreach my $i ( 1 .. 3 ) { $verbose and warn "branch '$branchcode', categorycode = $overdue_rules->{categorycode} pass $i\n"; + my $notice_branchcode = $branchcode; my $mindays = $overdue_rules->{"delay$i"}; # the notice will be sent after mindays days (grace period) my $maxdays = ( @@ -647,8 +648,8 @@ END_SQL my $patron = Koha::Patrons->find($borrowernumber); if ($patron_homelibrary) { - $branchcode = $patron->branchcode; - $library = Koha::Libraries->find($branchcode); + $notice_branchcode = $patron->branchcode; + $library = Koha::Libraries->find($notice_branchcode); $admin_email_address = $library->from_email_address; $branch_email_address = C4::Context->preference('AddressForFailedOverdueNotices') || $library->inbound_email_address; @@ -669,7 +670,7 @@ END_SQL { module => 'circulation', code => $overdue_rules->{"letter$i"}, - branchcode => $branchcode, + branchcode => $notice_branchcode, lang => $patron->lang } ); @@ -747,7 +748,7 @@ END_SQL $sth2->finish; my @message_transport_types = - @{ GetOverdueMessageTransportTypes( $branchcode, $overdue_rules->{categorycode}, $i ) }; + @{ GetOverdueMessageTransportTypes( $notice_branchcode, $overdue_rules->{categorycode}, $i ) }; @message_transport_types = @{ GetOverdueMessageTransportTypes( q{}, $overdue_rules->{categorycode}, $i ) } unless @message_transport_types; @@ -772,7 +773,7 @@ END_SQL module => 'circulation', code => $overdue_rules->{"letter$i"}, message_transport_type => $effective_mtt, - branchcode => $branchcode, + branchcode => $notice_branchcode, lang => $patron->lang } ); @@ -781,7 +782,7 @@ END_SQL { letter_code => $overdue_rules->{"letter$i"}, borrowernumber => $borrowernumber, - branchcode => $branchcode, + branchcode => $notice_branchcode, items => \@items, substitute => { # this appears to be a hack to overcome incomplete features in this code. bib => $library->branchname, # maybe 'bib' is a typo for 'lib'? -- 2.39.5