Lines 41-47
Koha::Library::FloatLimits - Koha Library::FloatLimit object set class
Link Here
|
41 |
|
41 |
|
42 |
sub lowest_ratio_library { |
42 |
sub lowest_ratio_library { |
43 |
my ( $self, $item, $branchcode ) = @_; |
43 |
my ( $self, $item, $branchcode ) = @_; |
44 |
|
|
|
45 |
my $schema = Koha::Database->new->schema; |
44 |
my $schema = Koha::Database->new->schema; |
46 |
|
45 |
|
47 |
my @float_limits = $schema->resultset('LibraryFloatLimit')->search( |
46 |
my @float_limits = $schema->resultset('LibraryFloatLimit')->search( |
Lines 51-56
sub lowest_ratio_library {
Link Here
|
51 |
} |
50 |
} |
52 |
)->all; |
51 |
)->all; |
53 |
|
52 |
|
|
|
53 |
# check the items return policy |
54 |
my $hbr = Koha::CirculationRules->get_return_branch_policy($item); |
55 |
|
56 |
# if item only floats in the library group we must eliminate all other canditates |
57 |
if ( $hbr && $hbr eq 'returnbylibrarygroup' ) { |
58 |
my @allowed_branchcodes = (); |
59 |
|
60 |
my @current_groups = Koha::Libraries->find($branchcode)->library_groups->as_list; |
61 |
for my $group (@current_groups) { |
62 |
my $parent_id = $group->parent_id; |
63 |
|
64 |
if ($parent_id) { |
65 |
my @sibling_groups = $schema->resultset('LibraryGroup')->search( |
66 |
{ |
67 |
parent_id => $parent_id, |
68 |
branchcode => { '!=' => undef } |
69 |
} |
70 |
)->all; |
71 |
|
72 |
for my $sibling (@sibling_groups) { |
73 |
push @allowed_branchcodes, $sibling->get_column('branchcode'); |
74 |
} |
75 |
} |
76 |
} |
77 |
|
78 |
if (@allowed_branchcodes) { |
79 |
my %allowed_branches = map { $_ => 1 } @allowed_branchcodes; |
80 |
@float_limits = grep { $allowed_branches{ $_->get_column('branchcode') } } @float_limits; |
81 |
} |
82 |
} |
83 |
|
54 |
return unless @float_limits; |
84 |
return unless @float_limits; |
55 |
|
85 |
|
56 |
my @candidates; |
86 |
my @candidates; |
Lines 162-173
sub lowest_ratio_library {
Link Here
|
162 |
|
192 |
|
163 |
my $transfer_branch; |
193 |
my $transfer_branch; |
164 |
for my $candidate (@candidates) { |
194 |
for my $candidate (@candidates) { |
|
|
195 |
|
165 |
if ($UseBranchTransferLimits) { |
196 |
if ($UseBranchTransferLimits) { |
|
|
197 |
|
166 |
my $allowed = C4::Circulation::IsBranchTransferAllowed( |
198 |
my $allowed = C4::Circulation::IsBranchTransferAllowed( |
167 |
$candidate->{branchcode}, |
199 |
$candidate->{branchcode}, |
168 |
$branchcode, |
200 |
$branchcode, |
169 |
$item->$BranchTransferLimitsType |
201 |
$item->$BranchTransferLimitsType |
170 |
); |
202 |
); |
|
|
203 |
|
171 |
$transfer_branch = Koha::Libraries->find( $candidate->{branchcode} ) if $allowed; |
204 |
$transfer_branch = Koha::Libraries->find( $candidate->{branchcode} ) if $allowed; |
172 |
last; |
205 |
last; |
173 |
} else { |
206 |
} else { |
174 |
- |
|
|