Bug 17844: Replace C4::Koha::get_notforloan_label_of with Koha::AuthorisedValues
This patch is more a bugfix than a refactoring. Indeed the C4::Koha::get_notforloan_label_of behaviors were buggy: 1/ It does not display the opac description at the OPAC, but always the staff description 2/ It does not care of the framework of the biblio, but retrieve the first row of the marc_subfield_structure mapped with items.notforloan These 2 bugs can easily be fixed using the Koha::AuthorisedValues->search_by_koha_field Steps to recreate the issues: - Create 2 authorised value categories for not for loan (NFL1 and NFL2) with the same values. Define a different description for the OPAC. - Define link 952$7 to NFL1 for the default framework and to NFL2 for the BK framework - Create 2 bibliographic records (B1 using NFL1 and B2 using NFL2) with 2 items each (1 item should have a not for loan value) - Go to the "Place a hold" view for this record. - In the item list, you should see the not for loan value => The staff description of NFL1 will always be used, even for the OPAC Test plan: - Recreate the issues without this patchset - Apply this patchset - Recreate the steps to recreate the issues => The staff description of NFL2 should be displayed for the B2 item => The opac description of NFL2 should be displayed for the B2 item at the OPAC Signed-off-by: Josef Moravec <josef.moravec@gmail.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
parent
4cc79c77c9
commit
d420e6ae21
|
|
@ -32,6 +32,7 @@ use C4::Context;
|
|||
use C4::Members;
|
||||
use C4::Overdues;
|
||||
use C4::Debug;
|
||||
use Koha::AuthorisedValues;
|
||||
use Koha::DateUtils;
|
||||
use Koha::Libraries;
|
||||
use Koha::Patrons;
|
||||
|
|
@ -384,7 +385,6 @@ unless ($noreserves) {
|
|||
# and items for each biblionumber.
|
||||
#
|
||||
#
|
||||
my $notforloan_label_of = get_notforloan_label_of();
|
||||
|
||||
my $biblioLoop = [];
|
||||
my $numBibsAvailable = 0;
|
||||
|
|
@ -407,9 +407,10 @@ foreach my $biblioNum (@biblionumbers) {
|
|||
&get_out($query, $cookie, $template->output);
|
||||
}
|
||||
|
||||
my $frameworkcode = GetFrameworkCode( $biblioData->{biblionumber} );
|
||||
$biblioLoopIter{biblionumber} = $biblioData->{biblionumber};
|
||||
$biblioLoopIter{title} = $biblioData->{title};
|
||||
$biblioLoopIter{subtitle} = GetRecordValue('subtitle', $record, GetFrameworkCode($biblioData->{biblionumber}));
|
||||
$biblioLoopIter{subtitle} = GetRecordValue('subtitle', $record, $frameworkcode);
|
||||
$biblioLoopIter{author} = $biblioData->{author};
|
||||
$biblioLoopIter{rank} = $biblioData->{rank};
|
||||
$biblioLoopIter{reservecount} = $biblioData->{reservecount};
|
||||
|
|
@ -432,6 +433,9 @@ foreach my $biblioNum (@biblionumbers) {
|
|||
}
|
||||
}
|
||||
|
||||
my @notforloan_avs = Koha::AuthorisedValues->search_by_koha_field({ kohafield => 'items.notforloan', frameworkcode => $frameworkcode });
|
||||
my $notforloan_label_of = { map { $_->authorised_value => $_->opac_description } @notforloan_avs };
|
||||
|
||||
$biblioLoopIter{itemLoop} = [];
|
||||
my $numCopiesAvailable = 0;
|
||||
my $numCopiesOPACAvailable = 0;
|
||||
|
|
|
|||
|
|
@ -321,11 +321,13 @@ foreach my $biblionumber (@biblionumbers) {
|
|||
## Should be same as biblionumber
|
||||
my @biblioitemnumbers = keys %itemnumbers_of_biblioitem;
|
||||
|
||||
my $notforloan_label_of = get_notforloan_label_of();
|
||||
|
||||
## Hash of biblioitemnumber to 'biblioitem' table records
|
||||
my $biblioiteminfos_of = GetBiblioItemInfosOf(@biblioitemnumbers);
|
||||
|
||||
my $frameworkcode = GetFrameworkCode( $biblionumber );
|
||||
my @notforloan_avs = Koha::AuthorisedValues->search_by_koha_field({ kohafield => 'items.notforloan', frameworkcode => $frameworkcode });
|
||||
my $notforloan_label_of = { map { $_->authorised_value => $_->lib } @notforloan_avs };
|
||||
|
||||
my @bibitemloop;
|
||||
|
||||
my @available_itemtypes;
|
||||
|
|
|
|||
Loading…
Reference in New Issue