Bug 42385: Use Koha::Policy::Circulation everywhere

Replaces all calls to _GetCircControlBranch with
Koha::Policy::Circulation->circ_control_library in:
- C4::Circulation (10 call sites)
- Koha::Item (1 call site)
- Koha::Recall (1 call site)
- reserve/request.pl (1 call site)
- svc/letters/preview (2 call sites)

Test plan:
1. Apply patch
2. Run:
   $ ktd --shell
   k$ prove t/db_dependent/Koha/Policy/Circulation.t \
          t/db_dependent/Circulation.t \
          t/db_dependent/Koha/Items.t \
          t/db_dependent/Koha/Recall.t
=> SUCCESS: Tests pass!
3. Sign off :-D

Signed-off-by: Alex Carver [Acerock7] <alex@rcls.org>
Signed-off-by: Martin Renvoize <martin.renvoize@openfifth.co.uk>
Signed-off-by: Pedro Amorim <pedro.amorim@openfifth.co.uk>
This commit is contained in:
Tomás Cohen Arazi 2026-05-05 10:16:25 -03:00 committed by Pedro Amorim
parent 5c833281ed
commit 4f1b98160e
No known key found for this signature in database
GPG Key ID: 06B75BA7F3894D55
5 changed files with 20 additions and 16 deletions

View File

@ -82,6 +82,7 @@ use Try::Tiny;
use JSON; use JSON;
use C4::Context; use C4::Context;
use Koha::Policy::Circulation;
use C4::Reserves use C4::Reserves
qw( CheckReserves CanItemBeReserved MoveReserve ModReserve ModReserveMinusPriority IsAvailableForItemLevelRequest ); qw( CheckReserves CanItemBeReserved MoveReserve ModReserve ModReserveMinusPriority IsAvailableForItemLevelRequest );
use C4::Biblio qw( UpdateTotalIssues ); use C4::Biblio qw( UpdateTotalIssues );
@ -436,7 +437,7 @@ sub TooMany {
my $cat_borrower = $patron->categorycode; my $cat_borrower = $patron->categorycode;
# Get which branchcode we need # Get which branchcode we need
my $branch = _GetCircControlBranch( $item, $patron ); my $branch = Koha::Policy::Circulation->circ_control_library( $item, $patron );
my $type = $item->effective_itemtype; my $type = $item->effective_itemtype;
my ( $type_object, $parent_type, $parent_maxissueqty_rule ); my ( $type_object, $parent_type, $parent_maxissueqty_rule );
@ -860,7 +861,7 @@ sub CanBookBeIssued {
my $dbh = C4::Context->dbh; my $dbh = C4::Context->dbh;
my $patron_unblessed = $patron->unblessed; my $patron_unblessed = $patron->unblessed;
my $circ_library = Koha::Libraries->find( _GetCircControlBranch( $item_object, $patron ) ); my $circ_library = Koha::Libraries->find( Koha::Policy::Circulation->circ_control_library( $item_object, $patron ) );
my $now = dt_from_string(); my $now = dt_from_string();
@ -1538,7 +1539,7 @@ Missing POD for checkHighHolds.
sub checkHighHolds { sub checkHighHolds {
my ( $item, $patron ) = @_; my ( $item, $patron ) = @_;
my $branchcode = _GetCircControlBranch( $item, $patron ); my $branchcode = Koha::Policy::Circulation->circ_control_library( $item, $patron );
my $return_data = { my $return_data = {
exceeded => 0, exceeded => 0,
@ -1728,7 +1729,7 @@ sub AddIssue {
or return; # if we don't get an Item, abort. or return; # if we don't get an Item, abort.
my $item_unblessed = $item_object->unblessed; my $item_unblessed = $item_object->unblessed;
my $branchcode = _GetCircControlBranch( $item_object, $patron ); my $branchcode = Koha::Policy::Circulation->circ_control_library( $item_object, $patron );
# get actual issuing if there is one # get actual issuing if there is one
my $actualissue = $item_object->checkout; my $actualissue = $item_object->checkout;
@ -3118,7 +3119,7 @@ within the grace period).
sub _calculate_new_debar_dt { sub _calculate_new_debar_dt {
my ( $patron, $item, $dt_due, $return_date ) = @_; my ( $patron, $item, $dt_due, $return_date ) = @_;
my $branchcode = _GetCircControlBranch( $item, $patron ); my $branchcode = Koha::Policy::Circulation->circ_control_library( $item, $patron );
my $circcontrol = C4::Context->preference('CircControl'); my $circcontrol = C4::Context->preference('CircControl');
my $issuing_rule = Koha::CirculationRules->get_effective_rules( my $issuing_rule = Koha::CirculationRules->get_effective_rules(
{ {
@ -3423,7 +3424,7 @@ sub CanBookBeRenewed {
my $final_unseen_renewal = 0; my $final_unseen_renewal = 0;
# override_limit will override anything else except on_reserve # override_limit will override anything else except on_reserve
my $branchcode = _GetCircControlBranch( $item, $patron ); my $branchcode = Koha::Policy::Circulation->circ_control_library( $item, $patron );
unless ($override_limit) { unless ($override_limit) {
( $auto_renew, $soonest ) = _CanBookBeAutoRenewed( ( $auto_renew, $soonest ) = _CanBookBeAutoRenewed(
@ -3708,7 +3709,7 @@ sub AddRenewal {
my $patron = Koha::Patrons->find($borrowernumber) or return; # FIXME Should do more than just return my $patron = Koha::Patrons->find($borrowernumber) or return; # FIXME Should do more than just return
my $patron_unblessed = $patron->unblessed; my $patron_unblessed = $patron->unblessed;
my $circ_library = Koha::Libraries->find( _GetCircControlBranch( $item_object, $patron ) ); my $circ_library = Koha::Libraries->find( Koha::Policy::Circulation->circ_control_library( $item_object, $patron ) );
my $schema = Koha::Database->schema; my $schema = Koha::Database->schema;
$schema->txn_do( $schema->txn_do(
@ -3983,7 +3984,7 @@ sub GetRenewCount {
$unseencount = $data->{'unseen_renewals'} if $data->{'unseen_renewals'}; $unseencount = $data->{'unseen_renewals'} if $data->{'unseen_renewals'};
# $item and $borrower should be calculated # $item and $borrower should be calculated
my $branchcode = _GetCircControlBranch( $item, $patron ); my $branchcode = Koha::Policy::Circulation->circ_control_library( $item, $patron );
my $rules = Koha::CirculationRules->get_effective_rules( my $rules = Koha::CirculationRules->get_effective_rules(
{ {
@ -4044,7 +4045,7 @@ sub GetSoonestRenewDate {
my $dbh = C4::Context->dbh; my $dbh = C4::Context->dbh;
my $branchcode = _GetCircControlBranch( $item, $patron ); my $branchcode = Koha::Policy::Circulation->circ_control_library( $item, $patron );
my $issuing_rule = Koha::CirculationRules->get_effective_rules( my $issuing_rule = Koha::CirculationRules->get_effective_rules(
{ {
categorycode => $patron->categorycode, categorycode => $patron->categorycode,
@ -4112,7 +4113,7 @@ sub GetLatestAutoRenewDate {
return unless $item; return unless $item;
my $dbh = C4::Context->dbh; my $dbh = C4::Context->dbh;
my $branchcode = _GetCircControlBranch( $item, $patron ); my $branchcode = Koha::Policy::Circulation->circ_control_library( $item, $patron );
my $circulation_rules = Koha::CirculationRules->get_effective_rules( my $circulation_rules = Koha::CirculationRules->get_effective_rules(
{ {

View File

@ -26,6 +26,7 @@ use Koha::DateUtils qw( dt_from_string output_pref );
use C4::Context; use C4::Context;
use C4::Circulation qw( barcodedecode GetBranchItemRule ); use C4::Circulation qw( barcodedecode GetBranchItemRule );
use Koha::Policy::Circulation;
use C4::Reserves; use C4::Reserves;
use C4::ClassSource qw( GetClassSort ); use C4::ClassSource qw( GetClassSort );
use C4::Log qw( logaction ); use C4::Log qw( logaction );
@ -2664,7 +2665,7 @@ sub can_be_recalled {
my $branchcode = C4::Context->userenv->{'branch'}; my $branchcode = C4::Context->userenv->{'branch'};
if ($patron) { if ($patron) {
$branchcode = C4::Circulation::_GetCircControlBranch( $self, $patron ); $branchcode = Koha::Policy::Circulation->circ_control_library( $self, $patron );
} }
# Check the circulation rule for each relevant itemtype for this item # Check the circulation rule for each relevant itemtype for this item

View File

@ -262,7 +262,7 @@ sub calc_expirationdate {
my $branchcode = $self->patron->branchcode; my $branchcode = $self->patron->branchcode;
if ($item) { if ($item) {
$branchcode = C4::Circulation::_GetCircControlBranch( $item, $self->patron ); $branchcode = Koha::Policy::Circulation->circ_control_library( $item, $self->patron );
} }
my $rule = Koha::CirculationRules->get_effective_rule( my $rule = Koha::CirculationRules->get_effective_rule(

View File

@ -37,7 +37,8 @@ use C4::Reserves
use C4::Items qw( get_hostitemnumbers_of ); use C4::Items qw( get_hostitemnumbers_of );
use C4::Koha qw( getitemtypeimagelocation ); use C4::Koha qw( getitemtypeimagelocation );
use C4::Serials qw( CountSubscriptionFromBiblionumber ); use C4::Serials qw( CountSubscriptionFromBiblionumber );
use C4::Circulation qw( _GetCircControlBranch GetBranchItemRule ); use C4::Circulation qw( GetBranchItemRule );
use Koha::Policy::Circulation;
use Koha::DateUtils qw( dt_from_string ); use Koha::DateUtils qw( dt_from_string );
use C4::Search qw( enabled_staff_search_views ); use C4::Search qw( enabled_staff_search_views );
@ -544,7 +545,7 @@ if ( ( $findborrower && $borrowernumber_hold || $findclub && $club_hold )
} }
if ($patron) { if ($patron) {
my $branch = _GetCircControlBranch( $item_object, $patron ); my $branch = Koha::Policy::Circulation->circ_control_library( $item_object, $patron );
my $branchitemrule = GetBranchItemRule( $branch, $item->{'itype'} ); my $branchitemrule = GetBranchItemRule( $branch, $item->{'itype'} );

View File

@ -23,6 +23,7 @@ use C4::Auth qw( get_template_and_user );
use C4::Context; use C4::Context;
use C4::Output qw( output_html_with_http_headers ); use C4::Output qw( output_html_with_http_headers );
use C4::Circulation; use C4::Circulation;
use Koha::Policy::Circulation;
use C4::Letters; use C4::Letters;
use Koha::Checkouts; use Koha::Checkouts;
use Koha::Items; use Koha::Items;
@ -153,7 +154,7 @@ if ( $code eq 'CHECKIN' ) {
my $checkout = Koha::Checkouts->find( { itemnumber => $item->itemnumber } ); my $checkout = Koha::Checkouts->find( { itemnumber => $item->itemnumber } );
if ($checkout) { if ($checkout) {
my $patron = Koha::Patrons->find( $checkout->borrowernumber ); my $patron = Koha::Patrons->find( $checkout->borrowernumber );
my $branchcode = C4::Circulation::_GetCircControlBranch( $item, $patron ); my $branchcode = Koha::Policy::Circulation->circ_control_library( $item, $patron );
$letter_params = { $letter_params = {
tables => { tables => {
issues => $item->itemnumber, issues => $item->itemnumber,
@ -174,7 +175,7 @@ if ( $code eq 'CHECKIN' ) {
my $item = Koha::Items->find( { barcode => $barcode } ); my $item = Koha::Items->find( { barcode => $barcode } );
my $patron = Koha::Patrons->find($borrowernumber); my $patron = Koha::Patrons->find($borrowernumber);
if ( $item and $patron ) { if ( $item and $patron ) {
my $branchcode = C4::Circulation::_GetCircControlBranch( $item, $patron ); my $branchcode = Koha::Policy::Circulation->circ_control_library( $item, $patron );
$letter_params = { $letter_params = {
tables => { tables => {
issues => $item->itemnumber, issues => $item->itemnumber,