Bug 9525: (QA follow-up) Tidy

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Nick Clemens 2023-09-28 13:59:24 +00:00 committed by Tomas Cohen Arazi
parent c4080836de
commit 151298709a
No known key found for this signature in database
GPG Key ID: 0A272EA1B2F3C15F
5 changed files with 72 additions and 43 deletions

View File

@ -2126,22 +2126,27 @@ sub AddReturn {
}
# full item data, but no borrowernumber or checkout info (no issue)
# full item data, but no borrowernumber or checkout info (no issue)
my $hbr = Koha::CirculationRules->get_return_branch_policy($item);
# check if returnbranch and homebranch belong to the same float group
my $validate_float = Koha::Libraries->find( $item->homebranch )->validate_float_sibling({ branchcode => $branch });
# get the proper branch to which to return the item
# check if returnbranch and homebranch belong to the same float group
my $validate_float =
Koha::Libraries->find( $item->homebranch )->validate_float_sibling( { branchcode => $branch } );
# get the proper branch to which to return the item
my $returnbranch;
if($hbr eq 'noreturn'){
if ( $hbr eq 'noreturn' ) {
$returnbranch = $branch;
}elsif($hbr eq 'returnbylibrarygroup'){
# if library isn't in same the float group, transfer item to homebranch
$hbr = 'homebranch';
} elsif ( $hbr eq 'returnbylibrarygroup' ) {
# if library isn't in same the float group, transfer item to homebranch
$hbr = 'homebranch';
$returnbranch = $validate_float ? $branch : $item->$hbr;
}else{
} else {
$returnbranch = $item->$hbr;
}
# if $hbr was "noreturn" or any other non-item table value, then it should 'float' (i.e. stay at this branch)
# if $hbr was "noreturn" or any other non-item table value, then it should 'float' (i.e. stay at this branch)
my $transfer_trigger = $hbr eq 'homebranch' ? 'ReturnToHome' : $hbr eq 'holdingbranch' ? 'ReturnToHolding' : undef;
my $borrowernumber = $patron ? $patron->borrowernumber : undef; # we don't know if we had a borrower or not

View File

@ -376,6 +376,7 @@ sub opac_info {
});
}
=head3 get_float_libraries
Return all libraries belonging to the same float group
@ -383,23 +384,23 @@ Return all libraries belonging to the same float group
=cut
sub get_float_libraries {
my ( $self ) = @_;
my ($self) = @_;
my $library_groups = $self->library_groups;
my @float_libraries;
while ( my $library_group = $library_groups->next ) {
my $root = Koha::Library::Groups->get_root_ancestor({id => $library_group->id});
if($root->ft_local_float_group) {
my $root = Koha::Library::Groups->get_root_ancestor( { id => $library_group->id } );
if ( $root->ft_local_float_group ) {
push @float_libraries, $root->all_libraries;
}
}
my %seen;
@float_libraries =
grep { !$seen{ $_->id }++ } @float_libraries;
grep { !$seen{ $_->id }++ } @float_libraries;
return Koha::Libraries->search({ branchcode => { '-in' => [ keys %seen ] } });
return Koha::Libraries->search( { branchcode => { '-in' => [ keys %seen ] } } );
}
=head3 validate_float_sibling
@ -414,8 +415,7 @@ sub validate_float_sibling {
return 1 if $params->{branchcode} eq $self->id;
my $branchcode = $params->{branchcode};
return $self->get_float_libraries->search( { branchcode => $branchcode } )
->count > 0;
return $self->get_float_libraries->search( { branchcode => $branchcode } )->count > 0;
}
=head2 Internal methods

View File

@ -50,8 +50,8 @@ if ( $action eq 'add' ) {
my $ft_limit_item_editing = $cgi->param('ft_limit_item_editing') || 0;
my $ft_search_groups_opac = $cgi->param('ft_search_groups_opac') || 0;
my $ft_search_groups_staff = $cgi->param('ft_search_groups_staff') || 0;
my $ft_local_hold_group = $cgi->param('ft_local_hold_group') || 0;
my $ft_local_float_group = $cgi->param('ft_local_float_group') || 0;
my $ft_local_hold_group = $cgi->param('ft_local_hold_group') || 0;
my $ft_local_float_group = $cgi->param('ft_local_float_group') || 0;
if ( !$branchcode && Koha::Library::Groups->search( { title => $title } )->count() ) {
$template->param( error_duplicate_title => $title );
@ -89,22 +89,22 @@ elsif ( $action eq 'edit' ) {
my $ft_limit_item_editing = $cgi->param('ft_limit_item_editing') || 0;
my $ft_search_groups_opac = $cgi->param('ft_search_groups_opac') || 0;
my $ft_search_groups_staff = $cgi->param('ft_search_groups_staff') || 0;
my $ft_local_hold_group = $cgi->param('ft_local_hold_group') || 0;
my $ft_local_float_group = $cgi->param('ft_local_float_group') || 0;
my $ft_local_hold_group = $cgi->param('ft_local_hold_group') || 0;
my $ft_local_float_group = $cgi->param('ft_local_float_group') || 0;
if ($id) {
my $group = Koha::Library::Groups->find($id);
$group->set(
{
title => $title,
description => $description,
ft_hide_patron_info => $ft_hide_patron_info,
ft_limit_item_editing => $ft_limit_item_editing,
ft_search_groups_opac => $ft_search_groups_opac,
ft_search_groups_staff => $ft_search_groups_staff,
ft_local_hold_group => $ft_local_hold_group,
ft_local_float_group => $ft_local_float_group,
title => $title,
description => $description,
ft_hide_patron_info => $ft_hide_patron_info,
ft_limit_item_editing => $ft_limit_item_editing,
ft_search_groups_opac => $ft_search_groups_opac,
ft_search_groups_staff => $ft_search_groups_staff,
ft_local_hold_group => $ft_local_hold_group,
ft_local_float_group => $ft_local_float_group,
}
)->store();

View File

@ -298,10 +298,18 @@ if ($barcode) {
# make sure return branch respects home branch circulation rules, default to homebranch
my $hbr = Koha::CirculationRules->get_return_branch_policy($item);
my $validate_float = Koha::Libraries->find( $item->homebranch )->validate_float_sibling({ branchcode => $userenv_branch });
my $validate_float =
Koha::Libraries->find( $item->homebranch )->validate_float_sibling( { branchcode => $userenv_branch } );
# get the proper branch to which to return the item
# if library isn't in same the float group, transfer item to homelibrary
$returnbranch = $hbr eq 'noreturn' ? $userenv_branch : $hbr eq 'returnbylibrarygroup' ? $validate_float ? $userenv_branch : $item->homebranch : $item->$hbr;
$returnbranch =
$hbr eq 'noreturn'
? $userenv_branch
: $hbr eq 'returnbylibrarygroup' ? $validate_float
? $userenv_branch
: $item->homebranch
: $item->$hbr;
my $materials = $item->materials;
my $descriptions = Koha::AuthorisedValues->get_description_by_koha_field({frameworkcode => '', kohafield =>'items.materials', authorised_value => $materials });
$materials = $descriptions->{lib} // $materials;

View File

@ -337,28 +337,44 @@ subtest 'get_float_libraries and validate_float_sibling' => sub {
$schema->storage->txn_begin;
my $library1 = $builder->build_object({ class => 'Koha::Libraries' });
my $library2 = $builder->build_object({ class => 'Koha::Libraries' });
my $library3 = $builder->build_object({ class => 'Koha::Libraries' });
my $library4 = $builder->build_object({ class => 'Koha::Libraries' });
my $library1 = $builder->build_object( { class => 'Koha::Libraries' } );
my $library2 = $builder->build_object( { class => 'Koha::Libraries' } );
my $library3 = $builder->build_object( { class => 'Koha::Libraries' } );
my $library4 = $builder->build_object( { class => 'Koha::Libraries' } );
my $root1 = $builder->build_object( { class => 'Koha::Library::Groups', value => { ft_local_float_group => 1 } } );
my $root2 = $builder->build_object( { class => 'Koha::Library::Groups', value => { ft_local_float_group => 1 } } );
# Float group 1
$builder->build_object( { class => 'Koha::Library::Groups', value => { parent_id => $root1->id, branchcode => $library1->branchcode } } );
$builder->build_object( { class => 'Koha::Library::Groups', value => { parent_id => $root1->id, branchcode => $library2->branchcode } } );
$builder->build_object(
{ class => 'Koha::Library::Groups', value => { parent_id => $root1->id, branchcode => $library1->branchcode } }
);
$builder->build_object(
{ class => 'Koha::Library::Groups', value => { parent_id => $root1->id, branchcode => $library2->branchcode } }
);
# Float group 2
$builder->build_object( { class => 'Koha::Library::Groups', value => { parent_id => $root2->id, branchcode => $library3->branchcode } } );
$builder->build_object( { class => 'Koha::Library::Groups', value => { parent_id => $root2->id, branchcode => $library4->branchcode } } );
$builder->build_object(
{ class => 'Koha::Library::Groups', value => { parent_id => $root2->id, branchcode => $library3->branchcode } }
);
$builder->build_object(
{ class => 'Koha::Library::Groups', value => { parent_id => $root2->id, branchcode => $library4->branchcode } }
);
my @libraries1 = $library1->get_float_libraries()->as_list;
is(scalar @libraries1, '2', '1st float group contains 2 libraries');
is( scalar @libraries1, '2', '1st float group contains 2 libraries' );
my @libraries2 = $library3->get_float_libraries()->as_list;
is(scalar @libraries2, '2', '2nd float group also contains 2 libraries');
is( scalar @libraries2, '2', '2nd float group also contains 2 libraries' );
ok($library1->validate_float_sibling({ branchcode => $library2->branchcode }), "Library1 and library2 belong in to the same float group.");
ok($library3->validate_float_sibling({ branchcode => $library4->branchcode }), "Library3 and library5 belong in to the same float group.");
ok(
$library1->validate_float_sibling( { branchcode => $library2->branchcode } ),
"Library1 and library2 belong in to the same float group."
);
ok(
$library3->validate_float_sibling( { branchcode => $library4->branchcode } ),
"Library3 and library5 belong in to the same float group."
);
$schema->storage->txn_rollback;
};