From b7ca8672641102777bc052640a2f973fa076fe1b Mon Sep 17 00:00:00 2001 From: Lucas Gass Date: Fri, 2 Jan 2026 15:25:55 +0000 Subject: [PATCH] Bug 36063: Add local_holds_to_pull and adjust filters To test: 1. APPLY PATCH, restart_all 2. Make some holds 3. Go to the staff interface home page, you should see 'New holds to pull: X'. 4. Check those holds in so they are waiting. Now they should not be counted against the number you see on the staff main page. 5. Log in as a staff member with Staff access but without circulate_remaining_permissions. 6. You should not see the 'New holds to pull: X' line. --- .../prog/en/modules/intranet-main.tt | 15 +++++++++++ mainpage.pl | 25 ++++++++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt index 740713c5640..01f63cb3317 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/intranet-main.tt @@ -284,6 +284,21 @@ [% END %] + [% IF CAN_user_circulate_circulate_remaining_permissions && holds_to_pull %] +
+ Holds to pull: + [% IF local_holds_to_pull %] + + [% Branches.GetLoggedInBranchname | html %]: [% local_holds_to_pull | html %] + + / + [% END %] + + All libraries: [% holds_to_pull | html %] + +
+ [% END %] + [% IF new_curbside_pickups.count %]
New curbside pickups: diff --git a/mainpage.pl b/mainpage.pl index ecc5111380c..122bf93e8f7 100755 --- a/mainpage.pl +++ b/mainpage.pl @@ -24,7 +24,8 @@ use CGI qw ( -utf8 ); use C4::Output qw( output_html_with_http_headers ); use C4::Auth qw( get_template_and_user ); use C4::Koha; -use C4::Tags qw( get_count_by_tag_status ); +use C4::Tags qw( get_count_by_tag_status ); +use Koha::DateUtils qw( dt_from_string ); use Koha::AdditionalContents; use Koha::Patron::Modifications; use Koha::Patron::Discharge; @@ -133,6 +134,26 @@ unless ( $logged_in_user->has_permission( { parameters => 'manage_background_job $template->param( holds_with_cancellation_requests => Koha::Holds->waiting->filter_by_has_cancellation_requests->count ); +my $holds_to_pull_start_date = C4::Context->preference('HoldsToPullStartDate') || 2; +my $reserves_to_pull_from = dt_from_string()->subtract( days => $holds_to_pull_start_date ); + +my $holds_to_pull = Koha::Holds->search( + { + found => undef, + reservedate => { '>=' => $reserves_to_pull_from->ymd() } + } +)->count; + +#get local holds to pull by looking for holds with an item homebranch that matches the loggedinuser's location +my $local_holds_to_pull = Koha::Holds->search( + { + 'me.found' => undef, + 'item.homebranch' => C4::Context->userenv()->{'branch'}, + 'me.reservedate' => { '>=' => $reserves_to_pull_from->ymd() } + }, + { join => 'item' } +)->count; + if ( C4::Context->preference('CurbsidePickup') ) { $template->param( new_curbside_pickups => Koha::CurbsidePickups->search( @@ -163,6 +184,8 @@ $template->param( pending_discharge_requests => $pending_discharge_requests, pending_article_requests => $pending_article_requests, pending_problem_reports => $pending_problem_reports, + holds_to_pull => $holds_to_pull, + local_holds_to_pull => $local_holds_to_pull, ); output_html_with_http_headers $query, $cookie, $template->output; -- 2.39.5