Bugzilla – Attachment 116797 Details for
Bug 20447
Add support for MARC holdings records
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 20447: MARC Holdings support
Bug-20447-MARC-Holdings-support.patch (text/plain), 554.70 KB, created by
Joonas Kylmälä
on 2021-02-12 10:27:32 UTC
(
hide
)
Description:
Bug 20447: MARC Holdings support
Filename:
MIME Type:
Creator:
Joonas Kylmälä
Created:
2021-02-12 10:27:32 UTC
Size:
554.70 KB
patch
obsolete
>From d8040d008ab25cf25c64869754d1c0b47ab18af0 Mon Sep 17 00:00:00 2001 >From: Ere Maijala <ere.maijala@helsinki.fi> >Date: Wed, 20 Feb 2019 16:25:29 +0200 >Subject: [PATCH] Bug 20447: MARC Holdings support >MIME-Version: 1.0 >Content-Type: text/plain; charset=UTF-8 >Content-Transfer-Encoding: 8bit > >Enable by setting "SummaryHoldings" option to "Use". > >Sponsored-by: The National Library of Finland >Rebased-by: Joonas Kylmälä <joonas.kylmala@helsinki.fi> >--- > C4/Biblio.pm | 60 +- > C4/ImportBatch.pm | 28 +- > C4/Items.pm | 3 +- > C4/Search.pm | 10 + > C4/XSLT.pm | 51 +- > Koha/Acquisition/Order.pm | 4 + > Koha/Biblio.pm | 39 +- > Koha/Holding.pm | 414 + > Koha/Holdings.pm | 145 + > Koha/Holdings/Metadata.pm | 99 + > Koha/Holdings/Metadatas.pm | 58 + > Koha/Item.pm | 48 + > Koha/OAI/Server/ListBase.pm | 10 +- > Koha/OAI/Server/Repository.pm | 1 + > Koha/Template/Plugin/Holdings.pm | 116 + > acqui/basket.pl | 7 +- > admin/marc_subfields_structure.pl | 5 + > catalogue/detail.pl | 16 +- > catalogue/showmarc.pl | 8 +- > cataloguing/addholding.pl | 699 ++ > cataloguing/additem.pl | 11 + > cataloguing/merge.pl | 4 +- > .../value_builder/marc21_field_008_holdings.pl | 113 + > .../value_builder/marc21_leader_holdings.pl | 80 + > .../bug_20447-add_holdings_tables.perl | 674 ++ > .../marc21/mandatory/marc21_framework_DEFAULT.yml | 10042 ++++++++++++++++++- > installer/data/mysql/kohastructure.sql | 56 +- > installer/data/mysql/mandatory/auth_val_cat.sql | 1 + > installer/data/mysql/mandatory/sysprefs.sql | 1 + > installer/data/mysql/updatedev.pl | 229 + > koha-tmpl/intranet-tmpl/prog/css/addholding.css | 346 + > .../intranet-tmpl/prog/en/includes/cat-toolbar.inc | 4 + > .../intranet-tmpl/prog/en/modules/acqui/basket.tt | 4 + > .../prog/en/modules/admin/biblio_framework.tt | 3 +- > .../en/modules/admin/preferences/cataloguing.pref | 7 + > .../prog/en/modules/catalogue/detail.tt | 78 +- > .../prog/en/modules/catalogue/moredetail.tt | 2 + > .../prog/en/modules/catalogue/results.tt | 14 + > .../prog/en/modules/cataloguing/addholding.tt | 712 ++ > .../value_builder/marc21_field_008_holdings.tt | 194 + > .../value_builder/marc21_leader_holdings.tt | 105 + > .../intranet-tmpl/prog/en/modules/tools/viewlog.tt | 2 + > .../opac-tmpl/bootstrap/en/modules/opac-detail.tt | 28 + > .../opac-tmpl/bootstrap/en/modules/opac-results.tt | 10 + > .../bootstrap/en/xslt/MARC21slim2OPACResults.xsl | 19 +- > opac/opac-detail.pl | 6 + > t/db_dependent/FrameworkPlugin.t | 3 +- > t/db_dependent/Koha/Holding.t | 156 + > t/db_dependent/Koha/Holdings.t | 113 + > t/db_dependent/Koha/Item.t | 25 +- > t/db_dependent/Koha/SearchEngine/Indexer.t | 19 +- > t/lib/TestBuilder.pm | 26 +- > tools/stage-marc-import.pl | 2 +- > 53 files changed, 14832 insertions(+), 78 deletions(-) > create mode 100644 Koha/Holding.pm > create mode 100644 Koha/Holdings.pm > create mode 100644 Koha/Holdings/Metadata.pm > create mode 100644 Koha/Holdings/Metadatas.pm > create mode 100644 Koha/Template/Plugin/Holdings.pm > create mode 100755 cataloguing/addholding.pl > create mode 100755 cataloguing/value_builder/marc21_field_008_holdings.pl > create mode 100755 cataloguing/value_builder/marc21_leader_holdings.pl > create mode 100644 installer/data/mysql/atomicupdate/bug_20447-add_holdings_tables.perl > create mode 100755 installer/data/mysql/updatedev.pl > create mode 100644 koha-tmpl/intranet-tmpl/prog/css/addholding.css > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addholding.tt > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_field_008_holdings.tt > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_leader_holdings.tt > create mode 100755 t/db_dependent/Koha/Holding.t > create mode 100755 t/db_dependent/Koha/Holdings.t > >diff --git a/C4/Biblio.pm b/C4/Biblio.pm >index e84110cccc..5ddca27ba9 100644 >--- a/C4/Biblio.pm >+++ b/C4/Biblio.pm >@@ -99,6 +99,7 @@ use Koha::Caches; > use Koha::Authority::Types; > use Koha::Acquisition::Currencies; > use Koha::Biblio::Metadatas; >+use Koha::Holdings; > use Koha::Holds; > use Koha::ItemTypes; > use Koha::Plugins; >@@ -448,6 +449,25 @@ sub DelBiblio { > $error .= "This Biblio has items attached, please delete them first before deleting this biblio "; > } > >+ # Check for attached holdings records >+ my $holdings = $biblio->holdings; >+ if ($holdings->count > 0) { >+ if (C4::Context->preference('SummaryHoldings')) { >+ # Fix this to use a status the template can understand >+ $error .= "This Biblio has holdings records attached, please delete them first before deleting this biblio "; >+ } >+ else { >+ # Summary holdings disabled, so just delete any existing holdings records. Use >+ # holdings record's delete method to mark the records deleted. Note that as long >+ # as biblios are deleted from the biblio table, the foreign key will cause the >+ # holdings records to be deleted as well, but this will allow things to work >+ # better in the future when biblios are no longer moved to another table. >+ while (my $holding = $holdings->next) { >+ $holding->delete; >+ } >+ } >+ } >+ > return $error if $error; > > # We delete any existing holds >@@ -1460,6 +1480,23 @@ sub GetAuthorisedValueDesc { > return $itemtype ? $itemtype->translated_description : q||; > } > >+ #---- holdings >+ if ( $tagslib->{$tag}->{$subfield}->{'authorised_value'} eq "holdings" ) { >+ my $holding = Koha::Holdings->find( $value ); >+ if ( $holding ) { >+ my @parts; >+ >+ push @parts, $value; >+ push @parts, $holding->holdingbranch() if $holding->holdingbranch(); >+ push @parts, $holding->location() if $holding->location(); >+ push @parts, $holding->ccode() if $holding->ccode(); >+ push @parts, $holding->callnumber() if $holding->callnumber(); >+ >+ return join(' ', @parts); >+ } >+ return q||; >+ } >+ > #---- "true" authorized value > $category = $tagslib->{$tag}->{$subfield}->{'authorised_value'}; > } >@@ -2611,14 +2648,15 @@ sub ModZebra { > =head2 EmbedItemsInMarcBiblio > > EmbedItemsInMarcBiblio({ >- marc_record => $marc, >- biblionumber => $biblionumber, >- item_numbers => $itemnumbers, >- opac => $opac }); >+ marc_record => $marc, >+ biblionumber => $biblionumber, >+ item_numbers => $itemnumbers, >+ opac => $opac, >+ skip_holdings => 1 }); > > Given a MARC::Record object containing a bib record, > modify it to include the items attached to it as 9XX >-per the bib's MARC framework. >+per the bib's MARC framework and any holdings location information. > if $itemnumbers is defined, only specified itemnumbers are embedded. > > If $opac is true, then opac-relevant suppressions are included. >@@ -2626,11 +2664,15 @@ If $opac is true, then opac-relevant suppressions are included. > If opac filtering will be done, borcat should be passed to properly > override if necessary. > >+If $skip_holdings is set, it overrides the default of embedding basic >+location information from holdings records if summary holdings are >+enabled. >+ > =cut > > sub EmbedItemsInMarcBiblio { > my ($params) = @_; >- my ($marc, $biblionumber, $itemnumbers, $opac, $borcat); >+ my ($marc, $biblionumber, $itemnumbers, $opac, $borcat, $skip_holdings); > $marc = $params->{marc_record}; > if ( !$marc ) { > carp 'EmbedItemsInMarcBiblio: No MARC record passed'; >@@ -2640,9 +2682,15 @@ sub EmbedItemsInMarcBiblio { > $itemnumbers = $params->{item_numbers}; > $opac = $params->{opac}; > $borcat = $params->{borcat} // q{}; >+ $skip_holdings = $params->{skip_holdings} // 0; > > $itemnumbers = [] unless defined $itemnumbers; > >+ if ( !$skip_holdings && C4::Context->preference('SummaryHoldings') && !@$itemnumbers ) { >+ my $holdings_fields = Koha::Holdings->get_embeddable_marc_fields({ biblionumber => $biblionumber }); >+ $marc->append_fields(@$holdings_fields) if ( @$holdings_fields ); >+ } >+ > my $frameworkcode = GetFrameworkCode($biblionumber); > _strip_item_fields($marc, $frameworkcode); > >diff --git a/C4/ImportBatch.pm b/C4/ImportBatch.pm >index 7064f94728..c8be7fe1e4 100644 >--- a/C4/ImportBatch.pm >+++ b/C4/ImportBatch.pm >@@ -1510,13 +1510,24 @@ sub RecordsFromISO2709File { > > open my $fh, '<', $input_file or die "$0: cannot open input file $input_file: $!\n"; > my @marc_records; >+ my $count = 0; > $/ = "\035"; > while (<$fh>) { > s/^\s+//; > s/\s+$//; > next unless $_; # skip if record has only whitespace, as might occur > # if file includes newlines between each MARC record >+ ++$count; > my ($marc_record, $charset_guessed, $char_errors) = MarcToUTF8Record($_, $marc_type, $encoding); >+ # Ignore holdings records >+ if ($record_type eq 'biblio' && $marc_type eq 'MARC21') { >+ my $leader = $marc_record->leader(); >+ if ($leader =~ /^.{6}[uvxy]/) { >+ push @errors, "Ignoring record $count (holdings record)"; >+ next; >+ } >+ } >+ > push @marc_records, $marc_record; > if ($charset_guessed ne $encoding) { > push @errors, >@@ -1541,15 +1552,28 @@ Returns two array refs. > =cut > > sub RecordsFromMARCXMLFile { >- my ( $filename, $encoding ) = @_; >+ my ( $filename, $record_type, $encoding ) = @_; >+ >+ my $marcflavour = C4::Context->preference('marcflavour'); > my $batch = MARC::File::XML->in( $filename ); > my ( @marcRecords, @errors, $record ); >+ my $count = 0; > do { >+ ++$count; > eval { $record = $batch->next( $encoding ); }; > if ($@) { > push @errors, $@; > } >- push @marcRecords, $record if $record; >+ # Ignore holdings records >+ my $valid = 1; >+ if ($record && $record_type eq 'biblio' && $marcflavour eq 'MARC21') { >+ my $leader = $record->leader(); >+ if ($leader =~ /^.{6}[uvxy]/) { >+ push @errors, "Ignoring record $count (holdings record)"; >+ $valid = 0; >+ } >+ } >+ push @marcRecords, $record if $record && $valid; > } while( $record ); > return (\@errors, \@marcRecords); > } >diff --git a/C4/Items.pm b/C4/Items.pm >index 75bef62ea1..8df899ee66 100644 >--- a/C4/Items.pm >+++ b/C4/Items.pm >@@ -67,6 +67,7 @@ use Koha::Database; > > use Koha::Biblios; > use Koha::Biblioitems; >+use Koha::Holdings; > use Koha::Items; > use Koha::ItemTypes; > use Koha::SearchEngine; >@@ -838,7 +839,7 @@ Item's itemcallnumber > Item's call number normalized for sorting > > =back >- >+ > =cut > > sub GetItemsLocationInfo { >diff --git a/C4/Search.pm b/C4/Search.pm >index 0b50169ae0..3b7db37886 100644 >--- a/C4/Search.pm >+++ b/C4/Search.pm >@@ -29,6 +29,7 @@ use C4::Reserves; # GetReserveStatus > use C4::Debug; > use C4::Charset; > use Koha::AuthorisedValues; >+use Koha::Holdings; > use Koha::ItemTypes; > use Koha::Libraries; > use Koha::Patrons; >@@ -1823,6 +1824,7 @@ sub searchResults { > my $maxitems_pref = C4::Context->preference('maxItemsinSearchResults'); > my $maxitems = $maxitems_pref ? $maxitems_pref - 1 : 1; > my @hiddenitems; # hidden itemnumbers based on OpacHiddenItems syspref >+ my $summary_holdings; > > # loop through every item > foreach my $field (@fields) { >@@ -2010,6 +2012,13 @@ sub searchResults { > push @available_items_loop, $available_items->{$key} > } > >+ # Fetch summary holdings >+ if (C4::Context->preference('SummaryHoldings')) { >+ # Fetch Koha::Holdings directly to avoid having to fetch the Koha::Biblio object just for this. >+ # TODO: Make this use Koha::Biblio->holdings if the Biblio object gets used here also for other purposes >+ $summary_holdings = Koha::Holdings->search({ biblionumber => $oldbiblio->{biblionumber}, deleted_on => undef }); >+ } >+ > # XSLT processing of some stuff > # we fetched the sysprefs already before the loop through all retrieved record! > if (!$scan && $xslfile) { >@@ -2046,6 +2055,7 @@ sub searchResults { > $oldbiblio->{onholdcount} = $item_onhold_count; > $oldbiblio->{orderedcount} = $ordered_count; > $oldbiblio->{notforloancount} = $notforloan_count; >+ $oldbiblio->{summary_holdings} = $summary_holdings; > > if (C4::Context->preference("AlternateHoldingsField") && $items_count == 0) { > my $fieldspec = C4::Context->preference("AlternateHoldingsField"); >diff --git a/C4/XSLT.pm b/C4/XSLT.pm >index 0484c2b733..a2979bcff2 100644 >--- a/C4/XSLT.pm >+++ b/C4/XSLT.pm >@@ -160,6 +160,12 @@ sub _get_best_default_xslt_filename { > return $xslfilename; > } > >+=head2 get_xslt_sysprefs >+ >+Returns XML for system preferences. >+ >+=cut >+ > sub get_xslt_sysprefs { > my $sysxml = "<sysprefs>\n"; > foreach my $syspref ( qw/ hidelostitems OPACURLOpenInNewWindow >@@ -243,10 +249,14 @@ sub XSLTParse4Display { > # grab the XML, run it through our stylesheet, push it out to the browser > my $record = transformMARCXML4XSLT($biblionumber, $orig_record); > my $itemsxml; >+ my $holdingsxml; > if ( $xslsyspref eq "OPACXSLTDetailsDisplay" || $xslsyspref eq "XSLTDetailsDisplay" || $xslsyspref eq "XSLTResultsDisplay" ) { >- $itemsxml = ""; #We don't use XSLT for items display on these pages >+ # We don't use XSLT for items or holdings display on these pages >+ $itemsxml = ""; >+ $holdingsxml = ""; > } else { > $itemsxml = buildKohaItemsNamespace($biblionumber, $hidden_items); >+ $holdingsxml = buildKohaHoldingsNamespace($biblionumber); > } > my $xmlrecord = $record->as_xml(C4::Context->preference('marcflavour')); > >@@ -272,7 +282,7 @@ sub XSLTParse4Display { > } > $varxml .= "</variables>\n"; > >- $xmlrecord =~ s/\<\/record\>/$itemsxml$sysxml$varxml\<\/record\>/; >+ $xmlrecord =~ s/\<\/record\>/$itemsxml$holdingsxml$sysxml$varxml\<\/record\>/; > if ($fixamps) { # We need to correct the ampersand entities that Zebra outputs > $xmlrecord =~ s/\&amp;/\&/g; > $xmlrecord =~ s/\&\;lt\;/\<\;/g; >@@ -377,6 +387,43 @@ sub buildKohaItemsNamespace { > return $xml; > } > >+=head2 buildKohaHoldingsNamespace >+ >+Returns XML for holdings records. >+Is only used in this module currently. >+ >+=cut >+ >+sub buildKohaHoldingsNamespace { >+ my ($biblionumber) = @_; >+ >+ my $holdings = Koha::Holdings->search({ biblionumber => $biblionumber, deleted_on => undef })->as_list; >+ >+ my $shelflocations = >+ { map { $_->{authorised_value} => $_->{opac_description} } Koha::AuthorisedValues->get_descriptions_by_koha_field( { frameworkcode => 'HLD', kohafield => 'holdings.location' } ) }; >+ >+ my %branches = map { $_->branchcode => $_->branchname } Koha::Libraries->search({}, { order_by => 'branchname' }); >+ >+ my $location = ""; >+ my $ccode = ""; >+ my $xml = ''; >+ foreach my $holding ( @{$holdings} ) { >+ my $holdingbranch = $holding->{holdingbranch} ? xml_escape($branches{$holding->{holdingbranch}}) : ''; >+ my $location = $holding->{location} ? xml_escape($shelflocations->{$holding->{location}} || $holding->{location}) : ''; >+ my $callnumber = xml_escape($holding->{callnumber}); >+ my $suppress = $holding->{suppress} || '0'; >+ $xml .= >+ "<holding>" >+ . "<holdingbranch>$holdingbranch</holdingbranch>" >+ . "<location>$location</location>" >+ . "<callnumber>$callnumber</callnumber>" >+ . "<suppress>$suppress</suppress>" >+ . "</holding>"; >+ } >+ $xml = "<holdings xmlns=\"http://www.koha-community.org/holdings\">$xml</holdings>"; >+ return $xml; >+} >+ > =head2 engine > > Returns reference to XSLT handler object. >diff --git a/Koha/Acquisition/Order.pm b/Koha/Acquisition/Order.pm >index 07dea68939..fa62c728a4 100644 >--- a/Koha/Acquisition/Order.pm >+++ b/Koha/Acquisition/Order.pm >@@ -147,6 +147,7 @@ sub cancel { > )->count == 0 > and $biblio->subscriptions->count == 0 > and $biblio->items->count == 0 >+ and (!C4::Context->preference('SummaryHoldings') or $biblio->holdings->count == 0) > ) > { > >@@ -170,6 +171,9 @@ sub cancel { > elsif ( $biblio->subscriptions->count > 0 ) { > $message = 'error_delbiblio_subscriptions'; > } >+ elsif ( C4::Context->preference('SummaryHoldings') && $biblio->holdings->count > 0 ) { >+ $message = 'error_delbiblio_holdings'; >+ } > else { # $biblio->items->count > 0 > $message = 'error_delbiblio_items'; > } >diff --git a/Koha/Biblio.pm b/Koha/Biblio.pm >index ecacb17cb6..35ef0d0c4e 100644 >--- a/Koha/Biblio.pm >+++ b/Koha/Biblio.pm >@@ -38,6 +38,7 @@ use Koha::ArticleRequests; > use Koha::Biblio::Metadatas; > use Koha::Biblioitems; > use Koha::CirculationRules; >+use Koha::Holdings; > use Koha::Item::Transfer::Limits; > use Koha::Items; > use Koha::Libraries; >@@ -510,6 +511,22 @@ sub subscriptions { > return $self->{_subscriptions}; > } > >+=head3 holdings >+ >+my $holdings = $self->holdings >+ >+Returns the related (non-deleted) Koha::Holdings objects. >+ >+=cut >+ >+sub holdings { >+ my ($self) = @_; >+ >+ $self->{_holdings} ||= Koha::Holdings->search({ biblionumber => $self->biblionumber(), deleted_on => undef }); >+ >+ return $self->{_holdings}; >+} >+ > =head3 has_items_waiting_or_intransit > > my $itemsWaitingOrInTransit = $biblio->has_items_waiting_or_intransit >@@ -836,26 +853,40 @@ sub to_api_mapping { > }; > } > >-=head3 adopt_items_from_biblio >+=head3 adopt_holdings_from_biblio > >-$biblio->adopt_items_from_biblio($from_biblio); >+$biblio->adopt_holdings_from_biblio($from_biblio); > >-Move items from the given biblio to this one. >+Move holdings and item records from the given biblio to this one. > > =cut > >-sub adopt_items_from_biblio { >+sub adopt_holdings_from_biblio { > my ( $self, $from_biblio ) = @_; > >+ my $schema = Koha::Database->new()->schema(); >+ >+ $schema->storage->txn_begin; >+ >+ # Move holdings records. This will also move any items attached to the holdings. >+ my $holdings = $from_biblio->holdings; >+ while (my $holding = $holdings->next()) { >+ $holding->move_to_biblio($self, { skip_record_index => 1 }); >+ } >+ # Move any items not already moved. > my $items = $from_biblio->items; > if ($items) { > while (my $item = $items->next()) { > $item->move_to_biblio($self, { skip_record_index => 1 }); > } >+ } >+ if ($items || $holdings) { > my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX }); > $indexer->index_records( $self->biblionumber, "specialUpdate", "biblioserver" ); > $indexer->index_records( $from_biblio->biblionumber, "specialUpdate", "biblioserver" ); > } >+ >+ $schema->storage->txn_commit; > } > > >diff --git a/Koha/Holding.pm b/Koha/Holding.pm >new file mode 100644 >index 0000000000..fc062465a8 >--- /dev/null >+++ b/Koha/Holding.pm >@@ -0,0 +1,414 @@ >+package Koha::Holding; >+ >+# Copyright ByWater Solutions 2014 >+# Copyright 2017-2020 University of Helsinki (The National Library Of Finland) >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Carp; >+ >+use C4::Charset; # SetUTF8Flag >+use C4::Log; # logaction >+ >+use Koha::Database; >+use Koha::DateUtils qw(dt_from_string); >+use Koha::Holdings::Metadatas; >+use Koha::Items; >+ >+use base qw(Koha::Object); >+ >+=head1 NAME >+ >+Koha::Holding - Koha Holding Object class >+ >+=head1 API >+ >+=head2 Class Methods >+ >+=cut >+ >+=head3 holding_branch >+ >+my $branch = $hold->holding_branch(); >+ >+Returns the holding branch for this record. >+ >+=cut >+ >+sub holding_branch { >+ my ($self) = @_; >+ >+ my $branch = $self->_result->holdingbranch(); >+ return unless $branch; >+ return Koha::Library->_new_from_dbic($branch); >+} >+ >+=head3 metadata >+ >+my $metadata = $holding->metadata(); >+ >+Returns a Koha::Holding::Metadata object >+ >+=cut >+ >+sub metadata { >+ my ($self) = @_; >+ >+ my $metadata = $self->_result()->metadata(); >+ return unless $metadata; >+ return Koha::Holdings::Metadata->_new_from_dbic($metadata); >+} >+ >+=head3 set_marc >+ >+$holding->set_marc({ record => $record }); >+ >+Updates the MARC format metadata from a Marc::Record. >+Does not store the results in the database. >+ >+If passed an undefined record will log the error. >+ >+Returns $self >+ >+=cut >+ >+sub set_marc { >+ my ($self, $params) = @_; >+ >+ if (!defined $params->{record}) { >+ carp('set_marc called with undefined record'); >+ return $self; >+ } >+ >+ # Clone record as it gets modified >+ my $record = $params->{record}->clone(); >+ SetUTF8Flag($record); >+ my $encoding = C4::Context->preference('marcflavour'); >+ if ($encoding eq 'MARC21' || $encoding eq 'UNIMARC') { >+ # YY MM DD HH MM SS (update year and month) >+ my @a = (localtime) [5,4,3,2,1,0]; $a[0] += 1900; $a[1]++; >+ my $f005 = $record->field('005'); >+ $f005->update(sprintf('%4d%02d%02d%02d%02d%04.1f', @a)) if $f005; >+ } >+ >+ $self->{_marcxml} = $record->as_xml_record($encoding); >+ my $fields = $self->marc_to_koha_fields({ record => $record }); >+ delete $fields->{holding_id}; >+ # Filter the columns since we have e.g. public_note that's not stored in the database >+ my $columns = [$self->_result()->result_source()->columns()]; >+ my $db_fields = {}; >+ foreach my $key (keys %{$fields}) { >+ if (grep {/^$key$/} @{$columns}) { >+ $db_fields->{$key} = $fields->{$key}; >+ } >+ } >+ $self->set($db_fields); >+ >+ return $self; >+} >+ >+=head3 items >+ >+my $items = $holding->items(); >+ >+Returns the related Koha::Items object for this record. >+ >+=cut >+ >+sub items { >+ my ($self) = @_; >+ >+ my $items_rs = $self->_result->items; >+ return Koha::Items->_new_from_dbic($items_rs); >+} >+ >+=head3 store >+ >+ $holding->store([$params]); >+ >+Saves the holdings record. >+ >+$params can take an optional 'skip_record_index' parameter. >+If set, the reindexing process will not happen (index_records is not called). >+This is useful for batch processes where the biblio record is reindexed at the end. >+ >+Returns: >+ $self if the store was a success >+ undef if the store failed >+ >+=cut >+ >+sub store { >+ my ($self, $params) = @_; >+ >+ $params //= {}; >+ >+ my $action = $self->holding_id() ? 'UPDATE' : 'ADD'; >+ >+ $self->datecreated(dt_from_string('', 'sql')) unless $self->datecreated(); >+ >+ my $schema = Koha::Database->new()->schema(); >+ # Use a transaction only if AutoCommit is enabled - otherwise handled outside of this sub >+ my $guard = C4::Context->dbh->{AutoCommit} ? $schema->txn_scope_guard() : undef; >+ >+ my $result = $self->SUPER::store(); >+ >+ return unless $result; >+ >+ # Create or update the metadata record >+ my $marcflavour = C4::Context->preference('marcflavour'); >+ my $marc_record = $self->{_marcxml} >+ ? MARC::Record::new_from_xml($self->{_marcxml}, 'utf-8', $marcflavour) >+ : $self->metadata()->record(); >+ >+ $self->_update_marc_ids($marc_record); >+ >+ my $metadata = { >+ holding_id => $self->holding_id(), >+ format => 'marcxml', >+ schema => $marcflavour, >+ }; >+ my $metadata_record = Koha::Holdings::Metadatas->find_or_create($metadata); >+ $metadata_record->metadata($marc_record->as_xml_record($marcflavour)); >+ >+ # request that bib be reindexed so that any holdings-derived fields are updated >+ unless ( $params->{skip_record_index} ){ >+ my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX }); >+ $indexer->index_records( $self->biblionumber, "specialUpdate", "biblioserver" ); >+ } >+ >+ if ($result) { >+ $guard->commit() if defined $guard; >+ >+ # request that bib be reindexed so that any holdings-derived fields are updated >+ unless ( $params->{skip_record_index} ) { >+ my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX }); >+ $indexer->index_records( $self->biblionumber, "specialUpdate", "biblioserver" ); >+ } >+ >+ logaction('CATALOGUING', $action, $self->holding_id(), 'holding') if C4::Context->preference('CataloguingLog'); >+ } >+ >+ return $result; >+} >+ >+=head3 delete >+ >+ $holding->delete(); >+ >+Marks the holdings record deleted. >+ >+Returns: >+ 1 if the deletion was a success >+ 0 if the deletion failed >+ -1 if the object was never in storage >+ >+=cut >+ >+sub delete { >+ my ($self) = @_; >+ >+ return -1 unless $self->_result()->in_storage(); >+ >+ if ($self->items()->count()) { >+ return 0; >+ } >+ >+ my $schema = Koha::Database->new()->schema(); >+ # Use a transaction only if AutoCommit is enabled - otherwise handled outside of this sub >+ my $guard = C4::Context->dbh->{AutoCommit} ? $schema->txn_scope_guard() : undef; >+ >+ my $now = dt_from_string('', 'sql'); >+ $self->deleted_on($now)->store(); >+ Koha::Holdings::Metadatas->find({ holding_id => $self->holding_id() })->update({ deleted_on => $now }); >+ >+ $guard->commit() if defined $guard; >+ >+ logaction('CATALOGUING', 'DELETE', $self->holding_id(), 'holding') if C4::Context->preference('CataloguingLog'); >+ >+ return 1; >+} >+ >+=head3 move_to_biblio >+ >+ $holding->move_to_biblio($to_biblio[, $params]); >+ >+Move the holdings record and any of its related records to another biblio. >+ >+The final optional parameter, C<$params>, is expected to contain the >+'skip_record_index' key, which is relayed down to Koha::Holding->store. >+There it prevents calling index_records, which takes most of the >+time in batch adds/deletes. The caller must take care of calling >+index_records separately. >+ >+$params: >+ skip_record_index => 1|0 >+ >+=cut >+ >+sub move_to_biblio { >+ my ( $self, $to_biblio, $params ) = @_; >+ >+ $params //= {}; >+ >+ my $biblionumber = $to_biblio->biblionumber; >+ >+ # Own biblionumber >+ $self->set({ >+ biblionumber => $biblionumber, >+ })->store({ skip_record_index => 1 }); >+ >+ # Items >+ my $items => $self->items; >+ if ($items) { >+ while (my $item = $items->next()) { >+ $item->move_to_biblio($to_biblio, { skip_record_index => 1 }); >+ } >+ } >+ >+ # Request that bib be reindexed unless skip_record_index is set >+ my $indexer = Koha::SearchEngine::Indexer->new({ index => $Koha::SearchEngine::BIBLIOS_INDEX }); >+ $indexer->index_records( $self->biblionumber, "specialUpdate", "biblioserver" ) >+ unless $params->{skip_record_index}; >+} >+ >+=head3 type >+ >+=cut >+ >+sub _type { >+ return 'Holding'; >+} >+ >+=head2 marc_to_koha_fields >+ >+ $result = Koha::Holding->marc_to_koha_fields({ record => $record }) >+ >+Extract data from a MARC::Record holdings record into a hashref representing >+Koha holdings fields. >+ >+If passed an undefined record will log the error and return an empty >+hash_ref. >+ >+=cut >+ >+sub marc_to_koha_fields { >+ my ($class, $params) = @_; >+ >+ my $result = {}; >+ if (!defined $params->{record}) { >+ carp('marc_to_koha_fields called with undefined record'); >+ return $result; >+ } >+ my $record = $params->{record}; >+ >+ # The next call uses the HLD framework since it is AUTHORITATIVE >+ # for all Koha to MARC mappings for holdings. >+ my $mss = C4::Biblio::GetMarcSubfieldStructure('HLD', { unsafe => 1 }); # Do not change framework >+ foreach my $kohafield (keys %{ $mss }) { >+ my ($table, $column) = split /[.]/, $kohafield, 2; >+ next unless $table eq 'holdings' && $mss->{$kohafield}; >+ >+ my @values; >+ foreach my $field (@{$mss->{$kohafield}}) { >+ my $tag = $field->{tagfield}; >+ my $sub = $field->{tagsubfield}; >+ foreach my $fld ($record->field($tag)) { >+ if( $sub eq '@' || $fld->is_control_field ) { >+ push @values, $fld->data if $fld->data; >+ } else { >+ push @values, grep { $_ } $fld->subfield($sub); >+ } >+ } >+ } >+ $result->{$column} = join(' | ', @values) if (@values); >+ } >+ return $result; >+} >+ >+=head3 get_marc_field_mapping >+ >+ ($field, $subfield) = Koha::Holding->get_marc_field_mapping({ field => $kohafield }); >+ @fields = Koha::Holding->get_marc_field_mapping({ field => $kohafield }); >+ $field = Koha::Holding->get_marc_field_mapping({ field => $kohafield }); >+ >+ Returns the MARC fields & subfields mapped to $kohafield. >+ Uses the HLD framework that is considered as authoritative. >+ >+ In list context all mappings are returned; there can be multiple >+ mappings. Note that in the above example you could miss a second >+ mapping in the first call. >+ In scalar context only the field tag of the first mapping is returned. >+ >+=cut >+ >+sub get_marc_field_mapping { >+ my ($class, $params) = @_; >+ >+ return unless $params->{field}; >+ >+ # The next call uses the HLD framework since it is AUTHORITATIVE >+ # for all Koha to MARC mappings for holdings. >+ my $mss = C4::Biblio::GetMarcSubfieldStructure('HLD', { unsafe => 1 }); # Do not change framework >+ my @retval; >+ foreach (@{ $mss->{$params->{field}} }) { >+ push @retval, $_->{tagfield}, $_->{tagsubfield}; >+ } >+ return wantarray ? @retval : ( @retval ? $retval[0] : undef ); >+} >+ >+=head2 Internal methods >+ >+=head3 _update_marc_ids >+ >+ $self->_update_marc_ids($record); >+ >+Internal function to add or update holding_id, biblionumber and biblioitemnumber to >+the MARC record. >+ >+=cut >+ >+sub _update_marc_ids { >+ my ($self, $record) = @_; >+ >+ my ($holding_tag, $holding_subfield) = $self->get_marc_field_mapping({ field => 'holdings.holding_id' }); >+ die qq{No holding_id tag for framework "HLD"} unless $holding_tag; >+ if ($holding_tag < 10) { >+ C4::Biblio::UpsertMarcControlField($record, $holding_tag, $self->holding_id); >+ } else { >+ C4::Biblio::UpsertMarcSubfield($record, $holding_tag, $holding_subfield, $self->holding_id); >+ } >+ >+ my ($biblio_tag, $biblio_subfield) = $self->get_marc_field_mapping({ field => 'biblio.biblionumber' }); >+ die qq{No biblionumber tag for framework "HLD"} unless $biblio_tag; >+ if ($biblio_tag < 10) { >+ C4::Biblio::UpsertMarcControlField($record, $biblio_tag, $self->biblionumber); >+ } else { >+ C4::Biblio::UpsertMarcSubfield($record, $biblio_tag, $biblio_subfield, $self->biblionumber); >+ } >+} >+ >+ >+=head1 AUTHOR >+ >+Kyle M Hall <kyle@bywatersolutions.com> >+Ere Maijala <ere.maijala@helsinki.fi> >+ >+=cut >+ >+1; >diff --git a/Koha/Holdings.pm b/Koha/Holdings.pm >new file mode 100644 >index 0000000000..5025b624a2 >--- /dev/null >+++ b/Koha/Holdings.pm >@@ -0,0 +1,145 @@ >+package Koha::Holdings; >+ >+# Copyright ByWater Solutions 2015 >+# Copyright 2017-2020 University of Helsinki (The National Library Of Finland) >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Carp; >+ >+use C4::Biblio; >+use C4::Charset; # For SetMarcUnicodeFlag >+use C4::Context; >+ >+use Koha::Holding; >+ >+use base qw(Koha::Objects); >+ >+=head1 NAME >+ >+Koha::Holdings - Koha Holdings object set class >+ >+=head1 API >+ >+=head2 Class Methods >+ >+=cut >+ >+=head3 type >+ >+=cut >+ >+sub _type { >+ return 'Holding'; >+} >+ >+=head3 object_class >+ >+=cut >+ >+sub object_class { >+ return 'Koha::Holding'; >+} >+ >+=head3 get_embeddable_marc_fields >+ >+ my @marc_fields = Koha::Holding->get_embeddable_marc_fields({biblionumber => $biblionumber}); >+ >+Returns an array of MARC::Record objects of the holdings for the biblio. >+ >+=cut >+ >+sub get_embeddable_marc_fields { >+ my ($class, $params) = @_; >+ >+ my @holdings_fields; >+ if (not defined $params->{biblionumber}) { >+ carp('get_embeddable_marc_fields called with undefined biblionumber'); >+ return \@holdings_fields; >+ } >+ >+ my ($holdingstag, $holdingssubfield) = Koha::Holding->get_marc_field_mapping({ field => 'holdings.holdingbranch' }); >+ my $holdings = $class->search({ biblionumber => $params->{biblionumber}, deleted_on => undef })->unblessed(); >+ foreach my $holding (@$holdings) { >+ my $mungedholding = { >+ map { >+ defined($holding->{$_}) && $holding->{$_} ne '' ? ("holdings.$_" => $holding->{$_}) : () >+ } keys %{ $holding } >+ }; >+ my $marc = $class->_holding_to_marc($mungedholding); >+ push @holdings_fields, $marc->field($holdingstag); >+ } >+ return \@holdings_fields; >+} >+ >+=head2 _holding_to_marc >+ >+ $record = $class->_holding_to_marc($hash) >+ >+This function builds partial MARC::Record from holdings hash entries. >+This function is called when embedding holdings into a biblio record. >+ >+=cut >+ >+sub _holding_to_marc { >+ my ($class, $hash, $params) = @_; >+ >+ my $record = MARC::Record->new(); >+ SetMarcUnicodeFlag($record, C4::Context->preference('marcflavour')); >+ >+ # The next call uses the HLD framework since it is AUTHORITATIVE >+ # for all Koha to MARC mappings for holdings. >+ my $mss = C4::Biblio::GetMarcSubfieldStructure('HLD', { unsafe => 1 }); # do not change framewok >+ my $tag_hr = {}; >+ while (my ($kohafield, $value) = each %$hash) { >+ foreach my $fld (@{$mss->{$kohafield}}) { >+ my $tagfield = $fld->{tagfield}; >+ my $tagsubfield = $fld->{tagsubfield}; >+ next if !$tagfield; >+ my @values = $params->{no_split} >+ ? ( $value ) >+ : split(/\s?\|\s?/, $value, -1); >+ foreach my $value (@values) { >+ next if $value eq ''; >+ $tag_hr->{$tagfield} //= []; >+ push @{$tag_hr->{$tagfield}}, [($tagsubfield, $value)]; >+ } >+ } >+ } >+ foreach my $tag (sort keys %$tag_hr) { >+ my @sfl = @{$tag_hr->{$tag}}; >+ @sfl = sort { $a->[0] cmp $b->[0]; } @sfl; >+ @sfl = map { @{$_}; } @sfl; >+ # Special care for control fields: remove the subfield indication @ >+ # and do not insert indicators. >+ my @ind = $tag < 10 ? () : ( " ", " " ); >+ @sfl = grep { $_ ne '@' } @sfl if $tag < 10; >+ $record->insert_fields_ordered(MARC::Field->new($tag, @ind, @sfl)); >+ } >+ return $record; >+} >+ >+ >+=head1 AUTHOR >+ >+Kyle M Hall <kyle@bywatersolutions.com> >+Ere Maijala <ere.maijala@helsinki.fi> >+ >+=cut >+ >+1; >diff --git a/Koha/Holdings/Metadata.pm b/Koha/Holdings/Metadata.pm >new file mode 100644 >index 0000000000..92923baebb >--- /dev/null >+++ b/Koha/Holdings/Metadata.pm >@@ -0,0 +1,99 @@ >+package Koha::Holdings::Metadata; >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Carp; >+ >+use Koha::Database; >+ >+use base qw(Koha::Object); >+ >+=head1 NAME >+ >+Koha::Holdings::Metadata - Koha Holdings Metadata Object class >+ >+=head1 API >+ >+=head2 Class methods >+ >+=cut >+ >+=head3 record >+ >+my $record = $metadata->record; >+ >+Returns an object representing the metadata record. The expected record type >+corresponds to this table: >+ >+ ------------------------------- >+ | format | object type | >+ ------------------------------- >+ | marcxml | MARC::Record | >+ ------------------------------- >+ >+=head4 Error handling >+ >+=over >+ >+=item If an unsupported format is found, it throws a I<Koha::Exceptions::Metadata> exception. >+ >+=item If it fails to create the record object, it throws a I<Koha::Exceptions::Metadata::Invalid> exception. >+ >+=back >+ >+=cut >+ >+sub record { >+ my ($self) = @_; >+ >+ my $record; >+ >+ if ($self->format eq 'marcxml') { >+ $record = eval { MARC::Record::new_from_xml( $self->metadata, 'utf-8', $self->schema ); }; >+ unless ($record) { >+ Koha::Exceptions::Metadata::Invalid->throw( >+ id => $self->id, >+ format => $self->format, >+ schema => $self->schema >+ ); >+ } >+ } else { >+ Koha::Exceptions::Metadata->throw( >+ 'Koha::Holdings::Metadata->record called on unhandled format: ' . $self->format ); >+ } >+ >+ return $record; >+} >+ >+=head2 Internal methods >+ >+=head3 _type >+ >+=cut >+ >+sub _type { >+ return 'HoldingsMetadata'; >+} >+ >+=head1 AUTHOR >+ >+Ere Maijala ere.maijala@helsinki.fi >+ >+=cut >+ >+1; >diff --git a/Koha/Holdings/Metadatas.pm b/Koha/Holdings/Metadatas.pm >new file mode 100644 >index 0000000000..523ccb998f >--- /dev/null >+++ b/Koha/Holdings/Metadatas.pm >@@ -0,0 +1,58 @@ >+package Koha::Holdings::Metadatas; >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Carp; >+ >+use Koha::Database; >+ >+use Koha::Holdings::Metadata; >+ >+use base qw(Koha::Objects); >+ >+=head1 NAME >+ >+Koha::Holdings::Metadatas - Koha Holdings Metadata Object set class >+ >+=head1 API >+ >+=head2 Internal methods >+ >+=head3 _type >+ >+=cut >+ >+sub _type { >+ return 'HoldingsMetadata'; >+} >+ >+=head3 object_class >+ >+=cut >+ >+sub object_class { >+ return 'Koha::Holdings::Metadata'; >+} >+ >+=head1 AUTHOR >+ >+Ere Maijala ere.maijala@helsinki.fi >+ >+=cut >+ >+1; >diff --git a/Koha/Item.pm b/Koha/Item.pm >index f821afde2f..563dd2db68 100644 >--- a/Koha/Item.pm >+++ b/Koha/Item.pm >@@ -36,6 +36,7 @@ use C4::Log qw( logaction ); > use Koha::Checkouts; > use Koha::CirculationRules; > use Koha::CoverImages; >+use Koha::Holdings; > use Koha::SearchEngine::Indexer; > use Koha::Item::Transfer::Limits; > use Koha::Item::Transfers; >@@ -370,6 +371,21 @@ sub biblioitem { > return Koha::Biblioitem->_new_from_dbic( $biblioitem_rs ); > } > >+=head3 holding >+ >+my $holding = $item->holding; >+ >+Return the holdings record of this item >+ >+=cut >+ >+sub holding { >+ my ( $self ) = @_; >+ my $holding_rs = $self->_result->holding; >+ return unless $holding_rs; >+ return Koha::Holding->_new_from_dbic( $holding_rs ); >+} >+ > =head3 checkout > > my $checkout = $item->checkout; >@@ -1096,6 +1112,38 @@ sub move_to_biblio { > > my $biblionumber = $to_biblio->biblionumber; > >+ # Own holdings record >+ my $holding = $self->holding; >+ # Check if our holdings record is already linked to the target biblio >+ if ($holding && $holding->biblionumber != $biblionumber) { >+ # Check if there's a suitable holdings record in the new biblio. >+ # This is not perfect, but at least we try. >+ my $candidates = Koha::Holdings->search( >+ { >+ biblionumber => $biblionumber, >+ frameworkcode => $holding->frameworkcode(), >+ holdingbranch => $holding->holdingbranch(), >+ location => $holding->location(), >+ callnumber => $holding->callnumber(), >+ suppress => $holding->suppress(), >+ deleted_on => undef >+ } >+ ); >+ my $newHolding = $candidates->next(); >+ if (!$newHolding) { >+ # No existing holdings record, make a copy of the old one. >+ $newHolding = Koha::Holding->new({ >+ biblionumber => $biblionumber, >+ frameworkcode => $holding->frameworkcode() >+ }); >+ $newHolding->set_marc({ record => $holding->metadata()->record() }); >+ $newHolding->store(); >+ } >+ $self->set({ >+ holding_id => $newHolding->holding_id() >+ }); >+ } >+ > # Own biblionumber and biblioitemnumber > $self->set({ > biblionumber => $biblionumber, >diff --git a/Koha/OAI/Server/ListBase.pm b/Koha/OAI/Server/ListBase.pm >index f1567dfb47..1d1aeda4cf 100644 >--- a/Koha/OAI/Server/ListBase.pm >+++ b/Koha/OAI/Server/ListBase.pm >@@ -69,8 +69,9 @@ sub GetRecords { > if ($include_items) { > $sql .= " > OR biblionumber IN (SELECT biblionumber from deleteditems WHERE timestamp >= ? AND timestamp <= ?) >+ OR biblionumber IN (SELECT biblionumber from holdings WHERE timestamp >= ? AND timestamp <= ?) > "; >- push @bind_params, ($token->{'from_arg'}, $token->{'until_arg'}); >+ push @bind_params, ($token->{'from_arg'}, $token->{'until_arg'}, $token->{'from_arg'}, $token->{'until_arg'}); > if (!$deleted) { > $sql .= " > OR biblionumber IN (SELECT biblionumber from items WHERE timestamp >= ? AND timestamp <= ?) >@@ -106,6 +107,8 @@ sub GetRecords { > SELECT timestamp FROM deletedbiblio_metadata WHERE biblionumber = ? > UNION > SELECT timestamp FROM deleteditems WHERE biblionumber = ? >+ UNION >+ SELECT timestamp FROM holdings WHERE biblionumber = ? > ) bis > "; > } else { >@@ -117,6 +120,8 @@ sub GetRecords { > SELECT timestamp FROM deleteditems WHERE biblionumber = ? > UNION > SELECT timestamp FROM items WHERE biblionumber = ? >+ UNION >+ SELECT timestamp FROM holdings WHERE biblionumber = ? > ) bi > "; > } >@@ -139,7 +144,8 @@ sub GetRecords { > ); > last STAGELOOP; > } >- my @params = $deleted ? ( $biblionumber, $biblionumber ) : ( $biblionumber, $biblionumber, $biblionumber ); >+ my @params = $deleted ? ( $biblionumber, $biblionumber, $biblionumber ) >+ : ( $biblionumber, $biblionumber, $biblionumber, $biblionumber ); > $record_sth->execute( @params ) || die( 'Could not execute statement: ' . $sth->errstr ); > > my ($timestamp) = $record_sth->fetchrow; >diff --git a/Koha/OAI/Server/Repository.pm b/Koha/OAI/Server/Repository.pm >index ca34ee8d00..0c816710fa 100644 >--- a/Koha/OAI/Server/Repository.pm >+++ b/Koha/OAI/Server/Repository.pm >@@ -93,6 +93,7 @@ mode. A configuration file koha-oai.conf can look like that: > xsl_file: /usr/local/koha/koha-tmpl/intranet-tmpl/xslt/UNIMARCslim2OAIDC.xsl > > Note the 'include_items' parameter which is the only mean to return item-level info. >+If summary holdings are enabled, 'include_items' includes their location information too. > > =cut > >diff --git a/Koha/Template/Plugin/Holdings.pm b/Koha/Template/Plugin/Holdings.pm >new file mode 100644 >index 0000000000..d4948b2f36 >--- /dev/null >+++ b/Koha/Template/Plugin/Holdings.pm >@@ -0,0 +1,116 @@ >+package Koha::Template::Plugin::Holdings; >+ >+# Copyright ByWater Solutions 2012 >+# Copyright BibLibre 2014 >+# Copyright 2017-2019 University of Helsinki (The National Library Of Finland) >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Template::Plugin; >+use base qw( Template::Plugin ); >+ >+use C4::Context; >+ >+use Koha::Holdings; >+ >+=head1 NAME >+ >+Koha::Template::Plugin::Holdings - TT Plugin for holdings >+ >+=head1 SYNOPSIS >+ >+[% USE Holdings %] >+ >+[% Holdings.GetLocation(holding) | html %] >+ >+=head1 ROUTINES >+ >+=head2 GetLocation >+ >+Get a location string for a holdings record >+ >+ [% Holdings.GetLocation(holding) | html %] >+ >+=cut >+ >+sub GetLocation { >+ my ($self, $holding) = @_; >+ my $opac = shift || 0; >+ >+ if (!$holding) { >+ return ''; >+ } >+ >+ if (ref($holding) ne 'Koha::Holding') { >+ $holding = Koha::Holdings->find($holding); >+ if (!$holding) { >+ return ''; >+ } >+ } >+ >+ my @parts; >+ >+ if ($opac) { >+ if (my $branch = $holding->holding_branch()) { >+ push @parts, $branch->branchname(); >+ } >+ if ($holding->location()) { >+ my $av = Koha::AuthorisedValues->search({ category => 'LOC', authorised_value => $holding->location() }); >+ push @parts, $av->next()->opac_description() if $av->count; >+ } >+ push @parts, $holding->callnumber() if $holding->callnumber(); >+ return join(' - ', @parts); >+ } >+ >+ push @parts, $holding->holding_id(); >+ push @parts, $holding->holdingbranch() if $holding->holdingbranch(); >+ push @parts, $holding->location() if $holding->location(); >+ push @parts, $holding->ccode() if $holding->ccode(); >+ push @parts, $holding->callnumber() if $holding->callnumber(); >+ return join(' ', @parts); >+} >+ >+=head2 GetDetails >+ >+Get the Koha fields for a holdings record >+ >+ [% details = Holdings.GetDetails(holding) %] >+ >+=cut >+ >+sub GetDetails { >+ my ($self, $holding) = @_; >+ my $opac = shift || 0; >+ >+ if (!$holding) { >+ return ''; >+ } >+ >+ if (ref($holding) ne 'Koha::Holding') { >+ $holding = Koha::Holdings->find($holding); >+ if (!$holding) { >+ return ''; >+ } >+ } >+ >+ my $holding_marc = $holding->metadata()->record(); >+ >+ return Koha::Holding->marc_to_koha_fields({ record => $holding_marc }); >+} >+ >+1; >diff --git a/acqui/basket.pl b/acqui/basket.pl >index f77d86b88c..a43b6b0675 100755 >--- a/acqui/basket.pl >+++ b/acqui/basket.pl >@@ -152,6 +152,7 @@ if ( $op eq 'delete_confirm' ) { > countbiblio => $biblio->active_orders->count, > itemcount => $biblio->items->count, > subscriptions => $biblio->subscriptions->count, >+ holdingscount => C4::Context->preference('SummaryHoldings') ? $biblio->holdings->count : 0, > }; > } > } >@@ -485,9 +486,10 @@ sub get_order_infos { > my $order = Koha::Acquisition::Orders->find($ordernumber); # FIXME We should certainly do that at the beginning of this sub > my $items = $order->items; > my $itemholds = $biblio->holds->search({ itemnumber => { -in => [ $items->get_column('itemnumber') ] } })->count; >+ my $holdingscount = C4::Context->preference('SummaryHoldings') ? $biblio->holdings->count : 0; > >- # if the biblio is not in other orders and if there is no items elsewhere and no subscriptions and no holds we can then show the link "Delete order and Biblio" see bug 5680 >- $line{can_del_bib} = 1 if $countbiblio <= 1 && $itemcount == $items->count && !($cnt_subscriptions) && !($holds_count); >+ # if the biblio is not in other orders and if there is no items elsewhere and no subscriptions and no holds and no holdings we can then show the link "Delete order and Biblio" see bug 5680 >+ $line{can_del_bib} = 1 if $countbiblio <= 1 && $itemcount == $items->count && !($cnt_subscriptions) && !($holds_count) && !($holdingscount); > $line{items} = $itemcount - $items->count; > $line{left_item} = 1 if $line{items} >= 1; > $line{left_biblio} = 1 if $countbiblio > 1; >@@ -499,6 +501,7 @@ sub get_order_infos { > $line{holds} = $holds_count; > $line{holds_on_order} = $itemholds?$itemholds:$holds_count if $line{left_holds_on_order}; > $line{order_object} = $order; >+ $line{holdings} = $holdingscount; > } > > >diff --git a/admin/marc_subfields_structure.pl b/admin/marc_subfields_structure.pl >index 63ae97732d..dc3163d1e1 100755 >--- a/admin/marc_subfields_structure.pl >+++ b/admin/marc_subfields_structure.pl >@@ -125,6 +125,11 @@ if ( $op eq 'add_form' ) { > while ( ( my $field ) = $sth2->fetchrow_array ) { > push @kohafields, "items." . $field; > } >+ $sth2 = $dbh->prepare("SHOW COLUMNS from holdings"); >+ $sth2->execute; >+ while ( ( my $field ) = $sth2->fetchrow_array ) { >+ push @kohafields, "holdings." . $field; >+ } > > # build authorised value list > $sth2->finish; >diff --git a/catalogue/detail.pl b/catalogue/detail.pl >index 9cb607b1e1..b40a5e5bf3 100755 >--- a/catalogue/detail.pl >+++ b/catalogue/detail.pl >@@ -245,6 +245,11 @@ foreach my $subscription (@subscriptions) { > push @subs, \%cell; > } > >+# Summary holdings >+my $summary_holdings; >+if (C4::Context->preference('SummaryHoldings')) { >+ $summary_holdings = $biblio->holdings; >+} > > # Get acquisition details > if ( C4::Context->preference('AcquisitionDetails') ) { >@@ -468,13 +473,14 @@ $template->param( > itemdata_stocknumber => $itemfields{stocknumber}, > itemdata_publisheddate => $itemfields{publisheddate}, > volinfo => $itemfields{enumchron}, >- itemdata_itemnotes => $itemfields{itemnotes}, >- itemdata_nonpublicnotes => $itemfields{itemnotes_nonpublic}, >+ itemdata_itemnotes => $itemfields{itemnotes}, >+ itemdata_nonpublicnotes => $itemfields{itemnotes_nonpublic}, > z3950_search_params => C4::Search::z3950_search_args($dat), >- hostrecords => $hostrecords, >- analytics_flag => $analytics_flag, >+ hostrecords => $hostrecords, >+ analytics_flag => $analytics_flag, > C4::Search::enabled_staff_search_views, >- materials => $materials_flag, >+ materials => $materials_flag, >+ summary_holdings => $summary_holdings, > ); > > if (C4::Context->preference("AlternateHoldingsField") && scalar @items == 0) { >diff --git a/catalogue/showmarc.pl b/catalogue/showmarc.pl >index 0c252c1229..a1ec7d4049 100755 >--- a/catalogue/showmarc.pl >+++ b/catalogue/showmarc.pl >@@ -34,6 +34,7 @@ use C4::Auth; > use C4::Biblio; > use C4::ImportBatch; > use C4::XSLT (); >+use Koha::Holdings; > > my $input= CGI->new; > my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >@@ -49,9 +50,12 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( > my $biblionumber= $input->param('id'); > my $importid= $input->param('importid'); > my $view= $input->param('viewas')||''; >+my $holding_id= $input->param('holding_id')||''; > > my $record; >-if ($importid) { >+if ($holding_id) { >+ $record = Koha::Holdings->find($holding_id)->metadata()->record(); >+} elsif ($importid) { > $record = C4::ImportBatch::GetRecordFromImportBiblio( $importid, 'embed_items' ); > } > else { >@@ -63,7 +67,7 @@ if(!ref $record) { > } > > if($view eq 'card' || $view eq 'html') { >- my $xml = $importid ? $record->as_xml(): GetXmlBiblio($biblionumber); >+ my $xml = $record->as_xml(); > my $xsl; > if ( $view eq 'card' ){ > $xsl = C4::Context->preference('marcflavour') eq 'UNIMARC' >diff --git a/cataloguing/addholding.pl b/cataloguing/addholding.pl >new file mode 100755 >index 0000000000..91c9a0d573 >--- /dev/null >+++ b/cataloguing/addholding.pl >@@ -0,0 +1,699 @@ >+#!/usr/bin/perl >+ >+ >+# Copyright 2000-2002 Katipo Communications >+# Copyright 2004-2010 BibLibre >+# Copyright 2017-2019 University of Helsinki (The National Library Of Finland) >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+# TODO: refactor to avoid duplication from addbiblio >+ >+use strict; >+#use warnings; FIXME - Bug 2505 >+use CGI q(-utf8); >+use C4::Output; >+use C4::Auth; >+use C4::Search; >+use C4::Biblio; >+use C4::Context; >+use MARC::Record; >+use C4::Log; >+use C4::Koha; >+use C4::ClassSource; >+use C4::ImportBatch; >+use C4::Charset; >+use Koha::Biblios; >+use Koha::BiblioFrameworks; >+use Koha::DateUtils; >+use C4::Matcher; >+ >+use Koha::ItemTypes; >+use Koha::Libraries; >+ >+use Date::Calc qw(Today); >+use MARC::File::USMARC; >+use MARC::File::XML; >+use URI::Escape; >+ >+if ( C4::Context->preference('marcflavour') eq 'UNIMARC' ) { >+ MARC::File::XML->default_record_format('UNIMARC'); >+} >+ >+our($tagslib,$authorised_values_sth,$is_a_modif,$usedTagsLib,$mandatory_z3950); >+ >+=head1 FUNCTIONS >+ >+=head2 build_authorized_values_list >+ >+=cut >+ >+sub build_authorized_values_list { >+ my ( $tag, $subfield, $value, $dbh, $authorised_values_sth,$index_tag,$index_subfield ) = @_; >+ >+ my @authorised_values; >+ my %authorised_lib; >+ >+ # builds list, depending on authorised value... >+ >+ #---- branch >+ if ( $tagslib->{$tag}->{$subfield}->{'authorised_value'} eq "branches" ) { >+ my $libraries = Koha::Libraries->search_filtered({}, {order_by => ['branchname']}); >+ while ( my $l = $libraries->next ) { >+ push @authorised_values, $l->branchcode; >+ $authorised_lib{$l->branchcode} = $l->branchname; >+ } >+ } >+ elsif ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "LOC" ) { >+ push @authorised_values, "" >+ unless ( $tagslib->{$tag}->{$subfield}->{mandatory} >+ && ( $value || $tagslib->{$tag}->{$subfield}->{defaultvalue} ) ); >+ >+ >+ my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : ""; >+ my $avs = Koha::AuthorisedValues->search_with_library_limits( >+ { >+ category => $tagslib->{$tag}->{$subfield}->{authorised_value}, >+ }, >+ { >+ order_by => [ 'category', 'lib', 'lib_opac' ], >+ }, >+ $branch_limit >+ ); >+ >+ while ( my $av = $avs->next ) { >+ push @authorised_values, $av->authorised_value; >+ $authorised_lib{$av->authorised_value} = $av->lib; >+ } >+ } >+ elsif ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "cn_source" ) { >+ push @authorised_values, "" >+ unless ( $tagslib->{$tag}->{$subfield}->{mandatory} ); >+ >+ my $class_sources = GetClassSources(); >+ >+ my $default_source = C4::Context->preference("DefaultClassificationSource"); >+ >+ foreach my $class_source (sort keys %$class_sources) { >+ next unless $class_sources->{$class_source}->{'used'} or >+ ($value and $class_source eq $value) or >+ ($class_source eq $default_source); >+ push @authorised_values, $class_source; >+ $authorised_lib{$class_source} = $class_sources->{$class_source}->{'description'}; >+ } >+ $value = $default_source unless $value; >+ } >+ else { >+ my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : ""; >+ $authorised_values_sth->execute( >+ $tagslib->{$tag}->{$subfield}->{authorised_value}, >+ $branch_limit ? $branch_limit : (), >+ ); >+ >+ push @authorised_values, "" >+ unless ( $tagslib->{$tag}->{$subfield}->{mandatory} >+ && ( $value || $tagslib->{$tag}->{$subfield}->{defaultvalue} ) ); >+ >+ while ( my ( $value, $lib ) = $authorised_values_sth->fetchrow_array ) { >+ push @authorised_values, $value; >+ $authorised_lib{$value} = $lib; >+ } >+ } >+ $authorised_values_sth->finish; >+ return { >+ type => 'select', >+ id => "tag_".$tag."_subfield_".$subfield."_".$index_tag."_".$index_subfield, >+ name => "tag_".$tag."_subfield_".$subfield."_".$index_tag."_".$index_subfield, >+ default => $value, >+ values => \@authorised_values, >+ labels => \%authorised_lib, >+ }; >+ >+} >+ >+=head2 CreateKey >+ >+ Create a random value to set it into the input name >+ >+=cut >+ >+sub CreateKey { >+ return int(rand(1000000)); >+} >+ >+=head2 create_input >+ >+ builds the <input ...> entry for a subfield. >+ >+=cut >+ >+sub create_input { >+ my ( $tag, $subfield, $value, $index_tag, $tabloop, $rec, $authorised_values_sth,$cgi ) = @_; >+ >+ my $index_subfield = CreateKey(); # create a specific key for each subfield >+ >+ $value =~ s/"/"/g; >+ >+ # if there is no value provided but a default value in parameters, get it >+ if ( $value eq '' ) { >+ $value = $tagslib->{$tag}->{$subfield}->{defaultvalue}; >+ >+ # get today date & replace <<YYYY>>, <<MM>>, <<DD>> if provided in the default value >+ my $today_dt = dt_from_string; >+ my $year = $today_dt->strftime('%Y'); >+ my $month = $today_dt->strftime('%m'); >+ my $day = $today_dt->strftime('%d'); >+ $value =~ s/<<YYYY>>/$year/g; >+ $value =~ s/<<MM>>/$month/g; >+ $value =~ s/<<DD>>/$day/g; >+ # And <<USER>> with surname (?) >+ my $username=(C4::Context->userenv?C4::Context->userenv->{'surname'}:"superlibrarian"); >+ $value=~s/<<USER>>/$username/g; >+ >+ } >+ my $dbh = C4::Context->dbh; >+ >+ # map '@' as "subfield" label for fixed fields >+ # to something that's allowed in a div id. >+ my $id_subfield = $subfield; >+ $id_subfield = "00" if $id_subfield eq "@"; >+ >+ my %subfield_data = ( >+ tag => $tag, >+ subfield => $id_subfield, >+ marc_lib => $tagslib->{$tag}->{$subfield}->{lib}, >+ tag_mandatory => $tagslib->{$tag}->{mandatory}, >+ mandatory => $tagslib->{$tag}->{$subfield}->{mandatory}, >+ repeatable => $tagslib->{$tag}->{$subfield}->{repeatable}, >+ kohafield => $tagslib->{$tag}->{$subfield}->{kohafield}, >+ index => $index_tag, >+ id => "tag_".$tag."_subfield_".$id_subfield."_".$index_tag."_".$index_subfield, >+ value => $value, >+ maxlength => $tagslib->{$tag}->{$subfield}->{maxlength}, >+ random => CreateKey(), >+ ); >+ >+ if(exists $mandatory_z3950->{$tag.$subfield}){ >+ $subfield_data{z3950_mandatory} = $mandatory_z3950->{$tag.$subfield}; >+ } >+ # Subfield is hidden depending of hidden and mandatory flag, and is always >+ # shown if it contains anything or if its field is mandatory. >+ my $tdef = $tagslib->{$tag}; >+ $subfield_data{visibility} = "display:none;" >+ if $tdef->{$subfield}->{hidden} % 2 == 1 && >+ $value eq '' && >+ !$tdef->{$subfield}->{mandatory} && >+ !$tdef->{mandatory}; >+ # expand all subfields of 773 if there is a host item provided in the input >+ $subfield_data{visibility} ="" if ($tag eq 773 and $cgi->param('hostitemnumber')); >+ >+ # it's an authorised field >+ if ( $tagslib->{$tag}->{$subfield}->{authorised_value} ) { >+ $subfield_data{marc_value} = >+ build_authorized_values_list( $tag, $subfield, $value, $dbh, >+ $authorised_values_sth,$index_tag,$index_subfield ); >+ >+ # it's a subfield $9 linking to an authority record - see bug 2206 >+ } >+ elsif ($subfield eq "9" and >+ exists($tagslib->{$tag}->{'a'}->{authtypecode}) and >+ defined($tagslib->{$tag}->{'a'}->{authtypecode}) and >+ $tagslib->{$tag}->{'a'}->{authtypecode} ne '') { >+ >+ $subfield_data{marc_value} = { >+ type => 'text', >+ id => $subfield_data{id}, >+ name => $subfield_data{id}, >+ value => $value, >+ size => 5, >+ maxlength => $subfield_data{maxlength}, >+ readonly => 1, >+ }; >+ >+ # it's a thesaurus / authority field >+ } >+ elsif ( $tagslib->{$tag}->{$subfield}->{authtypecode} ) { >+ # when authorities auto-creation is allowed, do not set readonly >+ my $is_readonly = !C4::Context->preference("BiblioAddsAuthorities"); >+ >+ $subfield_data{marc_value} = { >+ type => 'text', >+ id => $subfield_data{id}, >+ name => $subfield_data{id}, >+ value => $value, >+ size => 67, >+ maxlength => $subfield_data{maxlength}, >+ readonly => ($is_readonly) ? 1 : 0, >+ authtype => $tagslib->{$tag}->{$subfield}->{authtypecode}, >+ }; >+ >+ # it's a plugin field >+ } elsif ( $tagslib->{$tag}->{$subfield}->{'value_builder'} ) { >+ require Koha::FrameworkPlugin; >+ my $plugin = Koha::FrameworkPlugin->new( { >+ name => $tagslib->{$tag}->{$subfield}->{'value_builder'}, >+ }); >+ my $pars= { dbh => $dbh, record => $rec, tagslib => $tagslib, >+ id => $subfield_data{id}, tabloop => $tabloop }; >+ $plugin->build( $pars ); >+ if( !$plugin->errstr ) { >+ $subfield_data{marc_value} = { >+ type => 'text_complex', >+ id => $subfield_data{id}, >+ name => $subfield_data{id}, >+ value => $value, >+ size => 67, >+ maxlength => $subfield_data{maxlength}, >+ javascript => $plugin->javascript, >+ noclick => $plugin->noclick, >+ }; >+ } else { >+ warn $plugin->errstr; >+ # supply default input form >+ $subfield_data{marc_value} = { >+ type => 'text', >+ id => $subfield_data{id}, >+ name => $subfield_data{id}, >+ value => $value, >+ size => 67, >+ maxlength => $subfield_data{maxlength}, >+ readonly => 0, >+ }; >+ } >+ >+ # it's an hidden field >+ } elsif ( $tag eq '' ) { >+ $subfield_data{marc_value} = { >+ type => 'hidden', >+ id => $subfield_data{id}, >+ name => $subfield_data{id}, >+ value => $value, >+ size => 67, >+ maxlength => $subfield_data{maxlength}, >+ }; >+ >+ } >+ else { >+ # it's a standard field >+ if ( >+ length($value) > 100 >+ or >+ ( C4::Context->preference("marcflavour") eq "UNIMARC" && $tag >= 300 >+ and $tag < 400 && $subfield eq 'a' ) >+ or ( $tag >= 500 >+ and $tag < 600 >+ && C4::Context->preference("marcflavour") eq "MARC21" ) >+ ) >+ { >+ $subfield_data{marc_value} = { >+ type => 'textarea', >+ id => $subfield_data{id}, >+ name => $subfield_data{id}, >+ value => $value, >+ }; >+ >+ } >+ else { >+ $subfield_data{marc_value} = { >+ type => 'text', >+ id => $subfield_data{id}, >+ name => $subfield_data{id}, >+ value => $value, >+ size => 67, >+ maxlength => $subfield_data{maxlength}, >+ readonly => 0, >+ }; >+ >+ } >+ } >+ $subfield_data{'index_subfield'} = $index_subfield; >+ return \%subfield_data; >+} >+ >+ >+=head2 format_indicator >+ >+Translate indicator value for output form - specifically, map >+indicator = ' ' to ''. This is for the convenience of a cataloger >+using a mouse to select an indicator input. >+ >+=cut >+ >+sub format_indicator { >+ my $ind_value = shift; >+ return '' if not defined $ind_value; >+ return '' if $ind_value eq ' '; >+ return $ind_value; >+} >+ >+sub build_tabs { >+ my ( $template, $record, $dbh, $encoding,$input ) = @_; >+ >+ # fill arrays >+ my @loop_data = (); >+ my $tag; >+ >+ my $branch_limit = C4::Context->userenv ? C4::Context->userenv->{"branch"} : ""; >+ my $query = "SELECT authorised_value, lib >+ FROM authorised_values"; >+ $query .= qq{ LEFT JOIN authorised_values_branches ON ( id = av_id )} if $branch_limit; >+ $query .= " WHERE category = ?"; >+ $query .= " AND ( branchcode = ? OR branchcode IS NULL )" if $branch_limit; >+ $query .= " GROUP BY lib ORDER BY lib, lib_opac"; >+ my $authorised_values_sth = $dbh->prepare( $query ); >+ >+ # in this array, we will push all the 10 tabs >+ # to avoid having 10 tabs in the template : they will all be in the same BIG_LOOP >+ my @BIG_LOOP; >+ my %seen; >+ my @tab_data; # all tags to display >+ >+ foreach my $used ( @$usedTagsLib ){ >+ push @tab_data,$used->{tagfield} if not $seen{$used->{tagfield}}; >+ $seen{$used->{tagfield}}++; >+ } >+ >+ my $max_num_tab=-1; >+ foreach(@$usedTagsLib){ >+ if($_->{tab} > -1 && $_->{tab} >= $max_num_tab && $_->{tagfield} != '995'){ # FIXME : MARC21 ? >+ $max_num_tab = $_->{tab}; >+ } >+ } >+ if($max_num_tab >= 9){ >+ $max_num_tab = 9; >+ } >+ # loop through each tab 0 through 9 >+ for ( my $tabloop = 0 ; $tabloop <= $max_num_tab ; $tabloop++ ) { >+ my @loop_data = (); #innerloop in the template. >+ my $i = 0; >+ foreach my $tag (@tab_data) { >+ $i++; >+ next if ! $tag; >+ my ($indicator1, $indicator2); >+ my $index_tag = CreateKey; >+ >+ # if MARC::Record is not empty =>use it as master loop, then add missing subfields that should be in the tab. >+ # if MARC::Record is empty => use tab as master loop. >+ if ( $record ne -1 && ( $record->field($tag) || $tag eq '000' ) ) { >+ my @fields; >+ if ( $tag ne '000' ) { >+ @fields = $record->field($tag); >+ } >+ else { >+ push @fields, $record->leader(); # if tag == 000 >+ } >+ # loop through each field >+ foreach my $field (@fields) { >+ >+ my @subfields_data; >+ if ( $tag < 10 ) { >+ my ( $value, $subfield ); >+ if ( $tag ne '000' ) { >+ $value = $field->data(); >+ $subfield = "@"; >+ } >+ else { >+ $value = $field; >+ $subfield = '@'; >+ } >+ next if ( $tagslib->{$tag}->{$subfield}->{tab} ne $tabloop ); >+ next >+ if ( $tagslib->{$tag}->{$subfield}->{kohafield} eq >+ 'biblio.biblionumber' ); >+ push( >+ @subfields_data, >+ &create_input( >+ $tag, $subfield, $value, $index_tag, $tabloop, $record, >+ $authorised_values_sth,$input >+ ) >+ ); >+ } >+ else { >+ my @subfields = $field->subfields(); >+ foreach my $subfieldcount ( 0 .. $#subfields ) { >+ my $subfield = $subfields[$subfieldcount][0]; >+ my $value = $subfields[$subfieldcount][1]; >+ next if ( length $subfield != 1 ); >+ next if ( $tagslib->{$tag}->{$subfield}->{tab} ne $tabloop ); >+ push( >+ @subfields_data, >+ &create_input( >+ $tag, $subfield, $value, $index_tag, $tabloop, >+ $record, $authorised_values_sth,$input >+ ) >+ ); >+ } >+ } >+ >+ # now, loop again to add parameter subfield that are not in the MARC::Record >+ foreach my $subfield ( sort( keys %{ $tagslib->{$tag} } ) ) >+ { >+ next if ( length $subfield != 1 ); >+ next if ( $tagslib->{$tag}->{$subfield}->{tab} ne $tabloop ); >+ next if ( $tag < 10 ); >+ next >+ if ( ( $tagslib->{$tag}->{$subfield}->{hidden} <= -4 ) >+ or ( $tagslib->{$tag}->{$subfield}->{hidden} >= 5 ) ) >+ and not ( $subfield eq "9" and >+ exists($tagslib->{$tag}->{'a'}->{authtypecode}) and >+ defined($tagslib->{$tag}->{'a'}->{authtypecode}) and >+ $tagslib->{$tag}->{'a'}->{authtypecode} ne "" >+ ) >+ ; #check for visibility flag >+ # if subfield is $9 in a field whose $a is authority-controlled, >+ # always include in the form regardless of the hidden setting - bug 2206 >+ next if ( defined( $field->subfield($subfield) ) ); >+ push( >+ @subfields_data, >+ &create_input( >+ $tag, $subfield, '', $index_tag, $tabloop, $record, >+ $authorised_values_sth,$input >+ ) >+ ); >+ } >+ if ( $#subfields_data >= 0 ) { >+ # build the tag entry. >+ # note that the random() field is mandatory. Otherwise, on repeated fields, you'll >+ # have twice the same "name" value, and cgi->param() will return only one, making >+ # all subfields to be merged in a single field. >+ my %tag_data = ( >+ tag => $tag, >+ index => $index_tag, >+ tag_lib => $tagslib->{$tag}->{lib}, >+ repeatable => $tagslib->{$tag}->{repeatable}, >+ mandatory => $tagslib->{$tag}->{mandatory}, >+ subfield_loop => \@subfields_data, >+ fixedfield => $tag < 10?1:0, >+ random => CreateKey, >+ ); >+ if ($tag >= 10){ # no indicator for 00x tags >+ $tag_data{indicator1} = format_indicator($field->indicator(1)), >+ $tag_data{indicator2} = format_indicator($field->indicator(2)), >+ } >+ push( @loop_data, \%tag_data ); >+ } >+ } # foreach $field end >+ >+ # if breeding is empty >+ } >+ else { >+ my @subfields_data; >+ foreach my $subfield ( sort( keys %{ $tagslib->{$tag} } ) ) { >+ next if ( length $subfield != 1 ); >+ next >+ if ( ( $tagslib->{$tag}->{$subfield}->{hidden} <= -4 ) >+ or ( $tagslib->{$tag}->{$subfield}->{hidden} >= 5 ) ) >+ and not ( $subfield eq "9" and >+ exists($tagslib->{$tag}->{'a'}->{authtypecode}) and >+ defined($tagslib->{$tag}->{'a'}->{authtypecode}) and >+ $tagslib->{$tag}->{'a'}->{authtypecode} ne "" >+ ) >+ ; #check for visibility flag >+ # if subfield is $9 in a field whose $a is authority-controlled, >+ # always include in the form regardless of the hidden setting - bug 2206 >+ next >+ if ( $tagslib->{$tag}->{$subfield}->{tab} ne $tabloop ); >+ push( >+ @subfields_data, >+ &create_input( >+ $tag, $subfield, '', $index_tag, $tabloop, $record, >+ $authorised_values_sth,$input >+ ) >+ ); >+ } >+ if ( $#subfields_data >= 0 ) { >+ my %tag_data = ( >+ tag => $tag, >+ index => $index_tag, >+ tag_lib => $tagslib->{$tag}->{lib}, >+ repeatable => $tagslib->{$tag}->{repeatable}, >+ mandatory => $tagslib->{$tag}->{mandatory}, >+ indicator1 => $indicator1, >+ indicator2 => $indicator2, >+ subfield_loop => \@subfields_data, >+ tagfirstsubfield => $subfields_data[0], >+ fixedfield => $tag < 10?1:0, >+ ); >+ >+ push @loop_data, \%tag_data ; >+ } >+ } >+ } >+ if ( $#loop_data >= 0 ) { >+ push @BIG_LOOP, { >+ number => $tabloop, >+ innerloop => \@loop_data, >+ }; >+ } >+ } >+ $authorised_values_sth->finish; >+ $template->param( BIG_LOOP => \@BIG_LOOP ); >+} >+ >+########################## >+# MAIN >+########################## >+my $input = CGI->new; >+my $error = $input->param('error'); >+my $biblionumber = $input->param('biblionumber'); >+my $holding_id = $input->param('holding_id'); # if holding_id exists, it's a modification, not a new holding. >+my $op = $input->param('op'); >+my $mode = $input->param('mode'); >+my $frameworkcode = $input->param('frameworkcode'); >+my $redirect = $input->param('redirect'); >+my $searchid = $input->param('searchid'); >+my $userflags = 'edit_items'; >+my $changed_framework = $input->param('changed_framework'); >+ >+my ($template, $loggedinuser, $cookie) = get_template_and_user( >+ { >+ template_name => "cataloguing/addholding.tt", >+ query => $input, >+ type => "intranet", >+ flagsrequired => { editcatalogue => $userflags }, >+ } >+); >+ >+my $record = $holding_id ? Koha::Holdings->find($holding_id) : Koha::Holding->new(); >+ >+$frameworkcode = 'HLD' if ($frameworkcode eq ''); >+ >+# TODO: support in advanced editor? >+#if ( $op ne "delete" && C4::Context->preference('EnableAdvancedCatalogingEditor') && $input->cookie( 'catalogue_editor_' . $loggedinuser ) eq 'advanced' ) { >+# print $input->redirect( '/cgi-bin/koha/cataloguing/editor.pl#catalog/' . $biblionumber . '/holdings/' . ( $holding_id ? $holding_id : '' ) ); >+# exit; >+#} >+ >+# ++ Global >+$tagslib = &GetMarcStructure( 1, $frameworkcode ); >+$usedTagsLib = &GetUsedMarcStructure( $frameworkcode ); >+# -- Global >+ >+my ( $biblionumbertagfield, $biblionumbertagsubfield ) = >+ &GetMarcFromKohaField( "biblio.biblionumber", $frameworkcode ); >+ >+if ($op eq 'add') { >+ $template->param( >+ biblionumberdata => $biblionumber, >+ ); >+ # Convert HTML input to MARC >+ my @params = $input->multi_param(); >+ my $marc = TransformHtmlToMarc( $input, 1 ); >+ >+ $record->frameworkcode($frameworkcode); >+ $record->biblionumber($biblionumber); >+ $record->set_marc({ record => $marc }); >+ $record->store(); >+ >+ if ($redirect eq 'items' || ($mode ne 'popup' && !$holding_id && $redirect ne 'view' && $redirect ne 'just_save')) { >+ print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber&searchid=$searchid"); >+ exit; >+ } elsif ($holding_id && $redirect eq 'view') { >+ print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber&searchid=$searchid"); >+ exit; >+ } elsif ($redirect eq 'just_save') { >+ my $tab = $input->param('current_tab'); >+ print $input->redirect("/cgi-bin/koha/cataloguing/addholding.pl?biblionumber=$biblionumber&holding_id=$holding_id&framework=$frameworkcode&tab=$tab&searchid=$searchid"); >+ } else { >+ $template->param( >+ biblionumber => $biblionumber, >+ holding_id => $holding_id, >+ done => 1, >+ popup => $mode, >+ ); >+ output_html_with_http_headers($input, $cookie, $template->output); >+ exit; >+ } >+} elsif ($op eq 'delete') { >+ if ($record->items()->count()) { >+ $template->param( >+ error_items_exist => 1 >+ ); >+ } elsif (!$record->delete()) { >+ $template->param( >+ error_delete_failed => 1 >+ ); >+ } else { >+ print $input->redirect("/cgi-bin/koha/catalogue/detail.pl?biblionumber=$biblionumber&searchid=$searchid"); >+ exit; >+ } >+} >+ >+#---------------------------------------------------------------------------- >+# If we're in a duplication case, we have to clear the holding_id >+# as we'll save the holding as a new one. >+$template->param( >+ holding_iddata => $holding_id, >+ op => $op, >+); >+if ($op eq 'duplicate') { >+ $holding_id = ''; >+} >+ >+my $marc; >+if ($changed_framework eq 'changed') { >+ $marc = TransformHtmlToMarc($input, 1); >+} else { >+ my $metadata = $record->metadata(); >+ $marc = $metadata ? $metadata->record() : -1; >+} >+ >+if (!$biblionumber) { >+ # we must have a holdings record if we don't have a biblionumber >+ $biblionumber = $record->biblionumber; >+} >+my $biblio = Koha::Biblios->find($biblionumber); >+build_tabs($template, $marc, C4::Context->dbh, '', $input); >+$template->param( >+ holding_id => $holding_id, >+ biblionumber => $biblionumber, >+ biblionumbertagfield => $biblionumbertagfield, >+ biblionumbertagsubfield => $biblionumbertagsubfield, >+ title => $biblio->title, >+ author => $biblio->author >+); >+ >+$template->param( >+ frameworks => Koha::BiblioFrameworks->search({}, { order_by => ['frameworktext'] }), >+ popup => $mode, >+ frameworkcode => $frameworkcode, >+ itemtype => $frameworkcode, >+ borrowernumber => $loggedinuser, >+ tab => scalar $input->param('tab') >+); >+$template->{'VARS'}->{'searchid'} = $searchid; >+ >+output_html_with_http_headers($input, $cookie, $template->output); >diff --git a/cataloguing/additem.pl b/cataloguing/additem.pl >index b42d3d3765..6e0c69c26c 100755 >--- a/cataloguing/additem.pl >+++ b/cataloguing/additem.pl >@@ -31,6 +31,7 @@ use C4::Circulation; > use C4::Koha; > use C4::ClassSource; > use Koha::DateUtils; >+use Koha::Holdings; > use Koha::Items; > use Koha::ItemTypes; > use Koha::Libraries; >@@ -234,6 +235,16 @@ sub generate_subfield_form { > > #---- "true" authorised value > } >+ elsif ( $subfieldlib->{authorised_value} eq "holdings" ) { >+ push @authorised_values, "" unless ( $subfieldlib->{mandatory} ); >+ my $holdings = Koha::Holdings->search({ biblionumber => $biblionumber, deleted_on => undef }, { order_by => ['holdingbranch'] })->unblessed; >+ for my $holding ( @$holdings ) { >+ push @authorised_values, $holding->{holding_id}; >+ $authorised_lib{$holding->{holding_id}} = $holding->{holding_id} . ' ' . $holding->{holdingbranch} . ' ' . $holding->{location} . ' ' . $holding->{ccode} . ' ' . $holding->{callnumber}; >+ } >+ my $input = CGI->new; >+ $value = $input->param('holding_id') unless ($value); >+ } > else { > push @authorised_values, qq{}; > my $av = GetAuthorisedValues( $subfieldlib->{authorised_value} ); >diff --git a/cataloguing/merge.pl b/cataloguing/merge.pl >index 4bf0326179..5cae59b4e2 100755 >--- a/cataloguing/merge.pl >+++ b/cataloguing/merge.pl >@@ -89,7 +89,7 @@ if ($merge) { > my $biblio = Koha::Biblios->find($ref_biblionumber); > foreach my $biblionumber (@biblionumbers) { > my $from_biblio = Koha::Biblios->find($biblionumber); >- $biblio->adopt_items_from_biblio($from_biblio); >+ $biblio->adopt_holdings_from_biblio($from_biblio); > $from_biblio->article_requests->update({ biblionumber => $ref_biblionumber }, { no_triggers => 1 }); > } > >@@ -154,7 +154,7 @@ if ($merge) { > # Moving suggestions > $sth_suggestions->execute($ref_biblionumber, $biblionumber); > >- # Moving orders (orders linked to items of frombiblio have already been moved by adopt_items_from_biblio) >+ # Moving orders (orders linked to items of frombiblio have already been moved by adopt_holdings_from_biblio) > my @allorders = GetOrdersByBiblionumber($biblionumber); > foreach my $myorder (@allorders) { > $myorder->{'biblionumber'} = $ref_biblionumber; >diff --git a/cataloguing/value_builder/marc21_field_008_holdings.pl b/cataloguing/value_builder/marc21_field_008_holdings.pl >new file mode 100755 >index 0000000000..601f7ae076 >--- /dev/null >+++ b/cataloguing/value_builder/marc21_field_008_holdings.pl >@@ -0,0 +1,113 @@ >+#!/usr/bin/perl >+ >+# Copyright 2000-2002 Katipo Communications >+# Copyright 2017-2018 University of Helsinki (The National Library Of Finland) >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+use C4::Auth; >+use CGI qw ( -utf8 ); >+use C4::Context; >+use C4::Output; >+ >+use XML::LibXML; >+use Koha::Util::FrameworkPlugin qw|date_entered|; >+ >+my $builder = sub { >+ my ( $params ) = @_; >+ >+ my $lang = C4::Context->preference('DefaultLanguageField008' ); >+ $lang = "eng" unless $lang; >+ $lang = pack("A3", $lang); >+ >+ my $function_name = $params->{id}; >+ my $dateentered = date_entered(); >+ my $res = " >+<script> >+function Focus$function_name(event) { >+ if ( document.getElementById(event.data.id).value ) { >+ } >+ else { >+ document.getElementById(event.data.id).value='$dateentered' + '0u 0 4 uu${lang}0$dateentered'; >+ } >+ return 1; >+} >+ >+function Click$function_name(event) { >+ defaultvalue=document.getElementById(event.data.id).value; >+ //Retrieve full leader string and pass it to the 008 tag editor >+ var leader_value = \$(\"input[id^='tag_000']\").val(); >+ var leader_parameter = \"\"; >+ if (leader_value){ >+ //Only add the parameter to the URL if there is a value to add >+ leader_parameter = \"&leader=\"+leader_value; >+ } >+ newin=window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=marc21_field_008_holdings.pl&index=\"+ event.data.id +\"&result=\"+defaultvalue+leader_parameter,\"tag_editor\",'width=1000,height=600,toolbar=false,scrollbars=yes'); >+ >+} >+</script> >+"; >+ >+ return $res; >+}; >+ >+my $launcher = sub { >+ my ( $params ) = @_; >+ my $input = $params->{cgi}; >+ my $index= $input->param('index'); >+ my $result= $input->param('result'); >+ >+ my $lang = C4::Context->preference('DefaultLanguageField008' ); >+ $lang = "eng" unless $lang; >+ $lang = pack("A3", $lang); >+ >+ my ($template, $loggedinuser, $cookie) >+ = get_template_and_user({template_name => "cataloguing/value_builder/marc21_field_008_holdings.tt", >+ query => $input, >+ type => "intranet", >+ flagsrequired => {editcatalogue => '*'}, >+ debug => 1, >+ }); >+ my $dateentered = date_entered(); >+ $result = $dateentered . '0u 0 0 uu' . $lang . '0' . $dateentered unless $result; >+ my @f; >+ for(0,6..8,12..17,20..22,25,26) { >+ my $len = 1; >+ if ($_ == 0 || $_ == 26) { >+ $len = 6; >+ } elsif ($_ == 8) { >+ $len = 4; >+ } elsif ($_ == 17 || $_ == 22) { >+ $len = 3; >+ } >+ $f[$_]=substr($result,$_,$len); >+ } >+ $template->param(index => $index); >+ >+ $f[0]= $dateentered if !$f[0] || $f[0]=~/\s/; >+ $template->param(f1 => $f[0]); >+ >+ for(6..8,12..17,20..22,25,26) { >+ $template->param( >+ "f$_" => $f[$_], >+ "f$_".($f[$_] eq '|'? 'pipe': $f[$_]) => $f[$_], >+ ); >+ } >+ output_html_with_http_headers $input, $cookie, $template->output; >+}; >+ >+return { builder => $builder, launcher => $launcher }; >diff --git a/cataloguing/value_builder/marc21_leader_holdings.pl b/cataloguing/value_builder/marc21_leader_holdings.pl >new file mode 100755 >index 0000000000..f8e5c69a76 >--- /dev/null >+++ b/cataloguing/value_builder/marc21_leader_holdings.pl >@@ -0,0 +1,80 @@ >+#!/usr/bin/perl >+ >+# Copyright 2000-2002 Katipo Communications >+# Copyright 2017-2018 University of Helsinki (The National Library Of Finland) >+# >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+use CGI qw ( -utf8 ); >+ >+use C4::Auth; >+use C4::Context; >+use C4::Output; >+ >+my $builder = sub { >+ my ( $params ) = @_; >+ my $function_name = $params->{id}; >+ my $res = " >+<script> >+function Focus$function_name(event) { >+ if(!document.getElementById(event.data.id).value){ >+ document.getElementById(event.data.id).value = ' nu a22 un 4500'; >+ } >+} >+ >+function Click$function_name(event) { >+ defaultvalue=document.getElementById(event.data.id).value; >+ newin=window.open(\"../cataloguing/plugin_launcher.pl?plugin_name=marc21_leader_holdings.pl&index=\"+ event.data.id +\"&result=\"+defaultvalue,\"tag_editor\",'width=1000,height=600,toolbar=false,scrollbars=yes'); >+} >+</script> >+"; >+ >+ return $res; >+}; >+ >+my $launcher = sub { >+ my ( $params ) = @_; >+ my $input = $params->{cgi}; >+ my $index = $input->param('index'); >+ my $result = $input->param('result'); >+ >+ my $dbh = C4::Context->dbh; >+ >+ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >+ { template_name => "cataloguing/value_builder/marc21_leader_holdings.tt", >+ query => $input, >+ type => "intranet", >+ flagsrequired => { editcatalogue => '*' }, >+ debug => 1, >+ } >+ ); >+ $result = " nu a22 ui 4500" unless $result; >+ my $f5 = substr( $result, 5, 1 ); >+ my $f6 = substr( $result, 6, 1 ); >+ my $f17 = substr( $result, 17, 1 ); >+ my $f18 = substr( $result, 18, 1 ); >+ $template->param( >+ index => $index, >+ "f5$f5" => 1, >+ "f6$f6" => 1, >+ "f17$f17" => 1, >+ "f18$f18" => 1, >+ ); >+ output_html_with_http_headers $input, $cookie, $template->output; >+}; >+ >+return { builder => $builder, launcher => $launcher }; >diff --git a/installer/data/mysql/atomicupdate/bug_20447-add_holdings_tables.perl b/installer/data/mysql/atomicupdate/bug_20447-add_holdings_tables.perl >new file mode 100644 >index 0000000000..663f0ec6a1 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_20447-add_holdings_tables.perl >@@ -0,0 +1,674 @@ >+$DBversion = 'XXX'; # will be replaced by the RM >+if( CheckVersion( $DBversion ) ) { >+ if( !TableExists( 'holdings' ) ) { >+ $dbh->do(q{ >+ CREATE TABLE `holdings` ( -- table that stores summary holdings information >+ `holding_id` int(11) NOT NULL auto_increment, -- unique identifier assigned to each holdings record >+ `biblionumber` int(11) NOT NULL default 0, -- foreign key from biblio table used to link this record to the right bib record >+ `frameworkcode` varchar(4) NOT NULL default '', -- foreign key from the biblio_framework table to identify which framework was used in cataloging this record >+ `holdingbranch` varchar(10) default NULL, -- foreign key from the branches table for the library that owns this record (MARC21 852$a) >+ `location` varchar(80) default NULL, -- authorized value for the shelving location for this record (MARC21 852$b) >+ `ccode` varchar(80) default NULL, -- authorized value for the collection code associated with this item (MARC21 852$g) >+ `callnumber` varchar(255) default NULL, -- call number (852$h+$i in MARC21) >+ `suppress` tinyint(1) default NULL, -- Boolean indicating whether the record is suppressed in OPAC >+ `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, -- date and time this record was last touched >+ `datecreated` DATE NOT NULL, -- the date this record was added to Koha >+ `deleted_on` DATETIME DEFAULT NULL, -- the date this record was deleted >+ PRIMARY KEY (`holding_id`), >+ KEY `hldnoidx` (`holding_id`), >+ KEY `hldbibnoidx` (`biblionumber`), >+ CONSTRAINT `holdings_ibfk_1` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE, >+ CONSTRAINT `holdings_ibfk_2` FOREIGN KEY (`holdingbranch`) REFERENCES `branches` (`branchcode`) ON UPDATE CASCADE >+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; >+ }); >+ } >+ if( !TableExists( 'holdings_metadata' ) ) { >+ $dbh->do(q{ >+ CREATE TABLE `holdings_metadata` ( >+ `id` INT(11) NOT NULL AUTO_INCREMENT, >+ `holding_id` INT(11) NOT NULL, >+ `format` VARCHAR(16) NOT NULL, >+ `schema` VARCHAR(16) NOT NULL, >+ `metadata` LONGTEXT NOT NULL, >+ `deleted_on` DATETIME DEFAULT NULL, -- the date this record was deleted >+ PRIMARY KEY(id), >+ UNIQUE KEY `holdings_metadata_uniq_key` (`holding_id`,`format`,`schema`), >+ KEY `hldnoidx` (`holding_id`), >+ CONSTRAINT `holdings_metadata_fk_1` FOREIGN KEY (`holding_id`) REFERENCES `holdings` (`holding_id`) ON DELETE CASCADE ON UPDATE CASCADE >+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; >+ }); >+ } >+ >+ if( !column_exists( 'items', 'holding_id' ) ) { >+ $dbh->do(q{ >+ ALTER TABLE `items` ADD COLUMN `holding_id` int(11) default NULL; >+ }); >+ $dbh->do(q{ >+ ALTER TABLE `items` ADD CONSTRAINT `items_ibfk_5` FOREIGN KEY (`holding_id`) REFERENCES `holdings` (`holding_id`) ON DELETE CASCADE ON UPDATE CASCADE; >+ }); >+ $dbh->do(q{ >+ ALTER TABLE `items` ADD KEY `hldid_idx` (`holding_id`); >+ }); >+ >+ $dbh->do(q{ >+ ALTER TABLE `deleteditems` ADD COLUMN `holding_id` int(11) default NULL; >+ }); >+ } >+ >+ $dbh->do(q{ >+ INSERT IGNORE INTO authorised_value_categories( category_name ) VALUES ('holdings'); >+ }); >+ >+ $dbh->do(q{ >+ INSERT IGNORE INTO systempreferences ( `variable`, `value`, `options`, `explanation`, `type` ) VALUES >+ ('SummaryHoldings', '0', NULL, 'If ON, enables support for holdings records.', 'YesNo'); >+ }); >+ >+ $dbh->do(q{ >+ INSERT IGNORE INTO `biblio_framework` VALUES ('HLD', 'Default holdings framework'); >+ }); >+ >+ if (C4::Context->preference("marcflavour") eq 'MARC21') { >+ # items.holding_id in the default framework >+ $dbh->do(q{ >+ INSERT IGNORE INTO `marc_subfield_structure` (`tagfield`, `tagsubfield`, `liblibrarian`, `libopac`, `repeatable`, `mandatory`, `kohafield`, `tab`, `authorised_value`, `authtypecode`, `value_builder`, `isurl`, `hidden`, `frameworkcode`, `seealso`, `link`, `defaultvalue`) VALUES >+ ('952', 'k', 'Holdings record', 'Holdings record', 0, 0, 'items.holding_id', 10, 'holdings', '', '', NULL, -1, '', '', '', NULL); >+ }); >+ >+ # Holdings framework >+ $dbh->do(q{ >+ INSERT IGNORE INTO `marc_tag_structure` (`tagfield`, `liblibrarian`, `libopac`, `repeatable`, `mandatory`, `authorised_value`, `frameworkcode`) VALUES >+ ('000', 'LEADER', 'LEADER', 0, 1, '', 'HLD'), >+ ('001', 'CONTROL NUMBER', 'CONTROL NUMBER', 0, 0, '', 'HLD'), >+ ('003', 'CONTROL NUMBER IDENTIFIER', 'CONTROL NUMBER IDENTIFIER', 0, 1, '', 'HLD'), >+ ('004', 'CONTROL NUMBER FOR RELATED BIBLIOGRAPHIC RECORD', 'CONTROL NUMBER FOR RELATED BIBLIOGRAPHIC RECORD', 0, 0, '', 'HLD'), >+ ('005', 'DATE AND TIME OF LATEST TRANSACTION', 'DATE AND TIME OF LATEST TRANSACTION', 0, 1, '', 'HLD'), >+ ('006', 'FIXED-LENGTH DATA ELEMENTS--ADDITIONAL MATERIAL CHARACTERISTICS', 'FIXED-LENGTH DATA ELEMENTS--ADDITIONAL MATERIAL CHARACTERISTICS', 1, 0, '', 'HLD'), >+ ('007', 'PHYSICAL DESCRIPTION FIXED FIELD--GENERAL INFORMATION', 'PHYSICAL DESCRIPTION FIXED FIELD--GENERAL INFORMATION', 1, 0, '', 'HLD'), >+ ('008', 'FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION', 'FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION', 0, 1, '', 'HLD'), >+ ('010', 'LIBRARY OF CONGRESS CONTROL NUMBER', 'LIBRARY OF CONGRESS CONTROL NUMBER', 0, 0, '', 'HLD'), >+ ('014', 'LINKAGE NUMBER', 'LINKAGE NUMBER', 1, 0, '', 'HLD'), >+ ('016', 'NATIONAL BIBLIOGRAPHIC AGENCY CONTROL NUMBER', 'NATIONAL BIBLIOGRAPHIC AGENCY CONTROL NUMBER', 1, 0, '', 'HLD'), >+ ('017', 'COPYRIGHT OR LEGAL DEPOSIT NUMBER', 'COPYRIGHT OR LEGAL DEPOSIT NUMBER', 1, 0, '', 'HLD'), >+ ('020', 'INTERNATIONAL STANDARD BOOK NUMBER', 'INTERNATIONAL STANDARD BOOK NUMBER', 1, 0, NULL, 'HLD'), >+ ('022', 'INTERNATIONAL STANDARD SERIAL NUMBER', 'INTERNATIONAL STANDARD SERIAL NUMBER', 1, 0, NULL, 'HLD'), >+ ('024', 'OTHER STANDARD IDENTIFIER', 'OTHER STANDARD IDENTIFIER', 1, 0, NULL, 'HLD'), >+ ('027', 'STANDARD TECHNICAL REPORT NUMBER', 'STANDARD TECHNICAL REPORT NUMBER', 1, 0, '', 'HLD'), >+ ('030', 'CODEN DESIGNATION', 'CODEN DESIGNATION', 1, 0, '', 'HLD'), >+ ('035', 'SYSTEM CONTROL NUMBER', 'SYSTEM CONTROL NUMBER', 1, 0, NULL, 'HLD'), >+ ('040', 'CATALOGING SOURCE', 'CATALOGING SOURCE', 0, 1, NULL, 'HLD'), >+ ('066', 'CHARACTER SETS PRESENT', 'CHARACTER SETS PRESENT', 0, 0, NULL, 'HLD'), >+ ('337', 'MEDIA TYPE', 'MEDIA TYPE', 1, 0, NULL, 'HLD'), >+ ('338', 'CARRIER TYPE', 'CARRIER TYPE', 1, 0, NULL, 'HLD'), >+ ('347', 'DIGITAL FILE CHARACTERISTICS', 'DIGITAL FILE CHARACTERISTICS', 1, 0, NULL, 'HLD'), >+ ('506', 'RESTRICTIONS ON ACCESS NOTE', 'RESTRICTIONS ON ACCESS NOTE', 1, 0, NULL, 'HLD'), >+ ('538', 'SYSTEM DETAILS NOTE', 'SYSTEM DETAILS NOTE', 1, 0, NULL, 'HLD'), >+ ('541', 'IMMEDIATE SOURCE OF ACQUISITION NOTE', 'IMMEDIATE SOURCE OF ACQUISITION NOTE', 1, 0, NULL, 'HLD'), >+ ('561', 'OWNERSHIP AND CUSTODIAL HISTORY', 'OWNERSHIP AND CUSTODIAL HISTORY', 1, 0, NULL, 'HLD'), >+ ('562', 'COPY AND VERSION IDENTIFICATION NOTE', 'COPY AND VERSION IDENTIFICATION NOTE', 1, 0, NULL, 'HLD'), >+ ('563', 'BINDING INFORMATION', 'BINDING INFORMATION', 1, 0, NULL, 'HLD'), >+ ('583', 'ACTION NOTE', 'ACTION NOTE', 1, 0, NULL, 'HLD'), >+ ('842', 'TEXTUAL PHYSICAL FORM DESIGNATOR', 'TEXTUAL PHYSICAL FORM DESIGNATOR', 0, 0, NULL, 'HLD'), >+ ('843', 'REPRODUCTION NOTE', 'REPRODUCTION NOTE', 1, 0, NULL, 'HLD'), >+ ('844', 'NAME OF UNIT', 'NAME OF UNIT', 0, 0, NULL, 'HLD'), >+ ('845', 'TERMS GOVERNING USE AND REPRODUCTION NOTE', 'TERMS GOVERNING USE AND REPRODUCTION NOTE', 1, 0, NULL, 'HLD'), >+ ('852', 'LOCATION', 'LOCATION', 1, 0, NULL, 'HLD'), >+ ('853', 'CAPTIONS AND PATTERN--BASIC BIBLIOGRAPHIC UNIT', 'CAPTIONS AND PATTERN--BASIC BIBLIOGRAPHIC UNIT', 1, 0, NULL, 'HLD'), >+ ('854', 'CAPTIONS AND PATTERN--SUPPLEMENTARY MATERIAL', 'CAPTIONS AND PATTERN--SUPPLEMENTARY MATERIAL', 1, 0, NULL, 'HLD'), >+ ('855', 'CAPTIONS AND PATTERN--INDEXES', 'CAPTIONS AND PATTERN--INDEXES', 1, 0, NULL, 'HLD'), >+ ('856', 'ELECTRONIC LOCATION AND ACCESS', 'ELECTRONIC LOCATION AND ACCESS', 1, 0, NULL, 'HLD'), >+ ('863', 'ENUMERATION AND CHRONOLOGY--BASIC BIBLIOGRAPHIC UNIT', 'ENUMERATION AND CHRONOLOGY--BASIC BIBLIOGRAPHIC UNIT', 1, 0, NULL, 'HLD'), >+ ('864', 'ENUMERATION AND CHRONOLOGY--SUPPLEMENTARY MATERIAL', 'ENUMERATION AND CHRONOLOGY--SUPPLEMENTARY MATERIAL', 1, 0, NULL, 'HLD'), >+ ('865', 'ENUMERATION AND CHRONOLOGY--INDEXES', 'ENUMERATION AND CHRONOLOGY--INDEXES', 1, 0, NULL, 'HLD'), >+ ('866', 'TEXTUAL HOLDINGS--BASIC BIBLIOGRAPHIC UNIT', 'TEXTUAL HOLDINGS--BASIC BIBLIOGRAPHIC UNIT', 1, 0, NULL, 'HLD'), >+ ('867', 'TEXTUAL HOLDINGS--SUPPLEMENTARY MATERIAL', 'TEXTUAL HOLDINGS--SUPPLEMENTARY MATERIAL', 1, 0, NULL, 'HLD'), >+ ('868', 'TEXTUAL HOLDINGS--INDEXES', 'TEXTUAL HOLDINGS--INDEXES', 1, 0, NULL, 'HLD'), >+ ('876', 'ITEM INFORMATION--BASIC BIBLIOGRAPHIC UNIT', 'ITEM INFORMATION--BASIC BIBLIOGRAPHIC UNIT', 1, 0, NULL, 'HLD'), >+ ('877', 'ITEM INFORMATION--SUPPLEMENTARY MATERIAL', 'ITEM INFORMATION--SUPPLEMENTARY MATERIAL', 1, 0, NULL, 'HLD'), >+ ('878', 'ITEM INFORMATION--INDEXES', 'ITEM INFORMATION--INDEXES', 1, 0, NULL, 'HLD'), >+ ('880', 'ALTERNATE GRAPHIC REPRESENTATION', 'ALTERNATE GRAPHIC REPRESENTATION', 1, 0, NULL, 'HLD'), >+ ('883', 'MACHINE-GENERATED METADATA PROVENANCE', 'MACHINE-GENERATED METADATA PROVENANCE', 1, 0, NULL, 'HLD'), >+ ('884', 'DESCRIPTION CONVERSION INFORMATION', 'DESCRIPTION CONVERSION INFORMATION', 1, 0, NULL, 'HLD'), >+ ('942', 'ADDED ENTRY ELEMENTS (KOHA)', 'ADDED ENTRY ELEMENTS (KOHA)', 0, 0, '', 'HLD'), >+ ('999', 'SYSTEM CONTROL NUMBERS (KOHA)', 'SYSTEM CONTROL NUMBERS (KOHA)', 1, 0, '', 'HLD'); >+ }); >+ $dbh->do(q{ >+ INSERT IGNORE INTO `marc_subfield_structure` (`tagfield`, `tagsubfield`, `liblibrarian`, `libopac`, `repeatable`, `mandatory`, `kohafield`, `tab`, `authorised_value`, `authtypecode`, `value_builder`, `isurl`, `hidden`, `frameworkcode`, `seealso`, `link`, `defaultvalue`) VALUES >+ ('000', '@', 'fixed length control field', 'fixed length control field', 0, 1, '', 0, '', '', 'marc21_leader_holdings.pl', 0, 0, 'HLD', '', '', NULL), >+ ('001', '@', 'control field', 'control field', 0, 0, '', 0, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('003', '@', 'control field', 'control field', 0, 1, '', 0, '', '', 'marc21_orgcode.pl', 0, 0, 'HLD', '', '', NULL), >+ ('004', '@', 'control field', 'control field', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('005', '@', 'control field', 'control field', 0, 1, '', 0, '', '', 'marc21_field_005.pl', 0, 0, 'HLD', '', '', NULL), >+ ('006', '@', 'fixed length control field', 'fixed length control field', 0, 0, '', 0, '', '', 'marc21_field_006.pl', 0, 0, 'HLD', '', '', NULL), >+ ('007', '@', 'fixed length control field', 'fixed length control field', 0, 0, '', 0, '', '', 'marc21_field_007.pl', 0, 0, 'HLD', '', '', NULL), >+ ('008', '@', 'fixed length control field', 'fixed length control field', 0, 1, '', 0, '', '', 'marc21_field_008_holdings.pl', 0, 0, 'HLD', '', '', NULL), >+ ('010', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('010', 'a', 'LC control number', 'LC control number', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('010', 'b', 'NUCMC control number', 'NUCMC control number', 1, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('010', 'z', 'Canceled/invalid LC control number', 'Canceled/invalid LC control number', 1, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('014', '6', 'Linkage', 'Linkage', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('014', 'a', 'Linkage number', 'Linkage number', 0, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('014', 'b', 'Source of number', 'Source of number', 0, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('014', 'z', 'Canceled/invalid linkage number', 'Canceled/invalid linkage number', 1, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('016', '2', 'Source', 'Source', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('016', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('016', 'a', 'Record control number', 'Record control number', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('016', 'z', 'Canceled/invalid control number', 'Canceled/invalid control number', 1, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('017', '2', 'Source', 'Source', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('017', '6', 'Linkage', 'Linkage', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('017', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('017', 'a', 'Copyright or legal deposit number', 'Copyright or legal deposit number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('017', 'b', 'Assigning agency', 'Assigning agency', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('017', 'd', 'Date', 'Date', 0, 0, '', 0, '', '', NULL, 0, -6, 'HLD', '', '', NULL), >+ ('017', 'i', 'Display text', 'Display text', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('017', 'z', 'Canceled/invalid copyright or legal deposit number', 'Canceled/invalid copyright or legal deposit number', 1, 0, '', 0, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('020', '6', 'Linkage', 'Linkage', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('020', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('020', 'a', 'International Standard Book Number', 'International Standard Book Number', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('020', 'c', 'Terms of availability', 'Terms of availability', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('020', 'q', 'Qualifying information', 'Qualifying information', 1, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('020', 'z', 'Canceled/invalid ISBN', 'Canceled/invalid ISBN', 1, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('022', '2', 'Source', 'Source', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('022', '6', 'Linkage', 'Linkage', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('022', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('022', 'a', 'International Standard Serial Number', 'International Standard Serial Number', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('022', 'l', 'ISSN-L', 'ISSN-L', 0, 0, '', 0, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('022', 'm', 'Canceled ISSN-L', 'Canceled ISSN-L', 1, 0, '', 0, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('022', 'y', 'Incorrect ISSN', 'Incorrect ISSN', 1, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('022', 'z', 'Canceled ISSN', 'Canceled ISSN', 1, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('024', '2', 'Source of number or code', 'Source of number or code', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('024', '6', 'Linkage', 'Linkage', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('024', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('024', 'a', 'Standard number or code', 'Standard number or code', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('024', 'b', 'Additional codes following the standard number [OBSOLETE]', 'Additional codes following the standard number [OBSOLETE]', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('024', 'c', 'Terms of availability', 'Terms of availability', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('024', 'd', 'Additional codes following the standard number or code', 'Additional codes following the standard number or code', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('024', 'q', 'Qualifying information', 'Qualifying information', 1, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('024', 'z', 'Canceled/invalid standard number or code', 'Canceled/invalid standard number or code', 1, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('027', '6', 'Linkage', 'Linkage', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('027', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('027', 'a', 'Standard technical report number', 'Standard technical report number', 0, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('027', 'q', 'Qualifying information', 'Qualifying information', 1, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('027', 'z', 'Canceled/invalid number', 'Canceled/invalid number', 1, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('030', '6', 'Linkage', 'Linkage', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('030', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('030', 'a', 'CODEN', 'CODEN', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('030', 'z', 'Canceled/invalid CODEN', 'Canceled/invalid CODEN', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('035', '6', 'Linkage', 'Linkage', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('035', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('035', 'a', 'System control number', 'System control number', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('035', 'z', 'Canceled/invalid control number', 'Canceled/invalid control number', 1, 0, '', 0, '', '', '', 0, -1, 'HLD', '', '', NULL), >+ ('040', '6', 'Linkage', 'Linkage', 0, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('040', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 0, '', '', '', 0, -6, 'HLD', '', '', NULL), >+ ('040', 'a', 'Original cataloging agency', 'Original cataloging agency', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('040', 'b', 'Language of cataloging', 'Language of cataloging', 0, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('040', 'c', 'Transcribing agency', 'Transcribing agency', 0, 1, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('040', 'd', 'Modifying agency', 'Modifying agency', 1, 0, '', 0, '', '', '', 0, 0, 'HLD', '', '', NULL), >+ ('066', 'a', 'Primary G0 character set', 'Primary G0 character set', 0, 0, '', 0, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('066', 'b', 'Primary G1 character set', 'Primary G1 character set', 0, 0, '', 0, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('066', 'c', 'Alternate G0 or G1 character set', 'Alternate G0 or G1 character set', 1, 0, '', 0, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('337', '0', 'Authority record control number or standard number', 'Authority record control number or standard number', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('337', '1', 'Real World Object URI', 'Real World Object URI', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('337', '2', 'Source', 'Source', 0, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('337', '3', 'Materials specified', 'Materials specified', 0, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('337', '6', 'Linkage', 'Linkage', 0, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('337', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('337', 'a', 'Media type term', 'Media type term', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('337', 'b', 'Media type code', 'Media type code', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('338', '0', 'Authority record control number or standard number', 'Authority record control number or standard number', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('338', '1', 'Real World Object URI', 'Real World Object URI', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('338', '2', 'Source', 'Source', 0, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('338', '3', 'Materials specified', 'Materials specified', 0, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('338', '6', 'Linkage', 'Linkage', 0, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('338', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('338', 'a', 'Carrier type term', 'Carrier type term', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('338', 'b', 'Carrier type code', 'Carrier type code', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', 'a', 'File type', 'File type', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', '0', 'Authority record control number or standard number', 'Authority record control number or standard number', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', '1', 'Real World Object URI', 'Real World Object URI', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', '2', 'Source', 'Source', 0, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', '3', 'Materials specified', 'Materials specified', 0, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', '6', 'Linkage', 'Linkage', 0, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', 'b', 'Encoding format', 'Encoding format', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', 'c', 'File size', 'File size', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', 'd', 'Resolution', 'Resolution', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', 'e', 'Regional encoding', 'Regional encoding', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('347', 'f', 'Encoded bitrate', 'Encoded bitrate', 1, 0, '', 3, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', '2', 'Source of term', 'Source of term', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', '3', 'Materials specified', 'Materials specified', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', '5', 'Institution to which field applies', 'Institution to which field applies', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', '6', 'Linkage', 'Linkage', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', 'a', 'Terms governing access', 'Terms governing access', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', 'b', 'Jurisdiction', 'Jurisdiction', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', 'c', 'Physical access provisions', 'Physical access provisions', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', 'd', 'Authorized users', 'Authorized users', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', 'e', 'Authorization', 'Authorization', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', 'f', 'Standardized terminology for access restriction', 'Standardized terminology for access restriction', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', 'g', 'Availability date', 'Availability date', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', 'q', 'Supplying agency', 'Supplying agency', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('506', 'u', 'Uniform Resource Identifier', 'Uniform Resource Identifier', 1, 0, '', 5, '', '', '', 1, -6, 'HLD', '', '', NULL), >+ ('538', '3', 'Materials specified', 'Materials specified', 0, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('538', '5', 'Institution to which field applies', 'Institution to which field applies', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('538', '6', 'Linkage', 'Linkage', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('538', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('538', 'a', 'System details note', 'System details note', 0, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('538', 'i', 'Display text', 'Display text', 0, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('538', 'u', 'Uniform Resource Identifier', 'Uniform Resource Identifier', 1, 0, '', 5, '', '', '', 1, -1, 'HLD', '', '', NULL), >+ ('541', '3', 'Materials specified', 'Materials specified', 0, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('541', '5', 'Institution to which field applies', 'Institution to which field applies', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('541', '6', 'Linkage', 'Linkage', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('541', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('541', 'a', 'Source of acquisition', 'Source of acquisition', 0, 0, '', 5, '', '', '', NULL, 1, 'HLD', '', '', NULL), >+ ('541', 'b', 'Address', 'Address', 0, 0, '', 5, '', '', '', NULL, 1, 'HLD', '', '', NULL), >+ ('541', 'c', 'Method of acquisition', 'Method of acquisition', 0, 0, '', 5, '', '', '', NULL, 1, 'HLD', '', '', NULL), >+ ('541', 'd', 'Date of acquisition', 'Date of acquisition', 0, 0, '', 5, '', '', '', NULL, 1, 'HLD', '', '', NULL), >+ ('541', 'e', 'Accession number', 'Accession number', 0, 0, '', 5, '', '', '', NULL, 1, 'HLD', '', '', NULL), >+ ('541', 'f', 'Owner', 'Owner', 0, 0, '', 5, '', '', '', NULL, 1, 'HLD', '', '', NULL), >+ ('541', 'h', 'Purchase price', 'Purchase price', 0, 0, '', 5, '', '', '', NULL, 1, 'HLD', '', '', NULL), >+ ('541', 'n', 'Extent', 'Extent', 1, 0, '', 5, '', '', '', NULL, 1, 'HLD', '', '', NULL), >+ ('541', 'o', 'Type of unit', 'Type of unit', 1, 0, '', 5, '', '', '', NULL, 1, 'HLD', '', '', NULL), >+ ('561', '3', 'Materials specified', 'Materials specified', 0, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('561', '5', 'Institution to which field applies', 'Institution to which field applies', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('561', '6', 'Linkage', 'Linkage', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('561', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('561', 'a', 'History', 'History', 0, 0, '', 5, '', '', '', NULL, 6, 'HLD', '', '', NULL), >+ ('561', 'b', 'Time of collation [OBSOLETE]', 'Time of collation [OBSOLETE]', 0, 0, '', 5, '', '', '', NULL, 6, 'HLD', '', '', NULL), >+ ('561', 'u', 'Uniform Resource Identifier', 'Uniform Resource Identifier', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('562', '3', 'Materials specified', 'Materials specified', 0, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('562', '5', 'Institution to which field applies', 'Institution to which field applies', 0, 0, '', -1, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('562', '6', 'Linkage', 'Linkage', 0, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('562', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('562', 'a', 'Identifying markings', 'Identifying markings', 1, 0, '', 5, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('562', 'b', 'Copy identification', 'Copy identification', 1, 0, '', 5, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('562', 'c', 'Version identification', 'Version identification', 1, 0, '', 5, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('562', 'd', 'Presentation format', 'Presentation format', 1, 0, '', 5, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('562', 'e', 'Number of copies', 'Number of copies', 1, 0, '', 5, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('563', '3', 'Materials specified', 'Materials specified', 0, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('563', '5', 'Institution to which field applies', 'Institution to which field applies', 0, 0, '', -1, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('563', '6', 'Linkage', 'Linkage', 0, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('563', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('563', 'a', 'Binding note', 'Binding note', 0, 0, '', 5, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('563', 'u', 'Uniform Resource Identifier', 'Uniform Resource Identifier', 1, 0, '', 5, NULL, NULL, '', 1, -1, 'HLD', '', '', NULL), >+ ('583', '2', 'Source of term', 'Source of term', 0, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('583', '3', 'Materials specified', 'Materials specified', 0, 0, '', 5, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('583', '5', 'Institution to which field applies', 'Institution to which field applies', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('583', '6', 'Linkage', 'Linkage', 0, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('583', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 5, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('583', 'a', 'Action', 'Action', 0, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'b', 'Action identification', 'Action identification', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'c', 'Time/date of action', 'Time/date of action', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'd', 'Action interval', 'Action interval', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'e', 'Contingency for action', 'Contingency for action', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'f', 'Authorization', 'Authorization', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'h', 'Jurisdiction', 'Jurisdiction', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'i', 'Method of action', 'Method of action', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'j', 'Site of action', 'Site of action', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'k', 'Action agent', 'Action agent', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'l', 'Status', 'Status', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'n', 'Extent', 'Extent', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'o', 'Type of unit', 'Type of unit', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('583', 'u', 'Uniform Resource Identifier', 'Uniform Resource Identifier', 1, 0, '', 5, '', '', '', 1, -1, 'HLD', '', '', NULL), >+ ('583', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 5, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('583', 'z', 'Public note', 'Public note', 1, 0, '', 5, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('842', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('842', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('842', 'a', 'Textual physical form designator', 'Textual physical form designator', 0, 0, '', 8, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('843', '3', 'Materials specified', 'Materials specified', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('843', '5', 'Institution to which field applies', 'Institution to which field applies', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('843', '6', 'Linkage', 'Linkage', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('843', '7', 'Fixed-length data elements of reproduction', 'Fixed-length data elements of reproduction', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('843', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('843', 'a', 'Type of reproduction', 'Type of reproduction', 0, 0, '', 8, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('843', 'b', 'Place of reproduction', 'Place of reproduction', 1, 0, '', 8, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('843', 'c', 'Agency responsible for reproduction', 'Agency responsible for reproduction', 1, 0, '', 8, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('843', 'd', 'Date of reproduction', 'Date of reproduction', 0, 0, '', 8, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('843', 'e', 'Physical description of reproduction', 'Physical description of reproduction', 0, 0, '', 8, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('843', 'f', 'Series statement of reproduction', 'Series statement of reproduction', 1, 0, '', 8, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('843', 'm', 'Dates of publication and/or sequential designation of issues reproduced', 'Dates of publication and/or sequential designation of issues reproduced', 1, 0, '', 8, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('843', 'n', 'Note about reproduction', 'Note about reproduction', 1, 0, '', 8, NULL, NULL, '', NULL, -1, 'HLD', '', '', NULL), >+ ('844', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('844', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('844', 'a', 'Name of unit', 'Name of unit', 0, 0, '', 8, '', '', '', NULL, -1, 'HLD', '', '', NULL), >+ ('845', '2', 'Source of term', 'Source of term', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', '3', 'Materials specified', 'Materials specified', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', '5', 'Institution to which field applies', 'Institution to which field applies', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', '6', 'Linkage', 'Linkage', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', 'a', 'Terms governing use and reproduction', 'Terms governing use and reproduction', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', 'b', 'Jurisdiction', 'Jurisdiction', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', 'c', 'Authorization', 'Authorization', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', 'd', 'Authorized users', 'Authorized users', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', 'f', 'Use and reproduction rights', 'Use and reproduction rights', 1, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', 'g', 'Availability date', 'Availability date', 1, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', 'q', 'Supplying agency', 'Supplying agency', 0, 0, '', 8, NULL, NULL, '', NULL, -6, 'HLD', '', '', NULL), >+ ('845', 'u', 'Uniform Resource Identifier', 'Uniform Resource Identifier', 1, 0, '', 8, NULL, NULL, '', 1, -6, 'HLD', '', '', NULL), >+ ('852', '2', 'Source of classification or shelving scheme', 'Source of classification or shelving scheme', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('852', '3', 'Materials specified', 'Materials specified', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('852', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('852', '8', 'Sequence number', 'Sequence number', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('852', 'a', 'Location', 'Location', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'b', 'Sublocation or collection', 'Sublocation or collection', 1, 0, 'holdings.holdingbranch', 8, 'branches', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'c', 'Shelving location', 'Shelving location', 1, 0, 'holdings.location', 8, 'LOC', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'd', 'Former shelving location', 'Former shelving location', 1, 0, '', 8, '', '', '', NULL, 1, 'HLD', '', '', NULL), >+ ('852', 'e', 'Address', 'Address', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'f', 'Coded location qualifier', 'Coded location qualifier', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'g', 'Non-coded location qualifier', 'Non-coded location qualifier', 1, 0, 'holdings.ccode', 8, 'CCODE', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'h', 'Classification part', 'Classification part', 0, 0, 'holdings.callnumber', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'i', 'Item part', 'Item part', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'j', 'Shelving control number', 'Shelving control number', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'k', 'Call number prefix', 'Call number prefix', 1, 0, 'holdings.callnumber', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'l', 'Shelving form of title', 'Shelving form of title', 0, 0, 'holdings.callnumber', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'm', 'Call number suffix', 'Call number suffix', 1, 0, 'holdings.callnumber', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'n', 'Country code', 'Country code', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'p', 'Piece designation', 'Piece designation', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'q', 'Piece physical condition', 'Piece physical condition', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 's', 'Copyright article-fee code', 'Copyright article-fee code', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 't', 'Copy number', 'Copy number', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'u', 'Uniform Resource Identifier', 'Uniform Resource Identifier', 1, 0, '', 8, '', '', '', 1, 4, 'HLD', '', '', NULL), >+ ('852', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('852', 'z', 'Public note', 'Public note', 1, 0, 'holdings.public_note', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', '3', 'Materials specified', 'Materials specified', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('853', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('853', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('853', 'a', 'First level of enumeration', 'First level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'b', 'Second level of enumeration', 'Second level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'c', 'Third level of enumeration', 'Third level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'd', 'Fourth level of enumeration', 'Fourth level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'e', 'Fifth level of enumeration', 'Fifth level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'f', 'Sixth level of enumeration', 'Sixth level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'g', 'Alternative numbering scheme, first level of enumeration', 'Alternative numbering scheme, first level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'h', 'Alternative numbering scheme, second level of enumeration', 'Alternative numbering scheme, second level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'i', 'First level of chronology', 'First level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'j', 'Second level of chronology', 'Second level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'k', 'Third level of chronology', 'Third level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'l', 'Fourth level of chronology', 'Fourth level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'm', 'Alternative numbering scheme, chronology', 'Alternative numbering scheme, chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'n', 'Pattern note', 'Pattern note', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'p', 'Number of pieces per issuance', 'Number of pieces per issuance', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 't', 'Copy', 'Copy', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'u', 'Bibliographic units per next higher level', 'Bibliographic units per next higher level', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'v', 'Numbering continuity', 'Numbering continuity', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'w', 'Frequency', 'Frequency', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'x', 'Calendar change', 'Calendar change', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'y', 'Regularity pattern', 'Regularity pattern', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('853', 'z', 'Numbering scheme', 'Numbering scheme', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', '3', 'Materials specified', 'Materials specified', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('854', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('854', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('854', 'a', 'First level of enumeration', 'First level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'b', 'Second level of enumeration', 'Second level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'c', 'Third level of enumeration', 'Third level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'd', 'Fourth level of enumeration', 'Fourth level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'e', 'Fifth level of enumeration', 'Fifth level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'f', 'Sixth level of enumeration', 'Sixth level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'g', 'Alternative numbering scheme, first level of enumeration', 'Alternative numbering scheme, first level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'h', 'Alternative numbering scheme, second level of enumeration', 'Alternative numbering scheme, second level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'i', 'First level of chronology', 'First level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'j', 'Second level of chronology', 'Second level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'k', 'Third level of chronology', 'Third level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'l', 'Fourth level of chronology', 'Fourth level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'm', 'Alternative numbering scheme, chronology', 'Alternative numbering scheme, chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'n', 'Pattern note', 'Pattern note', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'p', 'Number of pieces per issuance', 'Number of pieces per issuance', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 't', 'Copy', 'Copy', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'u', 'Bibliographic units per next higher level', 'Bibliographic units per next higher level', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'v', 'Numbering continuity', 'Numbering continuity', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'w', 'Frequency', 'Frequency', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'x', 'Calendar change', 'Calendar change', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'y', 'Regularity pattern', 'Regularity pattern', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('854', 'z', 'Numbering scheme', 'Numbering scheme', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', '3', 'Materials specified', 'Materials specified', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('855', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('855', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('855', 'a', 'First level of enumeration', 'First level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'b', 'Second level of enumeration', 'Second level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'c', 'Third level of enumeration', 'Third level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'd', 'Fourth level of enumeration', 'Fourth level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'e', 'Fifth level of enumeration', 'Fifth level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'f', 'Sixth level of enumeration', 'Sixth level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'g', 'Alternative numbering scheme, first level of enumeration', 'Alternative numbering scheme, first level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'h', 'Alternative numbering scheme, second level of enumeration', 'Alternative numbering scheme, second level of enumeration', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'i', 'First level of chronology', 'First level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'j', 'Second level of chronology', 'Second level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'k', 'Third level of chronology', 'Third level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'l', 'Fourth level of chronology', 'Fourth level of chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'm', 'Alternative numbering scheme, chronology', 'Alternative numbering scheme, chronology', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'n', 'Pattern note', 'Pattern note', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'p', 'Number of pieces per issuance', 'Number of pieces per issuance', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 't', 'Copy', 'Copy', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'u', 'Bibliographic units per next higher level', 'Bibliographic units per next higher level', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'v', 'Numbering continuity', 'Numbering continuity', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'w', 'Frequency', 'Frequency', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'x', 'Calendar change', 'Calendar change', 0, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'y', 'Regularity pattern', 'Regularity pattern', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('855', 'z', 'Numbering scheme', 'Numbering scheme', 1, 0, '', 8, '', '', '', NULL, 4, 'HLD', '', '', NULL), >+ ('856', '2', 'Access method', 'Access method', 0, 0, '', 8, '', '', '', 0, 5, 'HLD', '', '', NULL), >+ ('856', '3', 'Materials specified', 'Materials specified', 0, 0, '', 8, '', '', '', 0, 5, 'HLD', '', '', NULL), >+ ('856', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', 0, 5, 'HLD', '', '', NULL), >+ ('856', '7', 'Access status', 'Access status', 0, 0, '', 8, '', '', '', 0, 5, 'HLD', '', '', NULL), >+ ('856', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, '', '', '', 0, 5, 'HLD', '', '', NULL), >+ ('856', 'a', 'Host name', 'Host name', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'b', 'Access number', 'Access number', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'c', 'Compression information', 'Compression information', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'd', 'Path', 'Path', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'f', 'Electronic name', 'Electronic name', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'h', 'Processor of request', 'Processor of request', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'i', 'Instruction', 'Instruction', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'j', 'Bits per second', 'Bits per second', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'k', 'Password', 'Password', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'l', 'Logon', 'Logon', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'm', 'Contact for access assistance', 'Contact for access assistance', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'n', 'Name of location of host', 'Name of location of host', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'o', 'Operating system', 'Operating system', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'p', 'Port', 'Port', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'q', 'Electronic format type', 'Electronic format type', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'r', 'Settings', 'Settings', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 's', 'File size', 'File size', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 't', 'Terminal emulation', 'Terminal emulation', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'u', 'Uniform Resource Identifier', 'Uniform Resource Identifier', 1, 0, '', 8, '', '', '', 1, 4, 'HLD', '', '', NULL), >+ ('856', 'v', 'Hours access method available', 'Hours access method available', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'w', 'Record control number', 'Record control number', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'y', 'Link text', 'Link text', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('856', 'z', 'Public note', 'Public note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('863', '8', 'Field link and sequence number', 'Field link and sequence number', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('863', 'a', 'First level of enumeration', 'First level of enumeration', 0, 0, 'holdings.summary', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'b', 'Second level of enumeration', 'Second level of enumeration', 0, 0, 'holdings.summary', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'c', 'Third level of enumeration', 'Third level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'd', 'Fourth level of enumeration', 'Fourth level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'e', 'Fifth level of enumeration', 'Fifth level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'f', 'Sixth level of enumeration', 'Sixth level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'g', 'Alternative numbering scheme, first level of enumeration', 'Alternative numbering scheme, first level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'h', 'Alternative numbering scheme, second level of enumeration', 'Alternative numbering scheme, second level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'i', 'First level of chronology', 'First level of chronology', 0, 0, 'holdings.summary', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'j', 'Second level of chronology', 'Second level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'k', 'Third level of chronology', 'Third level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'l', 'Fourth level of chronology', 'Fourth level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'm', 'Alternative numbering scheme, chronology', 'Alternative numbering scheme, chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'n', 'Converted Gregorian year', 'Converted Gregorian year', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'o', 'Type of unit', 'Type of unit', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'p', 'Piece designation', 'Piece designation', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'q', 'Piece physical condition', 'Piece physical condition', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 's', 'Copyright article-fee code', 'Copyright article-fee code', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 't', 'Copy number', 'Copy number', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'v', 'Issuing date', 'Issuing date', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'w', 'Break indicator', 'Break indicator', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('863', 'z', 'Public note', 'Public note', 1, 0, 'holdings.summary', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('864', '8', 'Field link and sequence number', 'Field link and sequence number', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('864', 'a', 'First level of enumeration', 'First level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'b', 'Second level of enumeration', 'Second level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'c', 'Third level of enumeration', 'Third level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'd', 'Fourth level of enumeration', 'Fourth level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'e', 'Fifth level of enumeration', 'Fifth level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'f', 'Sixth level of enumeration', 'Sixth level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'g', 'Alternative numbering scheme, first level of enumeration', 'Alternative numbering scheme, first level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'h', 'Alternative numbering scheme, second level of enumeration', 'Alternative numbering scheme, second level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'i', 'First level of chronology', 'First level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'j', 'Second level of chronology', 'Second level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'k', 'Third level of chronology', 'Third level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'l', 'Fourth level of chronology', 'Fourth level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'm', 'Alternative numbering scheme, chronology', 'Alternative numbering scheme, chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'n', 'Converted Gregorian year', 'Converted Gregorian year', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'o', 'Type of unit', 'Type of unit', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'p', 'Piece designation', 'Piece designation', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'q', 'Piece physical condition', 'Piece physical condition', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 's', 'Copyright article-fee code', 'Copyright article-fee code', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 't', 'Copy number', 'Copy number', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'v', 'Issuing date', 'Issuing date', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'w', 'Break indicator', 'Break indicator', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('864', 'z', 'Public note', 'Public note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('865', '8', 'Field link and sequence number', 'Field link and sequence number', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('865', 'a', 'First level of enumeration', 'First level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'b', 'Second level of enumeration', 'Second level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'c', 'Third level of enumeration', 'Third level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'd', 'Fourth level of enumeration', 'Fourth level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'e', 'Fifth level of enumeration', 'Fifth level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'f', 'Sixth level of enumeration', 'Sixth level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'g', 'Alternative numbering scheme, first level of enumeration', 'Alternative numbering scheme, first level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'h', 'Alternative numbering scheme, second level of enumeration', 'Alternative numbering scheme, second level of enumeration', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'i', 'First level of chronology', 'First level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'j', 'Second level of chronology', 'Second level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'k', 'Third level of chronology', 'Third level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'l', 'Fourth level of chronology', 'Fourth level of chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'm', 'Alternative numbering scheme, chronology', 'Alternative numbering scheme, chronology', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'n', 'Converted Gregorian year', 'Converted Gregorian year', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'o', 'Type of unit', 'Type of unit', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'p', 'Piece designation', 'Piece designation', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'q', 'Piece physical condition', 'Piece physical condition', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 's', 'Copyright article-fee code', 'Copyright article-fee code', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 't', 'Copy number', 'Copy number', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'v', 'Issuing date', 'Issuing date', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'w', 'Break indicator', 'Break indicator', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('865', 'z', 'Public note', 'Public note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('866', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('866', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('866', 'a', 'Textual string', 'Textual string', 0, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('866', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('866', 'z', 'Public note', 'Public note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('867', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('867', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('867', 'a', 'Textual string', 'Textual string', 0, 0, 'holdings.supplements', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('867', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('867', 'z', 'Public note', 'Public note', 1, 0, 'holdings.supplements', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('868', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('868', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('868', 'a', 'Textual string', 'Textual string', 0, 0, 'holdings.indexes', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('868', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('868', 'z', 'Public note', 'Public note', 1, 0, 'holdings.indexes', 8, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('876', '3', 'Materials specified', 'Materials specified', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', '8', 'Sequence number', 'Sequence number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'a', 'Internal item number', 'Internal item number', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'b', 'Invalid or canceled internal item number', 'Invalid or canceled internal item number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'c', 'Cost', 'Cost', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'd', 'Date acquired', 'Date acquired', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'e', 'Source of acquisition', 'Source of acquisition', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'h', 'Use restrictions', 'Use restrictions', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'j', 'Item status', 'Item status', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'l', 'Temporary location', 'Temporary location', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'p', 'Piece designation', 'Piece designation', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'r', 'Invalid or canceled piece designation', 'Invalid or canceled piece designation', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 't', 'Copy number', 'Copy number', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('876', 'z', 'Public note', 'Public note', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', '3', 'Materials specified', 'Materials specified', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', '8', 'Sequence number', 'Sequence number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'a', 'Internal item number', 'Internal item number', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'b', 'Invalid or canceled internal item number', 'Invalid or canceled internal item number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'c', 'Cost', 'Cost', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'd', 'Date acquired', 'Date acquired', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'e', 'Source of acquisition', 'Source of acquisition', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'h', 'Use restrictions', 'Use restrictions', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'j', 'Item status', 'Item status', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'l', 'Temporary location', 'Temporary location', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'p', 'Piece designation', 'Piece designation', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'r', 'Invalid or canceled piece designation', 'Invalid or canceled piece designation', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 't', 'Copy number', 'Copy number', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('877', 'z', 'Public note', 'Public note', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', '3', 'Materials specified', 'Materials specified', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', '8', 'Sequence number', 'Sequence number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'a', 'Internal item number', 'Internal item number', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'b', 'Invalid or canceled internal item number', 'Invalid or canceled internal item number', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'c', 'Cost', 'Cost', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'd', 'Date acquired', 'Date acquired', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'e', 'Source of acquisition', 'Source of acquisition', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'h', 'Use restrictions', 'Use restrictions', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'j', 'Item status', 'Item status', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'l', 'Temporary location', 'Temporary location', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'p', 'Piece designation', 'Piece designation', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'r', 'Invalid or canceled piece designation', 'Invalid or canceled piece designation', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 't', 'Copy number', 'Copy number', 0, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'x', 'Nonpublic note', 'Nonpublic note', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('878', 'z', 'Public note', 'Public note', 1, 0, '', 8, '', '', '', NULL, 5, 'HLD', '', '', NULL), >+ ('880', '2', '2', '2', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', '3', '3', '3', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', '4', '4', '4', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', '5', '5', '5', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', '6', 'Linkage', 'Linkage', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', '7', '7', '7', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', '8', '8', '8', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', '9', '9', '9', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'a', 'a', 'a', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'b', 'b', 'b', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'c', 'c', 'c', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'd', 'd', 'd', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'e', 'e', 'e', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'f', 'f', 'f', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'g', 'g', 'g', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'h', 'h', 'h', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'i', 'i', 'i', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'j', 'j', 'j', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'k', 'k', 'k', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'l', 'l', 'l', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'm', 'm', 'm', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'n', 'n', 'n', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'o', 'o', 'o', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'p', 'p', 'p', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'q', 'q', 'q', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'r', 'r', 'r', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 's', 's', 's', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 't', 't', 't', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'u', 'u', 'u', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'v', 'v', 'v', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'w', 'w', 'w', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'x', 'x', 'x', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'y', 'y', 'y', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('880', 'z', 'z', 'z', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('883', '0', 'Authority record control number or standard number', 'Authority record control number or standard number', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('883', '1', 'Real World Object URI', 'Real World Object URI', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('883', '8', 'Field link and sequence number', 'Field link and sequence number', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('883', 'a', 'Generation process', 'Generation process', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('883', 'c', 'Confidence value', 'Confidence value', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('883', 'd', 'Generation date', 'Generation date', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('883', 'q', 'Generation agency', 'Generation agency', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('883', 'x', 'Validity end date', 'Validity end date', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('883', 'u', 'Uniform Resource Identifier', 'Uniform Resource Identifier', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('883', 'w', 'Bibliographic record control number', 'Bibliographic record control number', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('884', 'a', 'Conversion process', 'Conversion process', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('884', 'g', 'Conversion date', 'Conversion date', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('884', 'k', 'Identifier of source metadata', 'Identifier of source metadata', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('884', 'q', 'Conversion agency', 'Conversion agency', 0, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('884', 'u', 'Uniform Resource Identifier', 'Uniform Resource Identifier', 1, 0, '', 8, '', '', '', NULL, -6, 'HLD', '', '', NULL), >+ ('942', 'n', 'Suppress in OPAC', 'Suppress in OPAC', 0, 0, 'holdings.suppress', 9, '', '', '', 0, 4, 'HLD', '', '', NULL), >+ ('999', 'c', 'Koha biblionumber', 'Koha biblionumber', 0, 0, 'biblio.biblionumber', -1, NULL, NULL, '', NULL, -5, 'HLD', '', '', NULL), >+ ('999', 'e', 'Koha holding_id', 'Koha holding_id', 0, 0, 'holdings.holding_id', -1, NULL, NULL, '', NULL, -5, 'HLD', '', '', NULL); >+ }); >+ $dbh->do("UPDATE marc_subfield_structure SET maxlength=24 WHERE frameworkcode='HLD' AND tagfield='000'"); >+ $dbh->do("UPDATE marc_subfield_structure SET maxlength=40 WHERE tagfield='008'"); >+ } >+ >+ # Always end with this (adjust the bug info) >+ SetVersion( $DBversion ); >+ print "Upgrade to $DBversion done (Bug 20447 - Add holdings tables)\n"; >+} >diff --git a/installer/data/mysql/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.yml b/installer/data/mysql/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.yml >index 642b9696d1..fa6e22cac6 100644 >--- a/installer/data/mysql/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.yml >+++ b/installer/data/mysql/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.yml >@@ -25,7 +25,7 @@ > # ************************************************************* > > description: >- - "MARC21 Default and Acquisitions bibliographic frameworks." >+ - "MARC21 Default and Acquisitions bibliographic frameworks and Holdings framework." > > tables: > - marc_tag_structure: >@@ -725,6 +725,24 @@ tables: > defaultvalue: > > - tagfield: "952" >+ tagsubfield: "k" >+ liblibrarian: "Holdings record" >+ libopac: "Holdings record" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: items.holding_id >+ tab: 10 >+ authorised_value: holdings >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "952" > tagsubfield: "l" > liblibrarian: "Total Checkouts" > libopac: "Total Checkouts" >@@ -78181,36 +78199,10000 @@ tables: > - frameworkcode: "ACQ" > frameworktext: "Acquisition framework" > >-sql_statements: >- - "UPDATE marc_subfield_structure SET maxlength=24 WHERE tagfield='000';" >- - "UPDATE marc_subfield_structure SET maxlength=40 WHERE tagfield='008';" >+# Holdings framework >+ - biblio_framework: >+ translatable: [ frameworktext ] >+ multiline: [] >+ rows: >+ - frameworkcode: "HLD" >+ frameworktext: "Default holdings framework" > >- # Create the ACQ framework based on the default framework, fields 952 only >- - "INSERT INTO marc_tag_structure(tagfield, liblibrarian, libopac, repeatable, mandatory, authorised_value, frameworkcode) >- SELECT tagfield, liblibrarian, libopac, repeatable, mandatory, authorised_value, 'ACQ' FROM marc_tag_structure WHERE tagfield='952' AND frameworkcode='';" >+ - marc_tag_structure: >+ translatable: [ liblibrarian, libopac ] >+ multiline: [] >+ rows: >+ - tagfield: "000" >+ liblibrarian: "LEADER" >+ libopac: "LEADER" >+ repeatable: 0 >+ mandatory: 1 >+ authorised_value: "" >+ frameworkcode: "HLD" > >- - "INSERT INTO marc_subfield_structure(tagfield, tagsubfield, liblibrarian, libopac, repeatable, mandatory, kohafield, tab, authorised_value, authtypecode, value_builder, isurl, hidden, frameworkcode, seealso, link, defaultvalue, maxlength) >- SELECT tagfield, tagsubfield, liblibrarian, libopac, repeatable, mandatory, kohafield, tab, authorised_value, authtypecode, value_builder, isurl, hidden, 'ACQ', seealso, link, defaultvalue, maxlength FROM marc_subfield_structure WHERE tagfield='952' AND frameworkcode='';" >+ - tagfield: "001" >+ liblibrarian: "CONTROL NUMBER" >+ libopac: "CONTROL NUMBER" >+ repeatable: 0 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" > >- - "INSERT INTO marc_tag_structure(tagfield, liblibrarian, libopac, repeatable, mandatory, authorised_value, frameworkcode) >- SELECT tagfield, liblibrarian, libopac, repeatable, mandatory, authorised_value, 'ACQ' >- FROM marc_tag_structure >- WHERE frameworkcode='' AND tagfield IN ( >- SELECT tagfield >- FROM marc_subfield_structure >- WHERE ( >- kohafield='biblio.title' >- OR kohafield='biblio.author' >- OR kohafield='biblioitems.publishercode' >- OR kohafield='biblioitems.editionstatement' >- OR kohafield='biblio.copyrightdate' >- OR kohafield='biblioitems.isbn' >- OR kohafield='biblio.seriestitle' >- ) AND frameworkcode='' >- );" >+ - tagfield: "003" >+ liblibrarian: "CONTROL NUMBER IDENTIFIER" >+ libopac: "CONTROL NUMBER IDENTIFIER" >+ repeatable: 0 >+ mandatory: 1 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "004" >+ liblibrarian: "CONTROL NUMBER FOR RELATED BIBLIOGRAPHIC RECORD" >+ libopac: "CONTROL NUMBER FOR RELATED BIBLIOGRAPHIC RECORD" >+ repeatable: 0 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "005" >+ liblibrarian: "DATE AND TIME OF LATEST TRANSACTION" >+ libopac: "DATE AND TIME OF LATEST TRANSACTION" >+ repeatable: 0 >+ mandatory: 1 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "006" >+ liblibrarian: "FIXED-LENGTH DATA ELEMENTS--ADDITIONAL MATERIAL CHARACTERISTICS" >+ libopac: "FIXED-LENGTH DATA ELEMENTS--ADDITIONAL MATERIAL CHARACTERISTICS" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "007" >+ liblibrarian: "PHYSICAL DESCRIPTION FIXED FIELD--GENERAL INFORMATION" >+ libopac: "PHYSICAL DESCRIPTION FIXED FIELD--GENERAL INFORMATION" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "008" >+ liblibrarian: "FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION" >+ libopac: "FIXED-LENGTH DATA ELEMENTS--GENERAL INFORMATION" >+ repeatable: 0 >+ mandatory: 1 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "010" >+ liblibrarian: "LIBRARY OF CONGRESS CONTROL NUMBER" >+ libopac: "LIBRARY OF CONGRESS CONTROL NUMBER" >+ repeatable: 0 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "014" >+ liblibrarian: "LINKAGE NUMBER" >+ libopac: "LINKAGE NUMBER" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "016" >+ liblibrarian: "NATIONAL BIBLIOGRAPHIC AGENCY CONTROL NUMBER" >+ libopac: "NATIONAL BIBLIOGRAPHIC AGENCY CONTROL NUMBER" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "017" >+ liblibrarian: "COPYRIGHT OR LEGAL DEPOSIT NUMBER" >+ libopac: "COPYRIGHT OR LEGAL DEPOSIT NUMBER" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "020" >+ liblibrarian: "INTERNATIONAL STANDARD BOOK NUMBER" >+ libopac: "INTERNATIONAL STANDARD BOOK NUMBER" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "022" >+ liblibrarian: "INTERNATIONAL STANDARD SERIAL NUMBER" >+ libopac: "INTERNATIONAL STANDARD SERIAL NUMBER" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "024" >+ liblibrarian: "OTHER STANDARD IDENTIFIER" >+ libopac: "OTHER STANDARD IDENTIFIER" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "027" >+ liblibrarian: "STANDARD TECHNICAL REPORT NUMBER" >+ libopac: "STANDARD TECHNICAL REPORT NUMBER" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "030" >+ liblibrarian: "CODEN DESIGNATION" >+ libopac: "CODEN DESIGNATION" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "035" >+ liblibrarian: "SYSTEM CONTROL NUMBER" >+ libopac: "SYSTEM CONTROL NUMBER" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "040" >+ liblibrarian: "CATALOGING SOURCE" >+ libopac: "CATALOGING SOURCE" >+ repeatable: 0 >+ mandatory: 1 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "066" >+ liblibrarian: "CHARACTER SETS PRESENT" >+ libopac: "CHARACTER SETS PRESENT" >+ repeatable: 0 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "337" >+ liblibrarian: "MEDIA TYPE" >+ libopac: "MEDIA TYPE" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "338" >+ liblibrarian: "CARRIER TYPE" >+ libopac: "CARRIER TYPE" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "347" >+ liblibrarian: "DIGITAL FILE CHARACTERISTICS" >+ libopac: "DIGITAL FILE CHARACTERISTICS" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "506" >+ liblibrarian: "RESTRICTIONS ON ACCESS NOTE" >+ libopac: "RESTRICTIONS ON ACCESS NOTE" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "538" >+ liblibrarian: "SYSTEM DETAILS NOTE" >+ libopac: "SYSTEM DETAILS NOTE" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "541" >+ liblibrarian: "IMMEDIATE SOURCE OF ACQUISITION NOTE" >+ libopac: "IMMEDIATE SOURCE OF ACQUISITION NOTE" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "561" >+ liblibrarian: "OWNERSHIP AND CUSTODIAL HISTORY" >+ libopac: "OWNERSHIP AND CUSTODIAL HISTORY" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "562" >+ liblibrarian: "COPY AND VERSION IDENTIFICATION NOTE" >+ libopac: "COPY AND VERSION IDENTIFICATION NOTE" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "563" >+ liblibrarian: "BINDING INFORMATION" >+ libopac: "BINDING INFORMATION" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "583" >+ liblibrarian: "ACTION NOTE" >+ libopac: "ACTION NOTE" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "842" >+ liblibrarian: "TEXTUAL PHYSICAL FORM DESIGNATOR" >+ libopac: "TEXTUAL PHYSICAL FORM DESIGNATOR" >+ repeatable: 0 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "843" >+ liblibrarian: "REPRODUCTION NOTE" >+ libopac: "REPRODUCTION NOTE" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "844" >+ liblibrarian: "NAME OF UNIT" >+ libopac: "NAME OF UNIT" >+ repeatable: 0 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "845" >+ liblibrarian: "TERMS GOVERNING USE AND REPRODUCTION NOTE" >+ libopac: "TERMS GOVERNING USE AND REPRODUCTION NOTE" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "852" >+ liblibrarian: "LOCATION" >+ libopac: "LOCATION" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "853" >+ liblibrarian: "CAPTIONS AND PATTERN--BASIC BIBLIOGRAPHIC UNIT" >+ libopac: "CAPTIONS AND PATTERN--BASIC BIBLIOGRAPHIC UNIT" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "854" >+ liblibrarian: "CAPTIONS AND PATTERN--SUPPLEMENTARY MATERIAL" >+ libopac: "CAPTIONS AND PATTERN--SUPPLEMENTARY MATERIAL" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "855" >+ liblibrarian: "CAPTIONS AND PATTERN--INDEXES" >+ libopac: "CAPTIONS AND PATTERN--INDEXES" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "856" >+ liblibrarian: "ELECTRONIC LOCATION AND ACCESS" >+ libopac: "ELECTRONIC LOCATION AND ACCESS" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "863" >+ liblibrarian: "ENUMERATION AND CHRONOLOGY--BASIC BIBLIOGRAPHIC UNIT" >+ libopac: "ENUMERATION AND CHRONOLOGY--BASIC BIBLIOGRAPHIC UNIT" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "864" >+ liblibrarian: "ENUMERATION AND CHRONOLOGY--SUPPLEMENTARY MATERIAL" >+ libopac: "ENUMERATION AND CHRONOLOGY--SUPPLEMENTARY MATERIAL" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "865" >+ liblibrarian: "ENUMERATION AND CHRONOLOGY--INDEXES" >+ libopac: "ENUMERATION AND CHRONOLOGY--INDEXES" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "866" >+ liblibrarian: "TEXTUAL HOLDINGS--BASIC BIBLIOGRAPHIC UNIT" >+ libopac: "TEXTUAL HOLDINGS--BASIC BIBLIOGRAPHIC UNIT" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "867" >+ liblibrarian: "TEXTUAL HOLDINGS--SUPPLEMENTARY MATERIAL" >+ libopac: "TEXTUAL HOLDINGS--SUPPLEMENTARY MATERIAL" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "868" >+ liblibrarian: "TEXTUAL HOLDINGS--INDEXES" >+ libopac: "TEXTUAL HOLDINGS--INDEXES" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "876" >+ liblibrarian: "ITEM INFORMATION--BASIC BIBLIOGRAPHIC UNIT" >+ libopac: "ITEM INFORMATION--BASIC BIBLIOGRAPHIC UNIT" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "877" >+ liblibrarian: "ITEM INFORMATION--SUPPLEMENTARY MATERIAL" >+ libopac: "ITEM INFORMATION--SUPPLEMENTARY MATERIAL" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "878" >+ liblibrarian: "ITEM INFORMATION--INDEXES" >+ libopac: "ITEM INFORMATION--INDEXES" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "880" >+ liblibrarian: "ALTERNATE GRAPHIC REPRESENTATION" >+ libopac: "ALTERNATE GRAPHIC REPRESENTATION" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "883" >+ liblibrarian: "MACHINE-GENERATED METADATA PROVENANCE" >+ libopac: "MACHINE-GENERATED METADATA PROVENANCE" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "884" >+ liblibrarian: "DESCRIPTION CONVERSION INFORMATION" >+ libopac: "DESCRIPTION CONVERSION INFORMATION" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: >+ frameworkcode: "HLD" >+ >+ - tagfield: "942" >+ liblibrarian: "ADDED ENTRY ELEMENTS (KOHA)" >+ libopac: "ADDED ENTRY ELEMENTS (KOHA)" >+ repeatable: 0 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - tagfield: "999" >+ liblibrarian: "SYSTEM CONTROL NUMBERS (KOHA)" >+ libopac: "SYSTEM CONTROL NUMBERS (KOHA)" >+ repeatable: 1 >+ mandatory: 0 >+ authorised_value: "" >+ frameworkcode: "HLD" >+ >+ - marc_subfield_structure: >+ translatable: [ liblibrarian, libopac ] >+ multiline: [] >+ rows: >+ - tagfield: "000" >+ tagsubfield: "@" >+ liblibrarian: "fixed length control field" >+ libopac: "fixed length control field" >+ repeatable: 0 >+ mandatory: 1 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: marc21_leader_holdings.pl >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "001" >+ tagsubfield: "@" >+ liblibrarian: "control field" >+ libopac: "control field" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "003" >+ tagsubfield: "@" >+ liblibrarian: "control field" >+ libopac: "control field" >+ repeatable: 0 >+ mandatory: 1 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: marc21_orgcode.pl >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "004" >+ tagsubfield: "@" >+ liblibrarian: "control field" >+ libopac: "control field" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "005" >+ tagsubfield: "@" >+ liblibrarian: "control field" >+ libopac: "control field" >+ repeatable: 0 >+ mandatory: 1 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: marc21_field_005.pl >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "006" >+ tagsubfield: "@" >+ liblibrarian: "fixed length control field" >+ libopac: "fixed length control field" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: marc21_field_006.pl >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "007" >+ tagsubfield: "@" >+ liblibrarian: "fixed length control field" >+ libopac: "fixed length control field" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: marc21_field_007.pl >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "008" >+ tagsubfield: "@" >+ liblibrarian: "fixed length control field" >+ libopac: "fixed length control field" >+ repeatable: 0 >+ mandatory: 1 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: marc21_field_008_holdings.pl >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "010" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "010" >+ tagsubfield: "a" >+ liblibrarian: "LC control number" >+ libopac: "LC control number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "010" >+ tagsubfield: "b" >+ liblibrarian: "NUCMC control number" >+ libopac: "NUCMC control number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "010" >+ tagsubfield: "z" >+ liblibrarian: "Canceled/invalid LC control number" >+ libopac: "Canceled/invalid LC control number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "014" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "014" >+ tagsubfield: "a" >+ liblibrarian: "Linkage number" >+ libopac: "Linkage number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "014" >+ tagsubfield: "b" >+ liblibrarian: "Source of number" >+ libopac: "Source of number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "014" >+ tagsubfield: "z" >+ liblibrarian: "Canceled/invalid linkage number" >+ libopac: "Canceled/invalid linkage number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "016" >+ tagsubfield: "2" >+ liblibrarian: "Source" >+ libopac: "Source" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "016" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "016" >+ tagsubfield: "a" >+ liblibrarian: "Record control number" >+ libopac: "Record control number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "016" >+ tagsubfield: "z" >+ liblibrarian: "Canceled/invalid control number" >+ libopac: "Canceled/invalid control number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "017" >+ tagsubfield: "2" >+ liblibrarian: "Source" >+ libopac: "Source" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "017" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "017" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "017" >+ tagsubfield: "a" >+ liblibrarian: "Copyright or legal deposit number" >+ libopac: "Copyright or legal deposit number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "017" >+ tagsubfield: "b" >+ liblibrarian: "Assigning agency" >+ libopac: "Assigning agency" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "017" >+ tagsubfield: "d" >+ liblibrarian: "Date" >+ libopac: "Date" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "017" >+ tagsubfield: "i" >+ liblibrarian: "Display text" >+ libopac: "Display text" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "017" >+ tagsubfield: "z" >+ liblibrarian: "Canceled/invalid copyright or legal deposit number" >+ libopac: "Canceled/invalid copyright or legal deposit number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "020" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "020" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "020" >+ tagsubfield: "a" >+ liblibrarian: "International Standard Book Number" >+ libopac: "International Standard Book Number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "020" >+ tagsubfield: "c" >+ liblibrarian: "Terms of availability" >+ libopac: "Terms of availability" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "020" >+ tagsubfield: "q" >+ liblibrarian: "Qualifying information" >+ libopac: "Qualifying information" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "020" >+ tagsubfield: "z" >+ liblibrarian: "Canceled/invalid ISBN" >+ libopac: "Canceled/invalid ISBN" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "022" >+ tagsubfield: "2" >+ liblibrarian: "Source" >+ libopac: "Source" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "022" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "022" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "022" >+ tagsubfield: "a" >+ liblibrarian: "International Standard Serial Number" >+ libopac: "International Standard Serial Number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "022" >+ tagsubfield: "l" >+ liblibrarian: "ISSN-L" >+ libopac: "ISSN-L" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "022" >+ tagsubfield: "m" >+ liblibrarian: "Canceled ISSN-L" >+ libopac: "Canceled ISSN-L" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "022" >+ tagsubfield: "y" >+ liblibrarian: "Incorrect ISSN" >+ libopac: "Incorrect ISSN" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "022" >+ tagsubfield: "z" >+ liblibrarian: "Canceled ISSN" >+ libopac: "Canceled ISSN" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "024" >+ tagsubfield: "2" >+ liblibrarian: "Source of number or code" >+ libopac: "Source of number or code" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "024" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "024" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "024" >+ tagsubfield: "a" >+ liblibrarian: "Standard number or code" >+ libopac: "Standard number or code" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "024" >+ tagsubfield: "b" >+ liblibrarian: "Additional codes following the standard number [OBSOLETE]" >+ libopac: "Additional codes following the standard number [OBSOLETE]" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "024" >+ tagsubfield: "c" >+ liblibrarian: "Terms of availability" >+ libopac: "Terms of availability" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "024" >+ tagsubfield: "d" >+ liblibrarian: "Additional codes following the standard number or code" >+ libopac: "Additional codes following the standard number or code" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "024" >+ tagsubfield: "q" >+ liblibrarian: "Qualifying information" >+ libopac: "Qualifying information" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "024" >+ tagsubfield: "z" >+ liblibrarian: "Canceled/invalid standard number or code" >+ libopac: "Canceled/invalid standard number or code" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "027" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "027" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "027" >+ tagsubfield: "a" >+ liblibrarian: "Standard technical report number" >+ libopac: "Standard technical report number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "027" >+ tagsubfield: "q" >+ liblibrarian: "Qualifying information" >+ libopac: "Qualifying information" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "027" >+ tagsubfield: "z" >+ liblibrarian: "Canceled/invalid number" >+ libopac: "Canceled/invalid number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "030" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "030" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "030" >+ tagsubfield: "a" >+ liblibrarian: "CODEN" >+ libopac: "CODEN" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "030" >+ tagsubfield: "z" >+ liblibrarian: "Canceled/invalid CODEN" >+ libopac: "Canceled/invalid CODEN" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "035" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "035" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "035" >+ tagsubfield: "a" >+ liblibrarian: "System control number" >+ libopac: "System control number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "035" >+ tagsubfield: "z" >+ liblibrarian: "Canceled/invalid control number" >+ libopac: "Canceled/invalid control number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "040" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "040" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "040" >+ tagsubfield: "a" >+ liblibrarian: "Original cataloging agency" >+ libopac: "Original cataloging agency" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "040" >+ tagsubfield: "b" >+ liblibrarian: "Language of cataloging" >+ libopac: "Language of cataloging" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "040" >+ tagsubfield: "c" >+ liblibrarian: "Transcribing agency" >+ libopac: "Transcribing agency" >+ repeatable: 0 >+ mandatory: 1 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "040" >+ tagsubfield: "d" >+ liblibrarian: "Modifying agency" >+ libopac: "Modifying agency" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 0 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "066" >+ tagsubfield: "a" >+ liblibrarian: "Primary G0 character set" >+ libopac: "Primary G0 character set" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "066" >+ tagsubfield: "b" >+ liblibrarian: "Primary G1 character set" >+ libopac: "Primary G1 character set" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "066" >+ tagsubfield: "c" >+ liblibrarian: "Alternate G0 or G1 character set" >+ libopac: "Alternate G0 or G1 character set" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 0 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "337" >+ tagsubfield: "0" >+ liblibrarian: "Authority record control number or standard number" >+ libopac: "Authority record control number or standard number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "337" >+ tagsubfield: "1" >+ liblibrarian: "Real World Object URI" >+ libopac: "Real World Object URI" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "337" >+ tagsubfield: "2" >+ liblibrarian: "Source" >+ libopac: "Source" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "337" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "337" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "337" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "337" >+ tagsubfield: "a" >+ liblibrarian: "Media type term" >+ libopac: "Media type term" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "337" >+ tagsubfield: "b" >+ liblibrarian: "Media type code" >+ libopac: "Media type code" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "338" >+ tagsubfield: "0" >+ liblibrarian: "Authority record control number or standard number" >+ libopac: "Authority record control number or standard number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "338" >+ tagsubfield: "1" >+ liblibrarian: "Real World Object URI" >+ libopac: "Real World Object URI" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "338" >+ tagsubfield: "2" >+ liblibrarian: "Source" >+ libopac: "Source" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "338" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "338" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "338" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "338" >+ tagsubfield: "a" >+ liblibrarian: "Carrier type term" >+ libopac: "Carrier type term" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "338" >+ tagsubfield: "b" >+ liblibrarian: "Carrier type code" >+ libopac: "Carrier type code" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "0" >+ liblibrarian: "Authority record control number or standard number" >+ libopac: "Authority record control number or standard number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "1" >+ liblibrarian: "Real World Object URI" >+ libopac: "Real World Object URI" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "2" >+ liblibrarian: "Source" >+ libopac: "Source" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "a" >+ liblibrarian: "File type" >+ libopac: "File type" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "b" >+ liblibrarian: "Encoding format" >+ libopac: "Encoding format" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "c" >+ liblibrarian: "File size" >+ libopac: "File size" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "d" >+ liblibrarian: "Resolution" >+ libopac: "Resolution" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "e" >+ liblibrarian: "Regional encoding" >+ libopac: "Regional encoding" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "347" >+ tagsubfield: "f" >+ liblibrarian: "Encoded bitrate" >+ libopac: "Encoded bitrate" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 3 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "2" >+ liblibrarian: "Source of term" >+ libopac: "Source of term" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "5" >+ liblibrarian: "Institution to which field applies" >+ libopac: "Institution to which field applies" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "a" >+ liblibrarian: "Terms governing access" >+ libopac: "Terms governing access" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "b" >+ liblibrarian: "Jurisdiction" >+ libopac: "Jurisdiction" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "c" >+ liblibrarian: "Physical access provisions" >+ libopac: "Physical access provisions" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "d" >+ liblibrarian: "Authorized users" >+ libopac: "Authorized users" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "e" >+ liblibrarian: "Authorization" >+ libopac: "Authorization" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "f" >+ liblibrarian: "Standardized terminology for access restriction" >+ libopac: "Standardized terminology for access restriction" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "g" >+ liblibrarian: "Availability date" >+ libopac: "Availability date" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "q" >+ liblibrarian: "Supplying agency" >+ libopac: "Supplying agency" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "506" >+ tagsubfield: "u" >+ liblibrarian: "Uniform Resource Identifier" >+ libopac: "Uniform Resource Identifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 1 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "538" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "538" >+ tagsubfield: "5" >+ liblibrarian: "Institution to which field applies" >+ libopac: "Institution to which field applies" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "538" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "538" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "538" >+ tagsubfield: "a" >+ liblibrarian: "System details note" >+ libopac: "System details note" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "538" >+ tagsubfield: "i" >+ liblibrarian: "Display text" >+ libopac: "Display text" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "538" >+ tagsubfield: "u" >+ liblibrarian: "Uniform Resource Identifier" >+ libopac: "Uniform Resource Identifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 1 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "5" >+ liblibrarian: "Institution to which field applies" >+ libopac: "Institution to which field applies" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "a" >+ liblibrarian: "Source of acquisition" >+ libopac: "Source of acquisition" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "b" >+ liblibrarian: "Address" >+ libopac: "Address" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "c" >+ liblibrarian: "Method of acquisition" >+ libopac: "Method of acquisition" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "d" >+ liblibrarian: "Date of acquisition" >+ libopac: "Date of acquisition" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "e" >+ liblibrarian: "Accession number" >+ libopac: "Accession number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "f" >+ liblibrarian: "Owner" >+ libopac: "Owner" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "h" >+ liblibrarian: "Purchase price" >+ libopac: "Purchase price" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "n" >+ liblibrarian: "Extent" >+ libopac: "Extent" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "541" >+ tagsubfield: "o" >+ liblibrarian: "Type of unit" >+ libopac: "Type of unit" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "561" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "561" >+ tagsubfield: "5" >+ liblibrarian: "Institution to which field applies" >+ libopac: "Institution to which field applies" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "561" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "561" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "561" >+ tagsubfield: "a" >+ liblibrarian: "History" >+ libopac: "History" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "561" >+ tagsubfield: "b" >+ liblibrarian: "Time of collation [OBSOLETE]" >+ libopac: "Time of collation [OBSOLETE]" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "561" >+ tagsubfield: "u" >+ liblibrarian: "Uniform Resource Identifier" >+ libopac: "Uniform Resource Identifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "562" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "562" >+ tagsubfield: "5" >+ liblibrarian: "Institution to which field applies" >+ libopac: "Institution to which field applies" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: -1 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "562" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "562" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "562" >+ tagsubfield: "a" >+ liblibrarian: "Identifying markings" >+ libopac: "Identifying markings" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "562" >+ tagsubfield: "b" >+ liblibrarian: "Copy identification" >+ libopac: "Copy identification" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "562" >+ tagsubfield: "c" >+ liblibrarian: "Version identification" >+ libopac: "Version identification" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "562" >+ tagsubfield: "d" >+ liblibrarian: "Presentation format" >+ libopac: "Presentation format" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "562" >+ tagsubfield: "e" >+ liblibrarian: "Number of copies" >+ libopac: "Number of copies" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "563" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "563" >+ tagsubfield: "5" >+ liblibrarian: "Institution to which field applies" >+ libopac: "Institution to which field applies" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: -1 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "563" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "563" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "563" >+ tagsubfield: "a" >+ liblibrarian: "Binding note" >+ libopac: "Binding note" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "563" >+ tagsubfield: "u" >+ liblibrarian: "Uniform Resource Identifier" >+ libopac: "Uniform Resource Identifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: 1 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "2" >+ liblibrarian: "Source of term" >+ libopac: "Source of term" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "5" >+ liblibrarian: "Institution to which field applies" >+ libopac: "Institution to which field applies" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "a" >+ liblibrarian: "Action" >+ libopac: "Action" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "b" >+ liblibrarian: "Action identification" >+ libopac: "Action identification" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "c" >+ liblibrarian: "Time/date of action" >+ libopac: "Time/date of action" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "d" >+ liblibrarian: "Action interval" >+ libopac: "Action interval" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "e" >+ liblibrarian: "Contingency for action" >+ libopac: "Contingency for action" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "f" >+ liblibrarian: "Authorization" >+ libopac: "Authorization" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "h" >+ liblibrarian: "Jurisdiction" >+ libopac: "Jurisdiction" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "i" >+ liblibrarian: "Method of action" >+ libopac: "Method of action" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "j" >+ liblibrarian: "Site of action" >+ libopac: "Site of action" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "k" >+ liblibrarian: "Action agent" >+ libopac: "Action agent" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "l" >+ liblibrarian: "Status" >+ libopac: "Status" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "n" >+ liblibrarian: "Extent" >+ libopac: "Extent" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "o" >+ liblibrarian: "Type of unit" >+ libopac: "Type of unit" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "u" >+ liblibrarian: "Uniform Resource Identifier" >+ libopac: "Uniform Resource Identifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 1 >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "583" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 5 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "842" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "842" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "842" >+ tagsubfield: "a" >+ liblibrarian: "Textual physical form designator" >+ libopac: "Textual physical form designator" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "5" >+ liblibrarian: "Institution to which field applies" >+ libopac: "Institution to which field applies" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "7" >+ liblibrarian: "Fixed-length data elements of reproduction" >+ libopac: "Fixed-length data elements of reproduction" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "a" >+ liblibrarian: "Type of reproduction" >+ libopac: "Type of reproduction" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "b" >+ liblibrarian: "Place of reproduction" >+ libopac: "Place of reproduction" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "c" >+ liblibrarian: "Agency responsible for reproduction" >+ libopac: "Agency responsible for reproduction" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "d" >+ liblibrarian: "Date of reproduction" >+ libopac: "Date of reproduction" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "e" >+ liblibrarian: "Physical description of reproduction" >+ libopac: "Physical description of reproduction" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "f" >+ liblibrarian: "Series statement of reproduction" >+ libopac: "Series statement of reproduction" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "m" >+ liblibrarian: "Dates of publication and/or sequential designation of issues reproduced" >+ libopac: "Dates of publication and/or sequential designation of issues reproduced" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "843" >+ tagsubfield: "n" >+ liblibrarian: "Note about reproduction" >+ libopac: "Note about reproduction" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "844" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "844" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "844" >+ tagsubfield: "a" >+ liblibrarian: "Name of unit" >+ libopac: "Name of unit" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "2" >+ liblibrarian: "Source of term" >+ libopac: "Source of term" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "5" >+ liblibrarian: "Institution to which field applies" >+ libopac: "Institution to which field applies" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "a" >+ liblibrarian: "Terms governing use and reproduction" >+ libopac: "Terms governing use and reproduction" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "b" >+ liblibrarian: "Jurisdiction" >+ libopac: "Jurisdiction" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "c" >+ liblibrarian: "Authorization" >+ libopac: "Authorization" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "d" >+ liblibrarian: "Authorized users" >+ libopac: "Authorized users" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "f" >+ liblibrarian: "Use and reproduction rights" >+ libopac: "Use and reproduction rights" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "g" >+ liblibrarian: "Availability date" >+ libopac: "Availability date" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "q" >+ liblibrarian: "Supplying agency" >+ libopac: "Supplying agency" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "845" >+ tagsubfield: "u" >+ liblibrarian: "Uniform Resource Identifier" >+ libopac: "Uniform Resource Identifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: 1 >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "2" >+ liblibrarian: "Source of classification or shelving scheme" >+ libopac: "Source of classification or shelving scheme" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "8" >+ liblibrarian: "Sequence number" >+ libopac: "Sequence number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "a" >+ liblibrarian: "Location" >+ libopac: "Location" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "b" >+ liblibrarian: "Sublocation or collection" >+ libopac: "Sublocation or collection" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "holdings.holdingbranch" >+ tab: 8 >+ authorised_value: "branches" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "c" >+ liblibrarian: "Shelving location" >+ libopac: "Shelving location" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "holdings.location" >+ tab: 8 >+ authorised_value: "LOC" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "d" >+ liblibrarian: "Former shelving location" >+ libopac: "Former shelving location" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 1 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "e" >+ liblibrarian: "Address" >+ libopac: "Address" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "f" >+ liblibrarian: "Coded location qualifier" >+ libopac: "Coded location qualifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "g" >+ liblibrarian: "Non-coded location qualifier" >+ libopac: "Non-coded location qualifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "holdings.ccode" >+ tab: 8 >+ authorised_value: "CCODE" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "h" >+ liblibrarian: "Classification part" >+ libopac: "Classification part" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "holdings.callnumber" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "i" >+ liblibrarian: "Item part" >+ libopac: "Item part" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "j" >+ liblibrarian: "Shelving control number" >+ libopac: "Shelving control number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "k" >+ liblibrarian: "Call number prefix" >+ libopac: "Call number prefix" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "holdings.callnumber" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "l" >+ liblibrarian: "Shelving form of title" >+ libopac: "Shelving form of title" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "holdings.callnumber" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "m" >+ liblibrarian: "Call number suffix" >+ libopac: "Call number suffix" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "holdings.callnumber" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "n" >+ liblibrarian: "Country code" >+ libopac: "Country code" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "p" >+ liblibrarian: "Piece designation" >+ libopac: "Piece designation" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "q" >+ liblibrarian: "Piece physical condition" >+ libopac: "Piece physical condition" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "s" >+ liblibrarian: "Copyright article-fee code" >+ libopac: "Copyright article-fee code" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "t" >+ liblibrarian: "Copy number" >+ libopac: "Copy number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "u" >+ liblibrarian: "Uniform Resource Identifier" >+ libopac: "Uniform Resource Identifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 1 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "852" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "holdings.public_note" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "a" >+ liblibrarian: "First level of enumeration" >+ libopac: "First level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "b" >+ liblibrarian: "Second level of enumeration" >+ libopac: "Second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "c" >+ liblibrarian: "Third level of enumeration" >+ libopac: "Third level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "d" >+ liblibrarian: "Fourth level of enumeration" >+ libopac: "Fourth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "e" >+ liblibrarian: "Fifth level of enumeration" >+ libopac: "Fifth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "f" >+ liblibrarian: "Sixth level of enumeration" >+ libopac: "Sixth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "g" >+ liblibrarian: "Alternative numbering scheme, first level of enumeration" >+ libopac: "Alternative numbering scheme, first level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "h" >+ liblibrarian: "Alternative numbering scheme, second level of enumeration" >+ libopac: "Alternative numbering scheme, second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "i" >+ liblibrarian: "First level of chronology" >+ libopac: "First level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "j" >+ liblibrarian: "Second level of chronology" >+ libopac: "Second level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "k" >+ liblibrarian: "Third level of chronology" >+ libopac: "Third level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "l" >+ liblibrarian: "Fourth level of chronology" >+ libopac: "Fourth level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "m" >+ liblibrarian: "Alternative numbering scheme, chronology" >+ libopac: "Alternative numbering scheme, chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "n" >+ liblibrarian: "Pattern note" >+ libopac: "Pattern note" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "p" >+ liblibrarian: "Number of pieces per issuance" >+ libopac: "Number of pieces per issuance" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "t" >+ liblibrarian: "Copy" >+ libopac: "Copy" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "u" >+ liblibrarian: "Bibliographic units per next higher level" >+ libopac: "Bibliographic units per next higher level" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "v" >+ liblibrarian: "Numbering continuity" >+ libopac: "Numbering continuity" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "w" >+ liblibrarian: "Frequency" >+ libopac: "Frequency" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "x" >+ liblibrarian: "Calendar change" >+ libopac: "Calendar change" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "y" >+ liblibrarian: "Regularity pattern" >+ libopac: "Regularity pattern" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "853" >+ tagsubfield: "z" >+ liblibrarian: "Numbering scheme" >+ libopac: "Numbering scheme" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "a" >+ liblibrarian: "First level of enumeration" >+ libopac: "First level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "b" >+ liblibrarian: "Second level of enumeration" >+ libopac: "Second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "c" >+ liblibrarian: "Third level of enumeration" >+ libopac: "Third level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "d" >+ liblibrarian: "Fourth level of enumeration" >+ libopac: "Fourth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "e" >+ liblibrarian: "Fifth level of enumeration" >+ libopac: "Fifth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "f" >+ liblibrarian: "Sixth level of enumeration" >+ libopac: "Sixth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "g" >+ liblibrarian: "Alternative numbering scheme, first level of enumeration" >+ libopac: "Alternative numbering scheme, first level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "h" >+ liblibrarian: "Alternative numbering scheme, second level of enumeration" >+ libopac: "Alternative numbering scheme, second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "i" >+ liblibrarian: "First level of chronology" >+ libopac: "First level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "j" >+ liblibrarian: "Second level of chronology" >+ libopac: "Second level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "k" >+ liblibrarian: "Third level of chronology" >+ libopac: "Third level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "l" >+ liblibrarian: "Fourth level of chronology" >+ libopac: "Fourth level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "m" >+ liblibrarian: "Alternative numbering scheme, chronology" >+ libopac: "Alternative numbering scheme, chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "n" >+ liblibrarian: "Pattern note" >+ libopac: "Pattern note" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "p" >+ liblibrarian: "Number of pieces per issuance" >+ libopac: "Number of pieces per issuance" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "t" >+ liblibrarian: "Copy" >+ libopac: "Copy" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "u" >+ liblibrarian: "Bibliographic units per next higher level" >+ libopac: "Bibliographic units per next higher level" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "v" >+ liblibrarian: "Numbering continuity" >+ libopac: "Numbering continuity" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "w" >+ liblibrarian: "Frequency" >+ libopac: "Frequency" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "x" >+ liblibrarian: "Calendar change" >+ libopac: "Calendar change" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "y" >+ liblibrarian: "Regularity pattern" >+ libopac: "Regularity pattern" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "854" >+ tagsubfield: "z" >+ liblibrarian: "Numbering scheme" >+ libopac: "Numbering scheme" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "a" >+ liblibrarian: "First level of enumeration" >+ libopac: "First level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "b" >+ liblibrarian: "Second level of enumeration" >+ libopac: "Second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "c" >+ liblibrarian: "Third level of enumeration" >+ libopac: "Third level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "d" >+ liblibrarian: "Fourth level of enumeration" >+ libopac: "Fourth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "e" >+ liblibrarian: "Fifth level of enumeration" >+ libopac: "Fifth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "f" >+ liblibrarian: "Sixth level of enumeration" >+ libopac: "Sixth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "g" >+ liblibrarian: "Alternative numbering scheme, first level of enumeration" >+ libopac: "Alternative numbering scheme, first level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "h" >+ liblibrarian: "Alternative numbering scheme, second level of enumeration" >+ libopac: "Alternative numbering scheme, second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "i" >+ liblibrarian: "First level of chronology" >+ libopac: "First level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "j" >+ liblibrarian: "Second level of chronology" >+ libopac: "Second level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "k" >+ liblibrarian: "Third level of chronology" >+ libopac: "Third level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "l" >+ liblibrarian: "Fourth level of chronology" >+ libopac: "Fourth level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "m" >+ liblibrarian: "Alternative numbering scheme, chronology" >+ libopac: "Alternative numbering scheme, chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "n" >+ liblibrarian: "Pattern note" >+ libopac: "Pattern note" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "p" >+ liblibrarian: "Number of pieces per issuance" >+ libopac: "Number of pieces per issuance" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "t" >+ liblibrarian: "Copy" >+ libopac: "Copy" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "u" >+ liblibrarian: "Bibliographic units per next higher level" >+ libopac: "Bibliographic units per next higher level" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "v" >+ liblibrarian: "Numbering continuity" >+ libopac: "Numbering continuity" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "w" >+ liblibrarian: "Frequency" >+ libopac: "Frequency" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "x" >+ liblibrarian: "Calendar change" >+ libopac: "Calendar change" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "y" >+ liblibrarian: "Regularity pattern" >+ libopac: "Regularity pattern" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "855" >+ tagsubfield: "z" >+ liblibrarian: "Numbering scheme" >+ libopac: "Numbering scheme" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "2" >+ liblibrarian: "Access method" >+ libopac: "Access method" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "7" >+ liblibrarian: "Access status" >+ libopac: "Access status" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "a" >+ liblibrarian: "Host name" >+ libopac: "Host name" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "b" >+ liblibrarian: "Access number" >+ libopac: "Access number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "c" >+ liblibrarian: "Compression information" >+ libopac: "Compression information" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "d" >+ liblibrarian: "Path" >+ libopac: "Path" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "f" >+ liblibrarian: "Electronic name" >+ libopac: "Electronic name" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "h" >+ liblibrarian: "Processor of request" >+ libopac: "Processor of request" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "i" >+ liblibrarian: "Instruction" >+ libopac: "Instruction" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "j" >+ liblibrarian: "Bits per second" >+ libopac: "Bits per second" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "k" >+ liblibrarian: "Password" >+ libopac: "Password" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "l" >+ liblibrarian: "Logon" >+ libopac: "Logon" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "m" >+ liblibrarian: "Contact for access assistance" >+ libopac: "Contact for access assistance" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "n" >+ liblibrarian: "Name of location of host" >+ libopac: "Name of location of host" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "o" >+ liblibrarian: "Operating system" >+ libopac: "Operating system" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "p" >+ liblibrarian: "Port" >+ libopac: "Port" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "q" >+ liblibrarian: "Electronic format type" >+ libopac: "Electronic format type" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "r" >+ liblibrarian: "Settings" >+ libopac: "Settings" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "s" >+ liblibrarian: "File size" >+ libopac: "File size" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "t" >+ liblibrarian: "Terminal emulation" >+ libopac: "Terminal emulation" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "u" >+ liblibrarian: "Uniform Resource Identifier" >+ libopac: "Uniform Resource Identifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 1 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "v" >+ liblibrarian: "Hours access method available" >+ libopac: "Hours access method available" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "w" >+ liblibrarian: "Record control number" >+ libopac: "Record control number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "y" >+ liblibrarian: "Link text" >+ libopac: "Link text" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "856" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "a" >+ liblibrarian: "First level of enumeration" >+ libopac: "First level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "holdings.summary" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "b" >+ liblibrarian: "Second level of enumeration" >+ libopac: "Second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "holdings.summary" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "c" >+ liblibrarian: "Third level of enumeration" >+ libopac: "Third level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "d" >+ liblibrarian: "Fourth level of enumeration" >+ libopac: "Fourth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "e" >+ liblibrarian: "Fifth level of enumeration" >+ libopac: "Fifth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "f" >+ liblibrarian: "Sixth level of enumeration" >+ libopac: "Sixth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "g" >+ liblibrarian: "Alternative numbering scheme, first level of enumeration" >+ libopac: "Alternative numbering scheme, first level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "h" >+ liblibrarian: "Alternative numbering scheme, second level of enumeration" >+ libopac: "Alternative numbering scheme, second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "i" >+ liblibrarian: "First level of chronology" >+ libopac: "First level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "holdings.summary" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "j" >+ liblibrarian: "Second level of chronology" >+ libopac: "Second level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "k" >+ liblibrarian: "Third level of chronology" >+ libopac: "Third level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "l" >+ liblibrarian: "Fourth level of chronology" >+ libopac: "Fourth level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "m" >+ liblibrarian: "Alternative numbering scheme, chronology" >+ libopac: "Alternative numbering scheme, chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "n" >+ liblibrarian: "Converted Gregorian year" >+ libopac: "Converted Gregorian year" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "o" >+ liblibrarian: "Type of unit" >+ libopac: "Type of unit" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "p" >+ liblibrarian: "Piece designation" >+ libopac: "Piece designation" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "q" >+ liblibrarian: "Piece physical condition" >+ libopac: "Piece physical condition" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "s" >+ liblibrarian: "Copyright article-fee code" >+ libopac: "Copyright article-fee code" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "t" >+ liblibrarian: "Copy number" >+ libopac: "Copy number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "v" >+ liblibrarian: "Issuing date" >+ libopac: "Issuing date" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "w" >+ liblibrarian: "Break indicator" >+ libopac: "Break indicator" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "863" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "holdings.summary" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "a" >+ liblibrarian: "First level of enumeration" >+ libopac: "First level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "b" >+ liblibrarian: "Second level of enumeration" >+ libopac: "Second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "c" >+ liblibrarian: "Third level of enumeration" >+ libopac: "Third level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "d" >+ liblibrarian: "Fourth level of enumeration" >+ libopac: "Fourth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "e" >+ liblibrarian: "Fifth level of enumeration" >+ libopac: "Fifth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "f" >+ liblibrarian: "Sixth level of enumeration" >+ libopac: "Sixth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "g" >+ liblibrarian: "Alternative numbering scheme, first level of enumeration" >+ libopac: "Alternative numbering scheme, first level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "h" >+ liblibrarian: "Alternative numbering scheme, second level of enumeration" >+ libopac: "Alternative numbering scheme, second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "i" >+ liblibrarian: "First level of chronology" >+ libopac: "First level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "j" >+ liblibrarian: "Second level of chronology" >+ libopac: "Second level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "k" >+ liblibrarian: "Third level of chronology" >+ libopac: "Third level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "l" >+ liblibrarian: "Fourth level of chronology" >+ libopac: "Fourth level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "m" >+ liblibrarian: "Alternative numbering scheme, chronology" >+ libopac: "Alternative numbering scheme, chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "n" >+ liblibrarian: "Converted Gregorian year" >+ libopac: "Converted Gregorian year" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "o" >+ liblibrarian: "Type of unit" >+ libopac: "Type of unit" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "p" >+ liblibrarian: "Piece designation" >+ libopac: "Piece designation" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "q" >+ liblibrarian: "Piece physical condition" >+ libopac: "Piece physical condition" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "s" >+ liblibrarian: "Copyright article-fee code" >+ libopac: "Copyright article-fee code" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "t" >+ liblibrarian: "Copy number" >+ libopac: "Copy number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "v" >+ liblibrarian: "Issuing date" >+ libopac: "Issuing date" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "w" >+ liblibrarian: "Break indicator" >+ libopac: "Break indicator" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "864" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "a" >+ liblibrarian: "First level of enumeration" >+ libopac: "First level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "b" >+ liblibrarian: "Second level of enumeration" >+ libopac: "Second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "c" >+ liblibrarian: "Third level of enumeration" >+ libopac: "Third level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "d" >+ liblibrarian: "Fourth level of enumeration" >+ libopac: "Fourth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "e" >+ liblibrarian: "Fifth level of enumeration" >+ libopac: "Fifth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "f" >+ liblibrarian: "Sixth level of enumeration" >+ libopac: "Sixth level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "g" >+ liblibrarian: "Alternative numbering scheme, first level of enumeration" >+ libopac: "Alternative numbering scheme, first level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "h" >+ liblibrarian: "Alternative numbering scheme, second level of enumeration" >+ libopac: "Alternative numbering scheme, second level of enumeration" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "i" >+ liblibrarian: "First level of chronology" >+ libopac: "First level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "j" >+ liblibrarian: "Second level of chronology" >+ libopac: "Second level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "k" >+ liblibrarian: "Third level of chronology" >+ libopac: "Third level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "l" >+ liblibrarian: "Fourth level of chronology" >+ libopac: "Fourth level of chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "m" >+ liblibrarian: "Alternative numbering scheme, chronology" >+ libopac: "Alternative numbering scheme, chronology" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "n" >+ liblibrarian: "Converted Gregorian year" >+ libopac: "Converted Gregorian year" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "o" >+ liblibrarian: "Type of unit" >+ libopac: "Type of unit" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "p" >+ liblibrarian: "Piece designation" >+ libopac: "Piece designation" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "q" >+ liblibrarian: "Piece physical condition" >+ libopac: "Piece physical condition" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "s" >+ liblibrarian: "Copyright article-fee code" >+ libopac: "Copyright article-fee code" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "t" >+ liblibrarian: "Copy number" >+ libopac: "Copy number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "v" >+ liblibrarian: "Issuing date" >+ libopac: "Issuing date" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "w" >+ liblibrarian: "Break indicator" >+ libopac: "Break indicator" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "865" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "866" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "866" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "866" >+ tagsubfield: "a" >+ liblibrarian: "Textual string" >+ libopac: "Textual string" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "866" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "866" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "867" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "867" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "867" >+ tagsubfield: "a" >+ liblibrarian: "Textual string" >+ libopac: "Textual string" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "holdings.supplements" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "867" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "867" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "holdings.supplements" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "868" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "868" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "868" >+ tagsubfield: "a" >+ liblibrarian: "Textual string" >+ libopac: "Textual string" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "holdings.indexes" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "868" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "868" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "holdings.indexes" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "8" >+ liblibrarian: "Sequence number" >+ libopac: "Sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "a" >+ liblibrarian: "Internal item number" >+ libopac: "Internal item number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "b" >+ liblibrarian: "Invalid or canceled internal item number" >+ libopac: "Invalid or canceled internal item number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "c" >+ liblibrarian: "Cost" >+ libopac: "Cost" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "d" >+ liblibrarian: "Date acquired" >+ libopac: "Date acquired" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "e" >+ liblibrarian: "Source of acquisition" >+ libopac: "Source of acquisition" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "h" >+ liblibrarian: "Use restrictions" >+ libopac: "Use restrictions" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "j" >+ liblibrarian: "Item status" >+ libopac: "Item status" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "l" >+ liblibrarian: "Temporary location" >+ libopac: "Temporary location" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "p" >+ liblibrarian: "Piece designation" >+ libopac: "Piece designation" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "r" >+ liblibrarian: "Invalid or canceled piece designation" >+ libopac: "Invalid or canceled piece designation" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "t" >+ liblibrarian: "Copy number" >+ libopac: "Copy number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "876" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "8" >+ liblibrarian: "Sequence number" >+ libopac: "Sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "a" >+ liblibrarian: "Internal item number" >+ libopac: "Internal item number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "b" >+ liblibrarian: "Invalid or canceled internal item number" >+ libopac: "Invalid or canceled internal item number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "c" >+ liblibrarian: "Cost" >+ libopac: "Cost" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "d" >+ liblibrarian: "Date acquired" >+ libopac: "Date acquired" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "e" >+ liblibrarian: "Source of acquisition" >+ libopac: "Source of acquisition" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "h" >+ liblibrarian: "Use restrictions" >+ libopac: "Use restrictions" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "j" >+ liblibrarian: "Item status" >+ libopac: "Item status" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "l" >+ liblibrarian: "Temporary location" >+ libopac: "Temporary location" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "p" >+ liblibrarian: "Piece designation" >+ libopac: "Piece designation" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "r" >+ liblibrarian: "Invalid or canceled piece designation" >+ libopac: "Invalid or canceled piece designation" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "t" >+ liblibrarian: "Copy number" >+ libopac: "Copy number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "877" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "3" >+ liblibrarian: "Materials specified" >+ libopac: "Materials specified" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "8" >+ liblibrarian: "Sequence number" >+ libopac: "Sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "a" >+ liblibrarian: "Internal item number" >+ libopac: "Internal item number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "b" >+ liblibrarian: "Invalid or canceled internal item number" >+ libopac: "Invalid or canceled internal item number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "c" >+ liblibrarian: "Cost" >+ libopac: "Cost" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "d" >+ liblibrarian: "Date acquired" >+ libopac: "Date acquired" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "e" >+ liblibrarian: "Source of acquisition" >+ libopac: "Source of acquisition" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "h" >+ liblibrarian: "Use restrictions" >+ libopac: "Use restrictions" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "j" >+ liblibrarian: "Item status" >+ libopac: "Item status" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "l" >+ liblibrarian: "Temporary location" >+ libopac: "Temporary location" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "p" >+ liblibrarian: "Piece designation" >+ libopac: "Piece designation" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "r" >+ liblibrarian: "Invalid or canceled piece designation" >+ libopac: "Invalid or canceled piece designation" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "t" >+ liblibrarian: "Copy number" >+ libopac: "Copy number" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "x" >+ liblibrarian: "Nonpublic note" >+ libopac: "Nonpublic note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "878" >+ tagsubfield: "z" >+ liblibrarian: "Public note" >+ libopac: "Public note" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: 5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "2" >+ liblibrarian: "2" >+ libopac: "2" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "3" >+ liblibrarian: "3" >+ libopac: "3" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "4" >+ liblibrarian: "4" >+ libopac: "4" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "5" >+ liblibrarian: "5" >+ libopac: "5" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "6" >+ liblibrarian: "Linkage" >+ libopac: "Linkage" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "7" >+ liblibrarian: "7" >+ libopac: "7" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "8" >+ liblibrarian: "8" >+ libopac: "8" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "9" >+ liblibrarian: "9" >+ libopac: "9" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "a" >+ liblibrarian: "a" >+ libopac: "a" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "b" >+ liblibrarian: "b" >+ libopac: "b" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "c" >+ liblibrarian: "c" >+ libopac: "c" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "d" >+ liblibrarian: "d" >+ libopac: "d" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "e" >+ liblibrarian: "e" >+ libopac: "e" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "f" >+ liblibrarian: "f" >+ libopac: "f" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "g" >+ liblibrarian: "g" >+ libopac: "g" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "h" >+ liblibrarian: "h" >+ libopac: "h" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "i" >+ liblibrarian: "i" >+ libopac: "i" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "j" >+ liblibrarian: "j" >+ libopac: "j" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "k" >+ liblibrarian: "k" >+ libopac: "k" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "l" >+ liblibrarian: "l" >+ libopac: "l" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "m" >+ liblibrarian: "m" >+ libopac: "m" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "n" >+ liblibrarian: "n" >+ libopac: "n" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "o" >+ liblibrarian: "o" >+ libopac: "o" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "p" >+ liblibrarian: "p" >+ libopac: "p" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "q" >+ liblibrarian: "q" >+ libopac: "q" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "r" >+ liblibrarian: "r" >+ libopac: "r" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "s" >+ liblibrarian: "s" >+ libopac: "s" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "t" >+ liblibrarian: "t" >+ libopac: "t" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "u" >+ liblibrarian: "u" >+ libopac: "u" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "v" >+ liblibrarian: "v" >+ libopac: "v" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "w" >+ liblibrarian: "w" >+ libopac: "w" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "x" >+ liblibrarian: "x" >+ libopac: "x" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "y" >+ liblibrarian: "y" >+ libopac: "y" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "880" >+ tagsubfield: "z" >+ liblibrarian: "z" >+ libopac: "z" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "883" >+ tagsubfield: "0" >+ liblibrarian: "Authority record control number or standard number" >+ libopac: "Authority record control number or standard number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "883" >+ tagsubfield: "1" >+ liblibrarian: "Real World Object URI" >+ libopac: "Real World Object URI" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "883" >+ tagsubfield: "8" >+ liblibrarian: "Field link and sequence number" >+ libopac: "Field link and sequence number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "883" >+ tagsubfield: "a" >+ liblibrarian: "Generation process" >+ libopac: "Generation process" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "883" >+ tagsubfield: "c" >+ liblibrarian: "Confidence value" >+ libopac: "Confidence value" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "883" >+ tagsubfield: "d" >+ liblibrarian: "Generation date" >+ libopac: "Generation date" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "883" >+ tagsubfield: "q" >+ liblibrarian: "Generation agency" >+ libopac: "Generation agency" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "883" >+ tagsubfield: "u" >+ liblibrarian: "Uniform Resource Identifier" >+ libopac: "Uniform Resource Identifier" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "883" >+ tagsubfield: "w" >+ liblibrarian: "Bibliographic record control number" >+ libopac: "Bibliographic record control number" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "883" >+ tagsubfield: "x" >+ liblibrarian: "Validity end date" >+ libopac: "Validity end date" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "884" >+ tagsubfield: "a" >+ liblibrarian: "Conversion process" >+ libopac: "Conversion process" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "884" >+ tagsubfield: "g" >+ liblibrarian: "Conversion date" >+ libopac: "Conversion date" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "884" >+ tagsubfield: "k" >+ liblibrarian: "Identifier of source metadata" >+ libopac: "Identifier of source metadata" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "884" >+ tagsubfield: "q" >+ liblibrarian: "Conversion agency" >+ libopac: "Conversion agency" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "884" >+ tagsubfield: "u" >+ liblibrarian: "Uniform Resource Identifier" >+ libopac: "Uniform Resource Identifier" >+ repeatable: 1 >+ mandatory: 0 >+ kohafield: "" >+ tab: 8 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: >+ hidden: -6 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "942" >+ tagsubfield: "n" >+ liblibrarian: "Suppress in OPAC" >+ libopac: "Suppress in OPAC" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "holdings.suppress" >+ tab: 9 >+ authorised_value: "" >+ authtypecode: "" >+ value_builder: "" >+ isurl: 0 >+ hidden: 4 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "999" >+ tagsubfield: "c" >+ liblibrarian: "Koha biblionumber" >+ libopac: "Koha biblionumber" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "biblio.biblionumber" >+ tab: -1 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ - tagfield: "999" >+ tagsubfield: "e" >+ liblibrarian: "Koha holding_id" >+ libopac: "Koha holding_id" >+ repeatable: 0 >+ mandatory: 0 >+ kohafield: "holdings.holding_id" >+ tab: -1 >+ authorised_value: >+ authtypecode: >+ value_builder: "" >+ isurl: >+ hidden: -5 >+ frameworkcode: "HLD" >+ seealso: "" >+ link: "" >+ defaultvalue: >+ >+ >+sql_statements: >+ - "UPDATE marc_subfield_structure SET maxlength=24 WHERE tagfield='000';" >+ - "UPDATE marc_subfield_structure SET maxlength=40 WHERE tagfield='008';" >+ >+ # Create the ACQ framework based on the default framework, fields 952 only >+ - "INSERT INTO marc_tag_structure(tagfield, liblibrarian, libopac, repeatable, mandatory, authorised_value, frameworkcode) >+ SELECT tagfield, liblibrarian, libopac, repeatable, mandatory, authorised_value, 'ACQ' FROM marc_tag_structure WHERE tagfield='952' AND frameworkcode='';" >+ >+ - "INSERT INTO marc_subfield_structure(tagfield, tagsubfield, liblibrarian, libopac, repeatable, mandatory, kohafield, tab, authorised_value, authtypecode, value_builder, isurl, hidden, frameworkcode, seealso, link, defaultvalue, maxlength) >+ SELECT tagfield, tagsubfield, liblibrarian, libopac, repeatable, mandatory, kohafield, tab, authorised_value, authtypecode, value_builder, isurl, hidden, 'ACQ', seealso, link, defaultvalue, maxlength FROM marc_subfield_structure WHERE tagfield='952' AND frameworkcode='';" >+ >+ - "INSERT INTO marc_tag_structure(tagfield, liblibrarian, libopac, repeatable, mandatory, authorised_value, frameworkcode) >+ SELECT tagfield, liblibrarian, libopac, repeatable, mandatory, authorised_value, 'ACQ' >+ FROM marc_tag_structure >+ WHERE frameworkcode='' AND tagfield IN ( >+ SELECT tagfield >+ FROM marc_subfield_structure >+ WHERE ( >+ kohafield='biblio.title' >+ OR kohafield='biblio.author' >+ OR kohafield='biblioitems.publishercode' >+ OR kohafield='biblioitems.editionstatement' >+ OR kohafield='biblio.copyrightdate' >+ OR kohafield='biblioitems.isbn' >+ OR kohafield='biblio.seriestitle' >+ ) AND frameworkcode='' >+ );" >+ >+ - "INSERT INTO marc_subfield_structure(tagfield, tagsubfield, liblibrarian, libopac, repeatable, mandatory, kohafield, tab, authorised_value, authtypecode, value_builder, isurl, hidden, frameworkcode, seealso, link, defaultvalue, maxlength) >+ SELECT tagfield, tagsubfield, liblibrarian, libopac, repeatable, mandatory, kohafield, tab, authorised_value, authtypecode, value_builder, isurl, hidden, 'ACQ', seealso, link, defaultvalue, maxlength >+ FROM marc_subfield_structure >+ WHERE frameworkcode='' >+ AND kohafield IN ('biblio.title', 'biblio.author', 'biblioitems.publishercode', 'biblioitems.editionstatement', 'biblio.copyrightdate', 'biblioitems.isbn', 'biblio.seriestitle' );" > >- - "INSERT INTO marc_subfield_structure(tagfield, tagsubfield, liblibrarian, libopac, repeatable, mandatory, kohafield, tab, authorised_value, authtypecode, value_builder, isurl, hidden, frameworkcode, seealso, link, defaultvalue, maxlength) >- SELECT tagfield, tagsubfield, liblibrarian, libopac, repeatable, mandatory, kohafield, tab, authorised_value, authtypecode, value_builder, isurl, hidden, 'ACQ', seealso, link, defaultvalue, maxlength >- FROM marc_subfield_structure >- WHERE frameworkcode='' >- AND kohafield IN ('biblio.title', 'biblio.author', 'biblioitems.publishercode', 'biblioitems.editionstatement', 'biblio.copyrightdate', 'biblioitems.isbn', 'biblio.seriestitle' );" >diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql >index 952cd9d296..4b0492475b 100644 >--- a/installer/data/mysql/kohastructure.sql >+++ b/installer/data/mysql/kohastructure.sql >@@ -2488,6 +2488,7 @@ CREATE TABLE `deleteditems` ( > `stocknumber` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'inventory number (MARC21 952$i)', > `new_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '''new'' value, you can put whatever free-text information. This field is intented to be managed by the automatic_item_modification_by_age cronjob.', > `exclude_from_local_holds_priority` tinyint(1) DEFAULT NULL COMMENT 'Exclude this item from local holds priority', >+ `holding_id` int(11) DEFAULT NULL COMMENT 'foreign key from holdings table used to link this item to the right holdings record', > PRIMARY KEY (`itemnumber`), > KEY `delitembarcodeidx` (`barcode`), > KEY `delitemstocknumberidx` (`stocknumber`), >@@ -2633,6 +2634,56 @@ CREATE TABLE `hold_fill_targets` ( > /*!40101 SET character_set_client = @saved_cs_client */; > > -- >+-- Table structure for table `holdings` >+-- >+ >+DROP TABLE IF EXISTS `holdings`; >+/*!40101 SET @saved_cs_client = @@character_set_client */; >+/*!40101 SET character_set_client = utf8 */; >+CREATE TABLE `holdings` ( >+ `holding_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'unique identifier assigned to each holdings record', >+ `biblionumber` int(11) NOT NULL DEFAULT 0 COMMENT 'foreign key from biblio table used to link this record to the right bib record', >+ `frameworkcode` varchar(4) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT 'foreign key from the biblio_framework table to identify which framework was used in cataloging this record', >+ `holdingbranch` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'foreign key from the branches table for the library that owns this record (MARC21 852$a)', >+ `location` varchar(80) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'authorized value for the shelving location for this record (MARC21 852$b)', >+ `ccode` varchar(80) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'authorized value for the collection code associated with this item (MARC21 852$g)', >+ `callnumber` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'call number (852$h+$i in MARC21)', >+ `suppress` tinyint(1) DEFAULT NULL COMMENT 'Boolean indicating whether the record is suppressed in OPAC', >+ `timestamp` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT 'date and time this record was last touched', >+ `datecreated` date NOT NULL COMMENT 'the date this record was added to Koha', >+ `deleted_on` datetime DEFAULT NULL COMMENT 'the date this record was deleted', >+ PRIMARY KEY (`holding_id`), >+ KEY `hldnoidx` (`holding_id`), >+ KEY `hldbibnoidx` (`biblionumber`), >+ KEY `timestamp` (`timestamp`), >+ KEY `holdings_ibfk_2` (`holdingbranch`), >+ CONSTRAINT `holdings_ibfk_1` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE, >+ CONSTRAINT `holdings_ibfk_2` FOREIGN KEY (`holdingbranch`) REFERENCES `branches` (`branchcode`) ON UPDATE CASCADE >+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; >+/*!40101 SET character_set_client = @saved_cs_client */; >+ >+-- >+-- Table structure for table `holdings_metadata` >+-- >+ >+DROP TABLE IF EXISTS `holdings_metadata`; >+/*!40101 SET @saved_cs_client = @@character_set_client */; >+/*!40101 SET character_set_client = utf8 */; >+CREATE TABLE `holdings_metadata` ( >+ `id` int(11) NOT NULL AUTO_INCREMENT, >+ `holding_id` int(11) NOT NULL, >+ `format` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL, >+ `schema` varchar(16) COLLATE utf8mb4_unicode_ci NOT NULL, >+ `metadata` longtext COLLATE utf8mb4_unicode_ci NOT NULL, >+ `deleted_on` datetime DEFAULT NULL COMMENT 'the date this record was deleted', >+ PRIMARY KEY (`id`), >+ UNIQUE KEY `holdings_metadata_uniq_key` (`holding_id`,`format`,`schema`), >+ KEY `hldnoidx` (`holding_id`), >+ CONSTRAINT `holdings_metadata_fk_1` FOREIGN KEY (`holding_id`) REFERENCES `holdings` (`holding_id`) ON DELETE CASCADE ON UPDATE CASCADE >+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; >+/*!40101 SET character_set_client = @saved_cs_client */; >+ >+-- > -- Table structure for table `housebound_profile` > -- > >@@ -3046,6 +3097,7 @@ CREATE TABLE `items` ( > `stocknumber` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'inventory number (MARC21 952$i)', > `new_status` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '''new'' value, you can put whatever free-text information. This field is intented to be managed by the automatic_item_modification_by_age cronjob.', > `exclude_from_local_holds_priority` tinyint(1) DEFAULT NULL COMMENT 'Exclude this item from local holds priority', >+ `holding_id` int(11) DEFAULT NULL COMMENT 'foreign key from holdings table used to link this item to the right holdings record', > PRIMARY KEY (`itemnumber`), > UNIQUE KEY `itembarcodeidx` (`barcode`), > KEY `itemstocknumberidx` (`stocknumber`), >@@ -3058,10 +3110,12 @@ CREATE TABLE `items` ( > KEY `items_ccode` (`ccode`), > KEY `itype_idx` (`itype`), > KEY `timestamp` (`timestamp`), >+ KEY `hldid_idx` (`holding_id`), > CONSTRAINT `items_ibfk_1` FOREIGN KEY (`biblioitemnumber`) REFERENCES `biblioitems` (`biblioitemnumber`) ON DELETE CASCADE ON UPDATE CASCADE, > CONSTRAINT `items_ibfk_2` FOREIGN KEY (`homebranch`) REFERENCES `branches` (`branchcode`) ON UPDATE CASCADE, > CONSTRAINT `items_ibfk_3` FOREIGN KEY (`holdingbranch`) REFERENCES `branches` (`branchcode`) ON UPDATE CASCADE, >- CONSTRAINT `items_ibfk_4` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE >+ CONSTRAINT `items_ibfk_4` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE, >+ CONSTRAINT `items_ibfk_5` FOREIGN KEY (`holding_id`) REFERENCES `holdings` (`holding_id`) ON DELETE CASCADE ON UPDATE CASCADE > ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; > /*!40101 SET character_set_client = @saved_cs_client */; > >diff --git a/installer/data/mysql/mandatory/auth_val_cat.sql b/installer/data/mysql/mandatory/auth_val_cat.sql >index bd8f81d761..afe00b285e 100644 >--- a/installer/data/mysql/mandatory/auth_val_cat.sql >+++ b/installer/data/mysql/mandatory/auth_val_cat.sql >@@ -23,6 +23,7 @@ INSERT IGNORE INTO authorised_value_categories( category_name, is_system ) > INSERT IGNORE INTO authorised_value_categories( category_name, is_system ) > VALUES > ('branches', 1), >+ ('holdings', 1), > ('itemtypes', 1), > ('cn_source', 1); > >diff --git a/installer/data/mysql/mandatory/sysprefs.sql b/installer/data/mysql/mandatory/sysprefs.sql >index eab5e66838..0f44cd54d5 100644 >--- a/installer/data/mysql/mandatory/sysprefs.sql >+++ b/installer/data/mysql/mandatory/sysprefs.sql >@@ -634,6 +634,7 @@ INSERT INTO systempreferences ( `variable`, `value`, `options`, `explanation`, ` > ('SubscriptionHistory','simplified','simplified|full','Define the display preference for serials issue history in OPAC','Choice'), > ('SubscriptionLog','1',NULL,'If ON, enables subscriptions log','YesNo'), > ('suggestion','1','','If ON, enables patron suggestions feature in OPAC','YesNo'), >+('SummaryHoldings', '0', NULL, 'If ON, enables support for holdings records.', 'YesNo'), > ('SuspendHoldsIntranet','1','Allow holds to be suspended from the intranet.',NULL,'YesNo'), > ('SuspendHoldsOpac','1','Allow holds to be suspended from the OPAC.',NULL,'YesNo'), > ('SuspensionsCalendar','noSuspensionsWhenClosed','ignoreCalendar|noSuspensionsWhenClosed','Specify whether to use the Calendar in calculating suspension expiration','Choice'), >diff --git a/installer/data/mysql/updatedev.pl b/installer/data/mysql/updatedev.pl >new file mode 100755 >index 0000000000..c44a277282 >--- /dev/null >+++ b/installer/data/mysql/updatedev.pl >@@ -0,0 +1,229 @@ >+#!/usr/bin/perl >+ >+# Database Updater >+# This script checks for required updates to the database. >+ >+# Parts copyright Catalyst IT 2011 >+ >+# Part of the Koha Library Software www.koha-community.org >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+# >+ >+# Bugs/ToDo: >+# - Would also be a good idea to offer to do a backup at this time... >+ >+# NOTE: If you do something more than once in here, make it table driven. >+ >+# NOTE: Please keep the version in kohaversion.pl up-to-date! >+ >+use Modern::Perl; >+ >+use feature 'say'; >+ >+# CPAN modules >+use DBI; >+use Getopt::Long; >+# Koha modules >+use C4::Context; >+use C4::Installer; >+use Koha::Database; >+use Koha; >+use Koha::DateUtils; >+ >+use MARC::Record; >+use MARC::File::XML ( BinaryEncoding => 'utf8' ); >+ >+use File::Path qw[remove_tree]; # perl core module >+use File::Slurp; >+ >+# FIXME - The user might be installing a new database, so can't rely >+# on /etc/koha.conf anyway. >+ >+my $debug = 0; >+ >+my ( >+ $sth, $sti, >+ $query, >+ %existingtables, # tables already in database >+ %types, >+ $table, >+ $column, >+ $type, $null, $key, $default, $extra, >+ $prefitem, # preference item in systempreferences table >+); >+ >+my $schema = Koha::Database->new()->schema(); >+ >+my $silent; >+GetOptions( >+ 's' =>\$silent >+ ); >+my $dbh = C4::Context->dbh; >+$|=1; # flushes output >+ >+local $dbh->{RaiseError} = 0; >+ >+# Record the version we are coming from >+ >+my $original_version = C4::Context->preference("Version"); >+ >+my $DBversion = ''; >+ >+# SEE bug 13068 >+# if there is anything in the atomicupdate, read and execute it. >+my $update_dir = C4::Context->config('intranetdir') . '/installer/data/mysql/atomicupdate/'; >+opendir( my $dirh, $update_dir ); >+foreach my $file ( sort readdir $dirh ) { >+ next if $file !~ /\.(sql|perl)$/; #skip other files >+ next if $file eq 'skeleton.perl'; # skip the skeleton file >+ print "DEV atomic update: $file\n"; >+ if ( $file =~ /\.sql$/ ) { >+ my $installer = C4::Installer->new(); >+ my $rv = $installer->load_sql( $update_dir . $file ) ? 0 : 1; >+ } elsif ( $file =~ /\.perl$/ ) { >+ my $code = read_file( $update_dir . $file ); >+ eval $code; >+ say "Atomic update generated errors: $@" if $@; >+ } >+} >+ >+=head1 FUNCTIONS >+ >+=head2 DropAllForeignKeys($table) >+ >+Drop all foreign keys of the table $table >+ >+=cut >+ >+sub DropAllForeignKeys { >+ my ($table) = @_; >+ # get the table description >+ my $sth = $dbh->prepare("SHOW CREATE TABLE $table"); >+ $sth->execute; >+ my $vsc_structure = $sth->fetchrow; >+ # split on CONSTRAINT keyword >+ my @fks = split /CONSTRAINT /,$vsc_structure; >+ # parse each entry >+ foreach (@fks) { >+ # isolate what is before FOREIGN KEY, if there is something, it's a foreign key to drop >+ $_ = /(.*) FOREIGN KEY.*/; >+ my $id = $1; >+ if ($id) { >+ # we have found 1 foreign, drop it >+ $dbh->do("ALTER TABLE $table DROP FOREIGN KEY $id"); >+ $id=""; >+ } >+ } >+} >+ >+ >+=head2 TransformToNum >+ >+Transform the Koha version from a 4 parts string >+to a number, with just 1 . >+ >+=cut >+ >+sub TransformToNum { >+ my $version = shift; >+ # remove the 3 last . to have a Perl number >+ $version =~ s/(.*\..*)\.(.*)\.(.*)/$1$2$3/; >+ # three X's at the end indicate that you are testing patch with dbrev >+ # change it into 999 >+ # prevents error on a < comparison between strings (should be: lt) >+ $version =~ s/XXX$/999/; >+ return $version; >+} >+ >+=head2 SetVersion >+ >+set the DBversion in the systempreferences >+ >+=cut >+ >+sub SetVersion { >+ return if $_[0]=~ /XXX$/; >+ #you are testing a patch with a db revision; do not change version >+ my $kohaversion = TransformToNum($_[0]); >+ if (C4::Context->preference('Version')) { >+ my $finish=$dbh->prepare("UPDATE systempreferences SET value=? WHERE variable='Version'"); >+ $finish->execute($kohaversion); >+ } else { >+ my $finish=$dbh->prepare("INSERT into systempreferences (variable,value,explanation) values ('Version',?,'The Koha database version. WARNING: Do not change this value manually, it is maintained by the webinstaller')"); >+ $finish->execute($kohaversion); >+ } >+ C4::Context::clear_syspref_cache(); # invalidate cached preferences >+} >+ >+sub NewVersion { >+ my ( $DBversion, $bug_number, $descriptions ) = @_; >+ >+ SetVersion($DBversion); >+ >+ unless ( ref($descriptions) ) { >+ $descriptions = [ $descriptions ]; >+ } >+ my $first = 1; >+ my $time = POSIX::strftime("%H:%M:%S",localtime); >+ for my $description ( @$descriptions ) { >+ if ( @$descriptions > 1 ) { >+ if ( $first ) { >+ unless ( $bug_number ) { >+ say sprintf "Upgrade to %s done [%s]: %s", $DBversion, $time, $description; >+ } else { >+ say sprintf "Upgrade to %s done [%s]: Bug %5s - %s", $DBversion, $time, $bug_number, $description; >+ } >+ } else { >+ say sprintf "\t\t\t\t\t\t - %s", $description; >+ } >+ } else { >+ unless ( $bug_number ) { >+ say sprintf "Upgrade to %s done [%s]: %s", $DBversion, $time, $description; >+ } else { >+ say sprintf "Upgrade to %s done [%s]: Bug %5s - %s", $DBversion, $time, $bug_number, $description; >+ } >+ } >+ $first = 0; >+ } >+} >+ >+=head2 CheckVersion >+ >+Check whether a given update should be run when passed the proposed version >+number. The update will always be run if the proposed version is greater >+than the current database version and less than or equal to the version in >+kohaversion.pl. The update is also run if the version contains XXX, though >+this behavior will be changed following the adoption of non-linear updates >+as implemented in bug 7167. >+ >+=cut >+ >+sub CheckVersion { >+ my ($proposed_version) = @_; >+ my $version_number = TransformToNum($proposed_version); >+ >+ # The following line should be deleted when bug 7167 is pushed >+ return 1 if ( $proposed_version =~ m/XXX/ ); >+ >+ if ( C4::Context->preference("Version") < $version_number >+ && $version_number <= TransformToNum( $Koha::VERSION ) ) >+ { >+ return 1; >+ } >+ else { >+ return 0; >+ } >+} >+ >+exit; >diff --git a/koha-tmpl/intranet-tmpl/prog/css/addholding.css b/koha-tmpl/intranet-tmpl/prog/css/addholding.css >new file mode 100644 >index 0000000000..968aae6899 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/css/addholding.css >@@ -0,0 +1,346 @@ >+form { >+ display: block; >+} >+ >+div#toolbar { >+ border: 0; >+} >+ >+#addholdingtabs .ui-tabs-nav { >+ display: none; >+} >+ >+.ui-tabs-panel h3 { >+ font-size: 140%; >+ margin: .3em 0; >+} >+ >+.ui-tabs-panel ul { >+ margin-bottom: 0; >+ padding-left: 0; >+} >+ >+ul li.tag, ul li.tag li.subfield_line { >+ list-style-type: none; >+ position: relative; >+ padding-left: 30px; >+} >+ >+ul li.tag::before { >+ position: absolute; >+ font-size: .8em; >+ top: 0; >+ left: 10px; >+ content: " "; >+} >+ >+ >+ul li.tag.sortable_tag::before, >+ul li.tag li.subfield_line::before { >+ color: #999; >+ cursor: move; >+ position: absolute; >+ font-family: 'FontAwesome'; >+ font-size: .8em; >+ top: 0; >+ left: 10px; >+ content: "\f0c9"; >+} >+ >+ul li.tag::before { >+ padding-top: 1.7em; >+} >+ >+li.ui-sortable-helper { >+ background-color: #e0e0e0; >+ max-height: 150px; >+ padding: 2px; >+ border-radius: 4px; >+} >+ >+li.ui-sortable-helper ul li { >+ display: none !important; >+} >+ >+.sortable_subfield .ui-sortable-helper input.flat { >+ background-color: transparent; >+} >+ >+ul li.tag li.subfield_line.ui-sortable-helper::before { >+ top: 5px; >+} >+ >+.buttonPlus { >+ font-weight : bold; >+ text-decoration : none; >+} >+ >+.buttonMinus { >+ font-weight : bold; >+ text-decoration : none; >+} >+ >+a.expandfield { >+ text-decoration : none; >+} >+ >+.toptabs .ui-tabs-nav li a { >+ padding : .2em 1.2em; >+} >+ >+.tag { >+ border-bottom: 2px solid #D5E6E9; >+ clear: both; >+ padding: .7em 0; >+} >+ >+li.subfield_line { >+ padding-bottom: .3em; >+ float: left; >+ clear: left; >+ width: 100%; >+} >+ >+li.subfield_line label { >+ font-size:89%; >+ float: left; >+ padding-right : .4em; >+ width: 16em; >+ text-align: left; >+ clear:left; >+} >+ >+.subfieldcode img { >+ cursor: pointer; >+} >+ >+.tag_title { >+ font-size : 90%; >+ padding : .2em 0; >+} >+ >+.tagnum { >+ font-size : 130%; >+ font-weight : bold; >+ color : #000; >+ padding : .1em .3em .1em 0; >+} >+ >+a.tagnum { >+ font-size : 110%; >+ font-weight : bold; >+ color : #000; >+ padding : .1em .3em .1em 0; >+ text-decoration : none; >+} >+ >+.subfield { >+ color : #00698a; >+ float: left; >+ width: 10em; >+ text-align:right; >+} >+ >+.subfield.subfield_mandatory { >+ color: #C00; >+} >+ >+.subfieldcode { >+ display: block; >+ float: left; >+} >+ >+.labelsubfield { >+ float:left; >+} >+ >+.input_marceditor { >+ float:left; >+ width:30em; >+} >+ >+.indicator { >+ width: 1em; >+ box-sizing: content-box; >+} >+ >+#cataloguing_additem_newitem fieldset.rows label, #cataloguing_additem_newitem fieldset.rows span.label { >+ font-size : 100%; >+ width : 25%; >+} >+ >+#cataloguing_additem_newitem fieldset.rows li { >+ padding-bottom : 3px; >+} >+#cataloguing_additem_newitem .input_marceditor { >+ width : auto; >+} >+ >+#cataloguing_additem_newitem textarea.input_marceditor { >+ width : 31em; >+} >+ >+.mandatory_marker { >+ color: red; >+} >+.linktools { display: block; white-space: nowrap; } >+.linktools a { font-size : 75%; display:block;text-decoration:none;} >+.linktools a {margin:0 2px;padding:2px;background-color:#FFF;text-align:center; } >+.linktools a:first-child { border-bottom: 1px solid #DDD; } >+.linktools a:hover { background-color: #FFC; } >+.subfield_controls { margin : 0 .5em; } >+ >+#cataloguing_additem_itemlist { >+ margin-bottom : 1em; >+} >+.yui-gf div.first { >+ width : 19%; >+} >+ >+.yui-gf .yui-u { >+ width: 79.2%; >+} >+ >+tbody tr.active:nth-child(2n+1) td, >+tbody tr.active td { >+ background-color: #FFFFCC; >+} >+ >+#loading { >+ background-color: #FFF; >+ cursor: wait; >+ height: 100%; >+ left: 0; >+ opacity: .7; >+ position: fixed; >+ top: 0; >+ width: 100%; >+ z-index: 1000; >+} >+#loading div { >+ background : transparent url(../img/loading.gif) top left no-repeat; >+ font-size : 175%; >+ font-weight: bold; >+ height: 2em; >+ left: 50%; >+ margin: -1em 0 0 -2.5em; >+ padding-left : 50px; >+ position: absolute; >+ top: 50%; >+ width: 15em; >+} >+ >+.ui-tabs .ui-tabs-panel { >+ border: 0; >+ padding: 0; >+} >+ >+.toolbar-tabs-container { >+ margin: 3em -5px -5px -5px; >+} >+ >+.toolbar-tabs { >+ background-color: #FFF; >+ clear: both; >+ display: flex; >+ flex-direction: row; >+ justify-content: center; >+ margin-bottom: 0; >+ padding-left: 0; >+} >+ >+.toolbar-tabs li { >+ background-color: #fff; >+ display: flex; >+ justify-content: center; >+ flex-grow: 1; >+ text-align: center; >+ margin-bottom: 0; >+} >+ >+.toolbar-tabs li a { >+ border: 1px solid #EDF4F6; >+ border-left: 0; >+ border-right: 1px solid #EDF4F6; >+ border-bottom-right-radius: 5px; >+ border-bottom-left-radius: 5px; >+ display: block; >+ font-weight: bold; >+ padding: .3em 1.5em; >+ width: 100%; >+} >+ >+.toolbar-tabs li.selected a { >+ background-color: #EDF4F6; >+ border-right: 1px solid #C3D6DB; >+ border-bottom: 1px solid #C3D6DB; >+ font-weight: bold; >+} >+ >+.toolbar-tabs li.selected a:hover { >+ background-color: #EDF4F6; >+} >+ >+.toolbar-tabs li a:hover { >+ background-color: #F4F8F9; >+} >+ >+.toolbar-tabs li:first-child a { >+ border-left: 1px solid #EDF4F6; >+} >+ >+.tag_anchors_list { >+ background-color: #FFF; >+ clear: both; >+ display: block; >+ font-size: 95%; >+ margin-bottom: 0; >+ padding-left: 0; >+} >+ >+.tag_anchor.selected { >+ font-weight: bold; >+} >+ >+.tag_anchors { >+ display: none; >+ padding: .5em 0; >+} >+ >+.tag_anchors a { >+ border-right: 1px solid #EDF4F6; >+ display: inline-block; >+ padding: 0 .4em; >+} >+ >+.tag_anchors.tab_selected { >+ display: inline-block; >+} >+ >+@media (min-width: 768px) { >+ li.subfield_line label { >+ width: 20em; >+ } >+ >+ .input_marceditor { >+ width: 50em; >+ } >+ >+ .subfield { >+ width: 14em; >+ } >+} >+ >+@media (min-width: 1200px) { >+ li.subfield_line label { >+ width: 25em; >+ } >+ >+ .input_marceditor { >+ width: 60em; >+ } >+ >+ .subfield { >+ width: 16em; >+ } >+} >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >index a467c7a27f..6d547b1d34 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/cat-toolbar.inc >@@ -11,6 +11,10 @@ CAN_user_serials_create_subscription ) %] > <li><a id="newbiblio" href="/cgi-bin/koha/cataloguing/addbiblio.pl">New record</a></li> > [% END %] > >+ [% IF ( Koha.Preference('SummaryHoldings') && CAN_user_editcatalogue_edit_items ) %] >+ <li><a id="newholding" href="/cgi-bin/koha/cataloguing/addholding.pl?biblionumber=[% biblionumber | uri %]#addholding">New holdings record</a></li> >+ [% END %] >+ > [% IF ( CAN_user_editcatalogue_edit_items ) %] > <li><a id="newitem" href="/cgi-bin/koha/cataloguing/additem.pl?biblionumber=[% biblionumber | html %]#additema">New item</a></li> > [% END %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >index 56462c51d5..d24acb7be5 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt >@@ -179,6 +179,7 @@ > [% IF (cannotdelbiblio.itemcount) %]<li>[% cannotdelbiblio.itemcount | html %] item(s) attached.</li>[% END %] > [% IF (cannotdelbiblio.subscriptions) %]<li>[% cannotdelbiblio.subscriptions | html %] subscription(s) attached.</li>[% END %] > [% IF (cannotdelbiblio.countbiblio) %]<li>[% cannotdelbiblio.countbiblio | html %] order(s) attached.</li>[% END %] >+ [% IF (cannotdelbiblio.holdingscount) %]<li>[% cannotdelbiblio.holdingscount | html %] holdings record(s) attached.</li>[% END %] > [% IF (cannotdelbiblio.othererror) %]<li>Unknown error.</li>[% END %] > </ul> > </li> >@@ -569,6 +570,9 @@ > [% ELSE %] > <span class="button" title="Can't delete catalog record, see constraints below">Can't cancel order and delete catalog record</span><br> > [% END %] >+ [% IF ( books_loo.holdings ) %] >+ <strong title="Can't delete catalog record, because of [% books_loo.holdings | html %] existing holdings record(s)" >[% books_loo.holdings | html %] holdings record(s) left</strong><br> >+ [% END %] > [% IF ( books_loo.left_item ) %] > <strong title="Can't delete catalog record, because of [% books_loo.items | html %] existing hold(s)" >[% books_loo.items | html %] item(s) left</strong><br> > [% END %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/biblio_framework.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/biblio_framework.tt >index 9371c2ced9..d1a55facaa 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/biblio_framework.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/biblio_framework.tt >@@ -132,7 +132,7 @@ > <tbody> > <tr> > <td> </td> >- <td>Default framework</td> >+ <td>Default bibliographic framework</td> > <td> > <div class="btn-group dropup"> > <a class="btn btn-default btn-xs dropdown-toggle" id="frameworkactions[% loo.frameworkcode | html %]" role="button" data-toggle="dropdown" href="#"> >@@ -196,7 +196,6 @@ > </div> <!-- /#import_modal_... --> > </td> > </tr> >- > [% FOREACH loo IN frameworks %] > <tr> > <td>[% loo.frameworkcode | html %]</td> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref >index 575dde1c50..5cc1800eb2 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref >@@ -297,3 +297,10 @@ Cataloging: > - "All values of repeating tags and subfields will be printed with the given RIS tag." > - "<br/>" > - "Use of TY ( record type ) as a key will <em>replace</em> the default TY with the field value of your choosing." >+ Holdings: >+ - >+ - pref: SummaryHoldings >+ choices: >+ yes: Use >+ no: "Don't use" >+ - summary holdings records. >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >index 55f13b75d8..f5cef2a537 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt >@@ -7,6 +7,7 @@ > [% USE Biblio %] > [% USE Price %] > [% USE TablesSettings %] >+[% USE Holdings %] > [% PROCESS 'i18n.inc' %] > [% SET AdlibrisEnabled = Koha.Preference('AdlibrisCoversEnabled') %] > [% SET AdlibrisURL = Koha.Preference('AdlibrisCoversURL') %] >@@ -30,6 +31,8 @@ > [% END %] > [% END %] > >+[% ShowSummaryHoldings = Koha.Preference('SummaryHoldings') %] >+ > [% SET footerjs = 1 %] > [% INCLUDE 'doc-head-open.inc' %] > <title>Koha › Catalog › >@@ -234,16 +237,19 @@ > <ul> > [% IF (SeparateHoldings) %] > <li> >- <a href="#holdings">[% Branches.GetLoggedInBranchname | html %] holdings ([% itemloop.size() || 0 | html %])</a> >+ <a href="#holdings">[% Branches.GetLoggedInBranchname | html %] [% IF (ShowSummaryHoldings) %]items[% ELSE %]holdings[% END %] ([% itemloop.size() || 0 | html %])</a> > </li> > <li> >- <a href="#otherholdings">Other holdings ([% otheritemloop.size() || 0 | html %])</a> >+ <a href="#otherholdings">[% IF (ShowSummaryHoldings) %]Other items[% ELSE %]Other holdings[% END %] ([% otheritemloop.size() || 0 | html %])</a> > </li> > [% ELSE %] > <li> >- <a href="#holdings">Holdings ([% itemloop.size() || 0 | html %])</a> >+ <a href="#holdings">[% IF (ShowSummaryHoldings) %]Items[% ELSE %]Holdings[% END %] ([% itemloop.size() || 0 | html %])</a> > </li> > [% END %] >+ [% IF (ShowSummaryHoldings) %] >+ <li><a href="#summaryholdings">Holdings ([% summary_holdings.count() || 0 | html %])</a></li> >+ [% END %] > [% IF ( MARCNOTES || notes ) %]<li><a href="#description">Descriptions ([% ( MARCNOTES.size || 1 ) | html %])</a></li>[% END %] > [% IF ( subscriptionsnumber ) %]<li><a href="#subscriptions">Subscriptions</a></li>[% END %] > [% IF Koha.Preference('AcquisitionDetails') %]<li><a href="#acq_details">Acquisition details</a></li>[% END %] >@@ -265,6 +271,54 @@ > [% END %] > </ul> > >+[% IF ( ShowSummaryHoldings ) %] >+ <div id="summaryholdings"> >+ >+ [% IF ( summary_holdings ) %] >+ <div class="summaryholdings_table_controls"> >+ </div> >+ <table class="summaryholdings_table"> >+ <thead> >+ <tr> >+ <th>Library</th> >+ <th>Location</th> >+ <th>Collection</th> >+ <th>Call number</th> >+ <th>Status</th> >+ [% IF ( CAN_user_editcatalogue_edit_items ) %]<th class="NoSort"> </th>[% END %] >+ </tr> >+ </thead> >+ <tbody> >+ [% FOREACH holding IN summary_holdings %] >+ <tr> >+ <td class="branch">[% UNLESS ( singlebranchmode ) %][% Branches.GetName( holding.holdingbranch ) | html %] [% END %]</td> >+ <td class="location"><span class="shelvingloc">[% holding.location | html %]</span> >+ <td class="collection">[% holding.ccode | html %]</span> >+ <td class="itemcallnumber">[% IF ( holding.callnumber ) %] [% holding.callnumber | html %][% END %]</td> >+ <td class="status"> >+ [% IF ( holding.suppress ) %] >+ <span class="suppressed">Suppressed in OPAC</span> >+ [% END %] >+ </td> >+ [% IF CAN_user_editcatalogue_edit_items %] >+ <td class="actions"> >+ <a class="btn btn-default btn-xs" href="/cgi-bin/koha/cataloguing/addholding.pl?op=edit&biblionumber=[% holding.biblionumber | uri %]&holding_id=[% holding.holding_id | uri %]#editholding"><i class="fa fa-pencil"></i> Edit</a> >+ <a class="btn btn-default btn-xs delete" href="/cgi-bin/koha/cataloguing/addholding.pl?op=delete&biblionumber=[% holding.biblionumber | uri %]&holding_id=[% holding.holding_id | uri %]"><i class="fa fa-eraser"></i> Delete</a> >+ <a class="btn btn-default btn-xs" href="/cgi-bin/koha/cataloguing/additem.pl?biblionumber=[% holding.biblionumber | uri %]&holding_id=[% holding.holding_id | uri %]#additema"><i class="fa fa-plus"></i> Add item</a> >+ <a class="btn btn-default btn-xs previewMARC" href="/cgi-bin/koha/catalogue/showmarc.pl?holding_id=[% holding.holding_id | uri %]&viewas=html" title="MARC">Show MARC</a> >+ </td> >+ [% END %] >+ </tr> >+ [% END %] >+ </tbody> >+ </table> >+ [% ELSE %] >+ <div id="noitems">No holdings records</div> >+ [% END %] >+ >+ </div> >+[% END %] >+ > [% items_table_block_iter = 0 %] > [% BLOCK items_table %] > [% items_table_block_iter = items_table_block_iter + 1 %] >@@ -291,6 +345,7 @@ > <th id="[% tab | html %]_cover_image" data-colname="[% tab | html %]_cover_image">Cover image</th> > [% END %] > [% IF ( item_level_itypes ) %]<th id="[% tab | html %]_itype" data-colname="[% tab | html %]_itype">Item type</th>[% END %] >+ [% IF ( ShowSummaryHoldings ) %]<th>Holdings record</th>[% END %] > <th id="[% tab | html %]_holdingbranch" data-colname="[% tab | html %]_holdingbranch">Current library</th> > <th id="[% tab | html %]_homebranch" data-colname="[% tab | html %]_homebranch">Home library</th> > [% IF ( itemdata_ccode ) %]<th id="[% tab | html %]_ccode" data-colname="[% tab | html %]_ccode">Collection</th>[% END %] >@@ -352,6 +407,9 @@ > <span class="itypedesc">[% item.translated_description | html %]</span> > </td> > [% END %] >+ [% IF ( ShowSummaryHoldings ) %] >+ <td class="holding">[% Holdings.GetLocation(item.holding_id) | html %]</td> >+ [% END %] > <td class="location">[% UNLESS ( singlebranchmode ) %][% Branches.GetName( item.branchcode ) | html %] [% END %]</td> > <td class="homebranch"> > <span class="homebranchdesc">[% Branches.GetName(item.homebranch) | html %]</span> >@@ -1192,14 +1250,22 @@ Note that permanent location is a code, and location may be an authval. > $("input[name='itemnumber'][type='checkbox']", $("#"+tab)).prop('checked', false); > itemSelectionBuildActionLinks(tab); > }); >+ >+ $('a.delete').click(function() { >+ return confirm(_("Are you sure?")); >+ }); > }); > [% END %] > > $(document).ready(function() { > $('#bibliodetails').tabs(); >- [% IF count == 0 and ( Koha.Preference('HTML5MediaEnabled') == 'staff' or Koha.Preference('HTML5MediaEnabled') == 'both' ) %] >- $('#bibliodetails').tabs("option", "active", $('#media_tab').index() ); >- [% END %] >+ [% IF count == 0 %] >+ [% IF ShowSummaryHoldings and (summary_holdings.count() || 0) %] >+ $('#bibliodetails').tabs("option", "active", $('#summaryholdings').index() ); >+ [% ELSIF Koha.Preference('HTML5MediaEnabled') == 'staff' or Koha.Preference('HTML5MediaEnabled') == 'both' %] >+ $('#bibliodetails').tabs("option", "active", $('#media_tab').index() ); >+ [% END %] >+ [% END %] > $('#search-form').focus(); > $('.thumbnails > li > .remove').click(function() { > var result = confirm(_("Are you sure you want to delete this cover image?")); >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt >index 9c7a1357b8..642e74cc62 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/moredetail.tt >@@ -4,6 +4,7 @@ > [% USE Koha %] > [% USE Branches %] > [% USE Price %] >+[% USE Holdings %] > [% SET footerjs = 1 %] > [% INCLUDE 'doc-head-open.inc' %] > <title>Koha › Catalog › Item details for [% INCLUDE 'biblio-title-head.inc' %]</title> >@@ -79,6 +80,7 @@ > [% END %][% END %]</h4> > <div class="rows"> > <ol class="bibliodetails"> >+ <li><span class="label">Holdings record:</span> [% Holdings.GetLocation( ITEM_DAT.holding_id ) | html %] </li> > <li><span class="label">Home library:</span> [% Branches.GetName( ITEM_DAT.homebranch ) | html %] </li> > [% IF ( item_level_itypes ) %] > <li><span class="label">Item type:</span> [% ITEM_DAT.itype | html %] </li> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt >index 495b7d0eaf..a9c43ffd29 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/results.tt >@@ -3,6 +3,7 @@ > [% USE Asset %] > [% USE Koha %] > [% USE Biblio %] >+[% USE Holdings %] > [% USE KohaDates %] > [% PROCESS 'i18n.inc' %] > [% SET footerjs = 1 %] >@@ -526,6 +527,19 @@ > > <td> > <div class="availability"> >+ [% IF ( SEARCH_RESULT.summary_holdings ) %] >+ <div class="holdings"> >+ <strong>Holdings</strong> >+ <ul> >+ [% FOREACH holding IN SEARCH_RESULT.summary_holdings %] >+ <li> >+ [% Holdings.GetLocation(holding) | html %] >+ </li> >+ [% END %] >+ </ul> >+ </div> >+ [% END %] >+ > [% IF ( SEARCH_RESULT.items_count ) %] > <strong> > [% IF MaxSearchResultsItemsPerRecordStatusCheck && SEARCH_RESULT.items_count > MaxSearchResultsItemsPerRecordStatusCheck %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addholding.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addholding.tt >new file mode 100644 >index 0000000000..a4f449d350 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addholding.tt >@@ -0,0 +1,712 @@ >+[% USE raw %] >+[% USE Asset %] >+[% USE Koha %] >+[% INCLUDE 'doc-head-open.inc' %] >+<title>Koha › Cataloging › [% title | html %] [% IF ( author ) %] by [% author | html %][% END %] (Record #[% biblionumber | html %]) › Holdings</title> >+[% INCLUDE 'doc-head-close.inc' %] >+[% Asset.js("lib/hc-sticky.js") | $raw %] >+[% Asset.js("js/cataloging.js") | $raw %] >+[% Asset.js("js/browser.js") | $raw %] >+[% Asset.css("css/addholding.css") | $raw %] >+[% INCLUDE 'select2.inc' %] >+</head> >+ >+<body id="cat_addholding" class="cat"> >+ >+<script> >+ var browser = KOHA.browser('[% searchid | html %]', parseInt('[% biblionumber | html %]', 10)); >+ browser.show(); >+ >+ $(window).load(function() { >+ $("#loading").hide(); >+ }); >+ var Sticky; >+ $(document).ready(function() { >+ var $tabs = $('#addholdingtabs').tabs().bind('show.ui-tabs', function(e, ui) { >+ $("#"+ui.panel.id+" input:eq(0)").focus(); >+ }); >+ $( "ul.sortable_field", $tabs ).sortable({ >+ axis: "y", >+ containment: $("#addholdingtabs") >+ }); >+ $( "ul.sortable_subfield", $tabs ).sortable({ >+ axis: "y", >+ containment: "parent" >+ }); >+ >+ [% IF tab %] >+ link = $("a[href='#[% tab | html %]']"); >+ selectTab( link ); >+ [% END %] >+ >+ >+ Sticky = $("#toolbar"); >+ Sticky.hcSticky({ >+ stickTo: "#f", >+ stickyClass: "floating" >+ }); >+ >+ /* check cookie to hide/show marcdocs*/ >+ if( Cookies.get("marcdocs_[% borrowernumber | html %]") == 'hide'){ >+ toggleMARCdocLinks(false); >+ } else { >+ toggleMARCdocLinks(true); >+ } >+ >+ $("#marcDocsSelect").click(function(){ >+ if( Cookies.get("marcdocs_[% borrowernumber | html %]") == 'hide'){ >+ toggleMARCdocLinks(true); >+ } else { >+ toggleMARCdocLinks(false); >+ } >+ }); >+ >+ /* check cookie to hide/show marc tags*/ >+ var marctags_cookie = Cookies.get("marctags_[% borrowernumber | html %]"); >+ if( marctags_cookie == 'hide'){ >+ toggleMARCTagLinks(false); >+ } else if( marctags_cookie == 'show'){ >+ toggleMARCTagLinks(true) >+ } else { >+ [% UNLESS Koha.Preference("hide_marc") %] >+ toggleMARCTagLinks(true) >+ [% ELSE %] >+ toggleMARCTagLinks(false); >+ [% END %] >+ } >+ >+ $("#marcTagsSelect").click(function(){ >+ if( Cookies.get("marctags_[% borrowernumber | html %]") == 'hide'){ >+ toggleMARCTagLinks(true) >+ } else { >+ toggleMARCTagLinks(false); >+ } >+ }); >+ >+ $("#saverecord").click(function(){ >+ $(".btn-group").removeClass("open"); >+ onOption(); >+ return false; >+ }); >+ >+ $("#saveandview").click(function(){ >+ $(".btn-group").removeClass("open"); >+ redirect("view"); >+ return false; >+ }); >+ >+ $("#saveanditems").click(function(){ >+ $(".btn-group").removeClass("open"); >+ redirect("items"); >+ return false; >+ }); >+ $("#saveandcontinue").click(function(){ >+ $(".btn-group").removeClass("open"); >+ var tab = $("#addholdingtabs li.ui-tabs-active:first a").attr('href'); >+ tab = tab.replace('#', ''); >+ $("#current_tab").val(tab); >+ redirect("just_save", tab); >+ return false; >+ }); >+ >+ $( '#switcheditor' ).click( function() { >+ >+ if ( !confirm( _("Any changes will not be saved. Continue?") ) ) return false; >+ >+ Cookies.set( 'catalogue_editor_[% logged_in_user.borrowernumber | html %]', 'advanced', { expires: 365, path: '/' } ); >+ >+ var holding_id = [% holding_id || "''" | html %]; >+ window.location = '/cgi-bin/koha/cataloguing/editor.pl#catalog/' + biblionumber + '/holdings/' + holding_id; >+ >+ return false; >+ } ); >+ $(".change-framework").on("click", function(){ >+ var frameworkcode = $(this).data("frameworkcode"); >+ $("#frameworkcode").val( frameworkcode ); >+ Changefwk(); >+ }); >+ >+ $(".toolbar-tabs a").on("click",function(e){ >+ e.preventDefault(); >+ selectTab( $(this ) ); >+ }); >+ >+ $(".tag_anchor").on("click", function(e){ >+ e.preventDefault(); >+ var toolbar_height = $("#toolbar").outerHeight(); >+ $(".tag_anchor").removeClass("selected"); >+ $(this).addClass("selected"); >+ var link = this.href; >+ var linkid = link.substring( link.indexOf("#") + 1 ); >+ var dest = $("#" + linkid ); >+ var yoffset = dest.offset(); >+ window.scrollTo( 0, yoffset.top - toolbar_height - 20 ); >+ }); >+ >+ }); >+ >+ function selectTab( tablink ){ >+ $(".toolbar-tabs li").removeClass("selected"); >+ tablink.parent().addClass("selected"); >+ var tabid = tablink.data("tabid"); >+ $('#addholdingtabs').selectTabByID("#tab" + tabid + "XX"); >+ $(".tag_anchors").removeClass("tab_selected").hide(); >+ $(".tag_anchors_" + tabid ).addClass("tab_selected").show(); >+ } >+ >+ function redirect(dest){ >+ $("#redirect").attr("value",dest); >+ return Check(); >+ } >+ >+ [% IF ( CAN_user_editcatalogue_edit_items ) %] >+ var onOption = function () { >+ return Check(); >+ } >+ [% END %] >+ >+ function Dopop(link,i) { >+ defaultvalue = document.getElementById(i).value; >+ window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes'); >+ } >+ >+ function PopupMARCFieldDoc(field) { >+ [% IF ( marcflavour == 'MARC21' ) %] >+ _MARC21FieldDoc(field); >+ [% ELSIF ( marcflavour == 'UNIMARC' ) %] >+ _UNIMARCFieldDoc(field); >+ [% END %] >+ } >+ >+ function _MARC21FieldDoc(field) { >+ if(field == 0) { >+ window.open("http://www.loc.gov/marc/holdings/hdleader.html"); >+ } else if (field < 900) { >+ window.open("http://www.loc.gov/marc/holdings/hd" + ("000"+field).slice(-3) + ".html"); >+ } else { >+ window.open("http://www.loc.gov/marc/holdings/hd9xx.html"); >+ } >+ } >+ >+ function _UNIMARCFieldDoc(field) { >+ /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but >+ seems to be the only version available that can be linked to per tag. More recent >+ versions of the UNIMARC standard are available on the IFLA website only as >+ PDFs! >+ */ >+ var url; >+ if (field == 0) { >+ url = "http://archive.ifla.org/VI/3/p1996-1/uni.htm"; >+ } else { >+ var first = field.substring(0,1); >+ url = "http://archive.ifla.org/VI/3/p1996-1/uni" + first + ".htm#"; >+ if (first == 0) url = url + "b"; >+ url = first == 9 >+ ? "http://archive.ifla.org/VI/3/p1996-1/uni9.htm" >+ : url + field; >+ } >+ window.open(url); >+ } >+ >+ /* >+ * Functions to hide/show marc docs and tags links >+ */ >+ >+ function toggleMARCdocLinks(flag){ >+ if( flag === true ){ >+ $(".marcdocs").show(); >+ $.cookie("marcdocs_[% borrowernumber | html %]",'show', { path: "/", expires: 365 }); >+ $("#marcDocsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o'); >+ } else { >+ $(".marcdocs").hide(); >+ $.cookie("marcdocs_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 }); >+ $("#marcDocsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o'); >+ } >+ } >+ >+ function toggleMARCTagLinks(flag){ >+ if( flag === true ){ >+ $(".tagnum").show(); >+ $(".subfieldcode").show(); >+ $.cookie("marctags_[% borrowernumber | html %]",'show', { path: "/", expires: 365 }); >+ $("#marcTagsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o'); >+ } else { >+ $(".tagnum").hide(); >+ $(".subfieldcode").hide(); >+ $.cookie("marctags_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 }); >+ $("#marcTagsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o'); >+ } >+ } >+ >+ /** >+ * check if mandatory subfields are written >+ */ >+ function AreFieldsNotOk(){ >+ var mandatories = new Array(); >+ var mandatoriesfields = new Array(); >+ var tab = new Array(); >+ var label = new Array(); >+ var flag=0; >+ var tabflag= new Array(); >+ [% FOREACH BIG_LOO IN BIG_LOOP %] >+ [% FOREACH innerloo IN BIG_LOO.innerloop %] >+ [% IF ( innerloo.mandatory ) %] >+ mandatoriesfields.push(new Array("[% innerloo.tag | html %]","[% innerloo.index | html %][% innerloo.random | html %]","[% innerloo.index | html %]")); >+ [% END %] >+ [% FOREACH subfield_loo IN innerloo.subfield_loop %] >+ [% IF ( subfield_loo.mandatory ) %] >+ mandatories.push("[% subfield_loo.id | html %]"); >+ tab.push("[% BIG_LOO.number | html %]"); >+ label.push("[% subfield_loo.marc_lib | $raw %]"); >+ [% END %] >+ [% END %] >+ [% END %] >+ [% END %] >+ var StrAlert = _("Can't save this record because the following field aren't filled:"); >+ StrAlert += "\n\n"; >+ for (var i=0,len=mandatories.length; i<len ; i++) { >+ var tag=mandatories[i].substr(4,3); >+ var subfield=mandatories[i].substr(17,1); >+ var tagnumber=mandatories[i].substr(19,mandatories[i].lastIndexOf("_")-19); >+ if (tabflag[tag+subfield+tagnumber] == null) { >+ tabflag[tag+subfield+tagnumber]=new Array(); >+ tabflag[tag+subfield+tagnumber][0]=0; >+ } >+ if (tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(mandatories[i]) != null && ! document.getElementById(mandatories[i]).value || document.getElementById(mandatories[i]) == null)) { >+ tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ; >+ document.getElementById(mandatories[i]).setAttribute('class','subfield_not_filled'); >+ $('#' + mandatories[i]).focus(); >+ tabflag[tag+subfield+tagnumber][1]=label[i]; >+ tabflag[tag+subfield+tagnumber][2]=tab[i]; >+ } else { >+ tabflag[tag+subfield+tagnumber][0] = 1; >+ } >+ } >+ for (var tagsubfieldid in tabflag) { >+ if (tabflag[tagsubfieldid][0]==0) { >+ var tag=tagsubfieldid.substr(0,3); >+ var subfield=tagsubfieldid.substr(3,1); >+ StrAlert += "\t* "+_("tag %s subfield %s %s in tab %s").format(tag, subfield, tabflag[tagsubfieldid][1], tabflag[tagsubfieldid][2]) + "\n"; >+ flag=1; >+ } >+ } >+ >+ /* Check for mandatories field(not subfields) */ >+ for (var i=0,len=mandatoriesfields.length; i<len; i++) { >+ isempty = true; >+ arr = mandatoriesfields[i]; >+ divid = "tag_" + arr[0] + "_" + arr[1]; >+ varegexp = new RegExp("^tag_" + arr[0] + "_code_"); >+ >+ if(parseInt(arr[0]) >= 10) { >+ elem = document.getElementById(divid); >+ eleminputs = elem.getElementsByTagName('input'); >+ >+ for(var j=0,len2=eleminputs.length; j<len2; j++){ >+ >+ if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){ >+ inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]); >+ >+ for( var k=0; k<len2; k++){ >+ if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){ >+ isempty = false >+ } >+ } >+ >+ elemselect = elem.getElementsByTagName('select'); >+ for( var k=0; k<elemselect.length; k++){ >+ if(elemselect[k].id.match(inputregexp) && elemselect[k].value){ >+ isempty = false >+ } >+ } >+ } >+ } >+ >+ elemtextareas = elem.getElementsByTagName('textarea'); >+ for(var j=0,len2=elemtextareas.length; j<len2; j++){ >+ // this bit assumes that the only textareas in this context would be for subfields >+ if (elemtextareas[j].value) { >+ isempty = false; >+ } >+ } >+ } else { >+ isempty = false; >+ } >+ >+ if (isempty) { >+ flag = 1; >+ StrAlert += "\t* " + _("Field %s is mandatory, at least one of its subfields must be filled.").format(arr[0]) + "\n"; >+ } >+ } >+ >+ if (flag) { >+ return StrAlert; >+ } else { >+ return flag; >+ } >+ } >+ >+ /** >+ * >+ * >+ */ >+ function Check(){ >+ var StrAlert = AreFieldsNotOk(); >+ if( ! StrAlert ){ >+ var StrWarning = AreFieldsNotOk(false); >+ if (StrWarning){ >+ StrWarning += "\n" + _("Are you sure you want to save?"); >+ var r=confirm(StrWarning); >+ if (! r){ >+ return false; >+ } >+ } >+ document.f.submit(); >+ return true; >+ } else { >+ alert(StrAlert); >+ return false; >+ } >+ } >+ >+ function Changefwk() { >+ var f = document.f; >+ f.op.value = "[% op | html %]"; >+ f.biblionumber.value = "[% biblionumber | html %]"; >+ f.holding_id.value = "[% holding_iddata | html %]"; >+ f.changed_framework.value = "changed"; >+ f.submit(); >+ } >+ >+ $(document).ready(function() { >+ $('.subfield_line select').select2(); >+ }); >+</script> >+ >+ <div id="loading"> >+ <div>Loading, please wait...</div> >+ </div> >+ >+ [% INCLUDE 'header.inc' %] >+ >+ <div id="breadcrumbs"> >+ <a href="/cgi-bin/koha/mainpage.pl">Home</a> › >+ <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a> › >+ Edit <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber | uri %]">[% title | html %] [% IF ( author ) %] by [% author | html %][% END %] (Record #[% biblionumber | html %])</a> › >+ <a href="/cgi-bin/koha/cataloguing/addholding.pl?biblionumber=[% biblionumber | uri %]">Holdings</a> >+ </div> >+ >+ <div class="main container-fluid"> >+ <div class="row"> >+ <div class="col-md-10 col-md-offset-1"> >+ >+ <h1> >+ [% IF ( holding_id ) %] >+ Edit holdings record number [% holding_id | html %] >+ [% ELSE %] >+ Add holdings record >+ [% END %] >+ </h1> >+ >+ [% IF ( error_items_exist ) %]<div class="dialog alert"><strong>This holdings record has items attached.</strong> Please delete them first.</div>[% END %] >+ [% IF ( error_delete_failed ) %]<div class="dialog alert"><strong>Error deleting the record.</strong></div>[% END %] >+ >+ [% IF ( done ) %] >+ <script> >+ opener.document.forms['f'].holding_id.value=[% holding_id | html %]; >+ window.close(); >+ </script> >+ [% ELSE %] >+ <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addholding.pl" onsubmit="return Check();"> >+ <input type="hidden" value="[% IF ( holding_id ) %]view[% ELSE %]holdings[% END %]" id="redirect" name="redirect" /> >+ <input type="hidden" value="" id="current_tab" name="current_tab" /> >+ [% END %] >+ >+ <div id="toolbar" class="btn-toolbar"> >+ [% IF CAN_user_editcatalogue_edit_items %] >+ <div class="btn-group"> >+ <button class="btn btn-default" id="saverecord"><i class="fa fa-save"></i> Save</button> >+ <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"> >+ <span class="caret"></span> >+ </button> >+ <ul class="dropdown-menu"> >+ <li><a id="saveandview" href="#">Save and view record</a></li> >+ <li><a id="saveanditems" href="#">Save and edit items</a></li> >+ <li><a id="saveandcontinue" href="#">Save and continue editing</a></li> >+ </ul> >+ </div> >+ [% END %] >+ >+ <div class="btn-group"> >+ <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i> Settings <span class="caret"></span></button> >+ <ul id="settings-menu" class="dropdown-menu"> >+ [% IF Koha.Preference( 'EnableAdvancedCatalogingEditor' ) == 1 %] >+ [% # disabled until supported <li><a href="#" id="switcheditor">Switch to advanced editor</a></li> %] >+ [% END %] >+ [% IF marcflavour != 'NORMARC' AND NOT advancedMARCEditor %] >+ <li> >+ <a href="#" id="marcDocsSelect"><i class="fa fa-check-square-o"></i> Show MARC tag documentation links</a> >+ <li> >+ <a href="#" id="marcTagsSelect"><i class="fa fa-check-square-o"></i> Show tags</a> >+ </li> >+ [% END %] >+ <li class="dropdown-header">Change framework</li> >+ <li> >+ <a href="#" class="change-framework" data-frameworkcode=""> >+ [% IF ( frameworkcode ) %] >+ <i class="fa fa-fw"> </i> >+ [% ELSE %] >+ <i class="fa fa-fw fa-check"></i> >+ [% END %] >+ Default >+ </a> >+ </li> >+ [% FOREACH framework IN frameworks%] >+ <li> >+ <a href="#" class="change-framework" data-frameworkcode="[% framework.frameworkcode | html %]"> >+ [% IF framework.frameworkcode == frameworkcode %] >+ <i class="fa fa-fw fa-check"></i> >+ [% ELSE %] >+ <i class="fa fa-fw"> </i> >+ [% END %] >+ [% framework.frameworktext | html %] >+ </a> >+ </li> >+ [% END %] >+ </ul> <!-- /#settings-menu --> >+ </div> <!-- /.btn-group --> >+ <div class="btn-group"> >+ <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber | url %]">Cancel</a> >+ </div> >+ <div class="toolbar-tabs-container"> >+ [% IF ( BIG_LOOP.size > 1 ) %] >+ <ul class="toolbar-tabs"> >+ [%- FOREACH BIG_LOO IN BIG_LOOP -%] >+ [% IF loop.first %] >+ <li class="selected"> >+ [% ELSE %] >+ <li> >+ [% END %] >+ <a data-tabid="[% BIG_LOO.number | html %]" href="#tab[% BIG_LOO.number | html %]XX">[% BIG_LOO.number | html %]</a> >+ </li> >+ [%- END -%] >+ </ul> >+ [% END %] >+ <ul class="tag_anchors_list"> >+ [% FOREACH BIG_LOO IN BIG_LOOP %] >+ [% IF loop.first %][% SET tab_selected = "tab_selected" %][% ELSE %][% SET tab_selected = "" %][% END %] >+ [% FOREACH innerloo IN BIG_LOO.innerloop %] >+ [% IF ( innerloo.tag ) %] >+ <li class="tag_anchors tag_anchors_[% BIG_LOO.number | html %] [% tab_selected | html %]"> >+ <a class="tag_anchor" id="tag_anchor_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]" title="tag_anchor_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]" href="#div_indicator_tag_[% innerloo.tag | uri %]_[% innerloo.index | uri %][% innerloo.random | uri %]">[% innerloo.tag | uri %]</a> >+ </li> >+ [% END %] >+ [% END %] >+ [% END %] >+ </ul> >+ </div> >+ </div> >+ >+ [% IF ( popup ) %] >+ <input type="hidden" name="mode" value="popup" /> >+ [% END %] >+ <input type="hidden" name="op" value="add" /> >+ <input type="hidden" id="frameworkcode" name="frameworkcode" value="[% frameworkcode | html %]" /> >+ <input type="hidden" name="biblionumber" value="[% biblionumber | html %]" /> >+ <input type="hidden" name="holding_id" value="[% holding_id | html %]" /> >+ <input type="hidden" name="changed_framework" value="" /> >+ >+ <div id="addholdingtabs" class="toptabs numbered"> >+ <ul> >+ [% FOREACH BIG_LOO IN BIG_LOOP %] >+ <li><a href="#tab[% BIG_LOO.number | uri %]XX">[% BIG_LOO.number | html %]</a></li> >+ [% END %] >+ </ul> >+ >+ [% FOREACH BIG_LOO IN BIG_LOOP %] >+ <div id="tab[% BIG_LOO.number | html %]XX"> >+ >+ [% IF ( BIG_LOOP.size > 1 ) %] >+ <h3>Section [% BIG_LOO.number | html %]</h3> >+ [% END %] >+ [% previous = "" %] >+ [% FOREACH innerloo IN BIG_LOO.innerloop %] >+ [% IF ( innerloo.tag ) %] >+ [% IF innerloo.tag != previous %] >+ [% IF previous != "" %] >+ </ul> >+ [% END %] >+ [% previous = innerloo.tag %] >+ [% IF ( innerloo.repeatable ) %] >+ <ul class="sortable_field"> >+ [% ELSE %] >+ <ul> >+ [% END %] >+ [% END %] >+ [% IF ( innerloo.repeatable ) %] >+ <li class="tag sortable_tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]"> >+ [% ELSE %] >+ <li class="tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]"> >+ [% END %] >+ <div class="tag_title" id="div_indicator_tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]"> >+ [% IF advancedMARCEditor %] >+ <a href="#" tabindex="1" class="tagnum" title="[% innerloo.tag_lib | html %] - Click to Expand this Tag" onclick="ExpandField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;">[% innerloo.tag | html %]</a> >+ [% ELSE %] >+ <span class="tagnum" title="[% innerloo.tag_lib | html %]">[% innerloo.tag | html %]</span> >+ [% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag | html %]'); return false;"> ?</a>[% END %] >+ [% END %] >+ >+ [% IF ( innerloo.fixedfield ) %] >+ <input type="text" >+ tabindex="1" >+ class="indicator flat" >+ style="display:none;" >+ name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]" >+ size="1" >+ maxlength="1" >+ value="[% innerloo.indicator1 | html %]" /> >+ <input type="text" >+ tabindex="1" >+ class="indicator flat" >+ style="display:none;" >+ name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]" >+ size="1" >+ maxlength="1" >+ value="[% innerloo.indicator2 | html %]" /> >+ [% ELSE %] >+ <input type="text" >+ tabindex="1" >+ class="indicator flat" >+ name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]" >+ size="1" >+ maxlength="1" >+ value="[% innerloo.indicator1 | html %]" /> >+ <input type="text" >+ tabindex="1" >+ class="indicator flat" >+ name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]" >+ size="1" >+ maxlength="1" >+ value="[% innerloo.indicator2 | html %]" /> >+ [% END # /IF innerloo.fixedfield %] - >+ >+ [% UNLESS advancedMARCEditor %] >+ <a href="#" tabindex="1" class="expandfield" onclick="ExpandField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;" title="Click to Expand this Tag">[% innerloo.tag_lib | html %]</a> >+ [% END %] >+ >+ <span class="field_controls"> >+ [% IF ( innerloo.repeatable ) %] >+ <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]','0','[% advancedMARCEditor | html %]'); return false;" title="Repeat this Tag"> >+ <img src="[% interface | html %]/[% theme | html %]/img/repeat-tag.png" alt="Repeat this Tag" /> >+ </a> >+ [% END %] >+ <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;" title="Delete this Tag"> >+ <img src="[% interface | html %]/[% theme | html %]/img/delete-tag.png" alt="Delete this Tag" /> >+ </a> >+ </span> <!-- /.field_controls --> >+ </div> <!-- /div.tag_title --> >+ >+ <ul class="sortable_subfield"> >+ [% FOREACH subfield_loo IN innerloo.subfield_loop %] >+ <!-- One line on the marc editor --> >+ <li class="subfield_line" style="[% subfield_loo.visibility | html %]" id="subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]"> >+ [% UNLESS advancedMARCEditor %] >+ [% IF ( subfield_loo.fixedfield ) %] >+ <label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" style="display:none;" class="labelsubfield"> >+ [% ELSE %] >+ <label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" class="labelsubfield"> >+ [% END %] >+ [% END %] >+ >+ <span class="subfieldcode"> >+ <input type="text" >+ title="[% subfield_loo.marc_lib | html %]" >+ style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;" >+ name="tag_[% subfield_loo.tag | html %]_code_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" >+ value="[% subfield_loo.subfield | html %]" >+ size="1" >+ maxlength="1" >+ class="flat" >+ tabindex="0" /> >+ </span> >+ >+ [% UNLESS advancedMARCEditor %] >+ [% IF ( subfield_loo.mandatory ) %] >+ <span class="subfield subfield_mandatory"> >+ [% ELSIF ( subfield_loo.important ) %] >+ <span class="subfield subfield_important"> >+ [% ELSE %] >+ <span class="subfield"> >+ [% END %] >+ [% subfield_loo.marc_lib | $raw %] >+ </span> >+ </label> >+ [% END %] >+ >+ [% SET mv = subfield_loo.marc_value %] >+ [% IF ( mv.type == 'text' ) %] >+ [% IF ( mv.readonly == 1 ) %] >+ <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor readonly" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" readonly="readonly" /> >+ [% ELSE %] >+ <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" /> >+ [% END %] >+ >+ [% IF ( mv.authtype ) %] >+ <span class="subfield_controls"><a href="#" class="buttonDot tag_editor" onclick="openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'[%- mv.authtype | html -%]','holding'); return false;" tabindex="1" title="Tag editor">Tag editor</a></span> >+ [% END %] >+ [% ELSIF ( mv.type == 'text_complex' ) %] >+ <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor framework_plugin" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" /> >+ <span class="subfield_controls"> >+ [% IF mv.noclick %] >+ <span class="buttonDot tag_editor disabled" tabindex="-1" title="Field autofilled by plugin"></span> >+ [% ELSE %] >+ <a href="#" id="buttonDot_[% mv.id | html %]" class="buttonDot tag_editor framework_plugin" tabindex="1" title="Tag editor">Tag editor</a> >+ [% END %] >+ </span> >+ [% mv.javascript | $raw %] >+ [% ELSIF ( mv.type == 'hidden' ) %] >+ <input tabindex="1" type="hidden" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" /> >+ [% ELSIF ( mv.type == 'textarea' ) %] >+ <textarea cols="70" rows="4" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" class="input_marceditor" tabindex="1">[%- mv.value | html -%]</textarea> >+ [% ELSIF ( mv.type == 'select' ) %] >+ <select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor select2" id="[%- mv.id | html -%]"> >+ [% FOREACH aval IN mv.values %] >+ [% IF aval == mv.default %] >+ <option value="[%- aval | html -%]" selected="selected">[%- mv.labels.$aval | html -%]</option> >+ [% ELSE %] >+ <option value="[%- aval | html -%]">[%- mv.labels.$aval | html -%]</option> >+ [% END %] >+ [% END %] >+ </select> >+ [% END # /IF (mv.type...) %] >+ [% IF ( subfield_loo.mandatory ) %] >+ <span class="required">Required</span> >+ [% ELSIF ( subfield_loo.important ) %] >+ <span class="important">Important</span> >+ [% END %] >+ <span class="subfield_controls"> >+ [% IF ( subfield_loo.repeatable ) %] >+ <a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]','[% advancedMARCEditor | html %]'); return false;"> >+ <img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" /> >+ </a> >+ <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]'); return false;"> >+ <img src="[% interface | html %]/[% theme | html %]/img/delete-subfield.png" alt="Delete" title="Delete this subfield" /> >+ </a> >+ [% END %] >+ </span> >+ </li> <!-- /.subfield_line --> >+ <!-- End of the line --> >+ [% END # /FOREACH subfield_loop %] >+ </ul> <!-- /.sortable_subfield --> >+ </li> <!-- /.tag.clearfix --> >+ [% END %]<!-- if innerloo.tag --> >+ [% END %]<!-- BIG_LOO.innerloop --> >+ </ul> <!-- /.sortable_field --> >+ </div> <!-- /#tabXXX --> >+ [% END %]<!-- BIG_LOOP --> >+ </div><!-- /#addholdingtabs --> >+ </form> <!-- /name=f --> >+ </div> <!-- /.col-md-10.col-md-offset-1 --> >+ </div> <!-- /.row --> >+ >+[% INCLUDE 'intranet-bottom.inc' %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_field_008_holdings.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_field_008_holdings.tt >new file mode 100644 >index 0000000000..0a1f5dd18d >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_field_008_holdings.tt >@@ -0,0 +1,194 @@ >+[% SET footerjs = 1 %] >+[% INCLUDE 'doc-head-open.inc' %] >+<title>Koha › Holdings › 008 builder</title> >+[% INCLUDE 'doc-head-close.inc' %] >+</head> >+ >+<body id="cat_marc21_field_008_holdings" class="cat" style="padding:1em;"> >+<h3>008 Fixed-length data elements</h3> >+<form name="f_pop" onsubmit="report()" action=""> >+<input type="hidden" name="plugin_name" value="marc21_field_008_holdings.pl" /> >+<input name="f1" value="[% f1 | html %]" type="hidden" /> >+<table> >+ <tr> >+ <td>00-05 - Date entered on file</td> >+ <td>[% f1 | html %]</td> >+ </tr> >+ <tr> >+ <td><label for="f6">06 - Receipt or acquisition status</label></td> >+ <td> >+ <select name="f6" id="f6" size="1"> >+ <option value="0"[%- IF ( f60 ) -%] selected="selected"[%- END -%]>0 - Unknown</option> >+ <option value="1"[%- IF ( f61 ) -%] selected="selected"[%- END -%]>1 - Other receipt or acquisition status</option> >+ <option value="2"[%- IF ( f62 ) -%] selected="selected"[%- END -%]>2 - Received and complete or ceased</option> >+ <option value="3"[%- IF ( f63 ) -%] selected="selected"[%- END -%]>3 - On order</option> >+ <option value="4"[%- IF ( f64 ) -%] selected="selected"[%- END -%]>4 - Currently received</option> >+ <option value="5"[%- IF ( f65 ) -%] selected="selected"[%- END -%]>5 - Not currently received</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f7">07 - Method of acquisition</label></td> >+ <td> >+ <select name="f7" id="f7" size="1"> >+ <option value="c"[%- IF ( f7c ) -%] selected="selected"[%- END -%]>c - Cooperative or consortial purchase</option> >+ <option value="d"[%- IF ( f7d ) -%] selected="selected"[%- END -%]>d - Deposit</option> >+ <option value="e"[%- IF ( f7e ) -%] selected="selected"[%- END -%]>e - Exchange</option> >+ <option value="f"[%- IF ( f7f ) -%] selected="selected"[%- END -%]>f - Free</option> >+ <option value="g"[%- IF ( f7g ) -%] selected="selected"[%- END -%]>g - Gift</option> >+ <option value="l"[%- IF ( f7l ) -%] selected="selected"[%- END -%]>l - Legal deposit</option> >+ <option value="m"[%- IF ( f7m ) -%] selected="selected"[%- END -%]>m - Membership</option> >+ <option value="n"[%- IF ( f7n ) -%] selected="selected"[%- END -%]>n - Non-library purchase</option> >+ <option value="p"[%- IF ( f7p ) -%] selected="selected"[%- END -%]>p - Purchase</option> >+ <option value="q"[%- IF ( f7q ) -%] selected="selected"[%- END -%]>q - Lease</option> >+ <option value="u"[%- IF ( f7u ) -%] selected="selected"[%- END -%]>u - Unknown</option> >+ <option value="z"[%- IF ( f7z ) -%] selected="selected"[%- END -%]>z - Other method of acquisition</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f8">08-11 - Expected acquisition end date</label></td> >+ <td><input type="text" name="f8" id="f8" maxlength="4" size="5" value="[% f8 | html %]" /></td> >+ </tr> >+ <tr> >+ <td><label for="f12">12- General retention policy</label></td> >+ <td> >+ <select name="f12" id="f12" size="1"> >+ <option value="0"[%- IF ( f120 ) -%] selected="selected"[%- END -%]>0 - Unknown</option> >+ <option value="1"[%- IF ( f121 ) -%] selected="selected"[%- END -%]>1 - Other general retention policy</option> >+ <option value="2"[%- IF ( f122 ) -%] selected="selected"[%- END -%]>2 - Retained except as replaced by updates</option> >+ <option value="3"[%- IF ( f123 ) -%] selected="selected"[%- END -%]>3 - Sample issue retained</option> >+ <option value="4"[%- IF ( f124 ) -%] selected="selected"[%- END -%]>4 - Retained until replaced by microform</option> >+ <option value="5"[%- IF ( f125 ) -%] selected="selected"[%- END -%]>5 - Retained until replaced by cumulation, replacement volume, or revision</option> >+ <option value="6"[%- IF ( f126 ) -%] selected="selected"[%- END -%]>6 - Retained for a limited period</option> >+ <option value="7"[%- IF ( f127 ) -%] selected="selected"[%- END -%]>7 - Not retained</option> >+ <option value="8"[%- IF ( f128 ) -%] selected="selected"[%- END -%]>8 - Permanently retained</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f13">13 - Policy type</label></td> >+ <td> >+ <select name="f13" id="f13" size="1"> >+ <option value=" "[%- IF ( f13 ) -%] selected="selected"[%- END -%]># - No information provided</option> >+ <option value="l"[%- IF ( f13l ) -%] selected="selected"[%- END -%]>l - Latest</option> >+ <option value="p"[%- IF ( f13p ) -%] selected="selected"[%- END -%]>p - Previous</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f14">14 - Number of units</label></td> >+ <td> >+ <select name="f14" id="f14" size="1"> >+ <option value=" "[%- IF ( f14 ) -%] selected="selected"[%- END -%]># - No information provided</option> >+ <option value="1"[%- IF ( f141 ) -%] selected="selected"[%- END -%]>1</option> >+ <option value="2"[%- IF ( f142 ) -%] selected="selected"[%- END -%]>2</option> >+ <option value="3"[%- IF ( f143 ) -%] selected="selected"[%- END -%]>3</option> >+ <option value="4"[%- IF ( f144 ) -%] selected="selected"[%- END -%]>4</option> >+ <option value="5"[%- IF ( f145 ) -%] selected="selected"[%- END -%]>5</option> >+ <option value="6"[%- IF ( f146 ) -%] selected="selected"[%- END -%]>6</option> >+ <option value="7"[%- IF ( f147 ) -%] selected="selected"[%- END -%]>7</option> >+ <option value="8"[%- IF ( f148 ) -%] selected="selected"[%- END -%]>8</option> >+ <option value="9"[%- IF ( f149 ) -%] selected="selected"[%- END -%]>9 </option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f15">15 - Unit type</label></td> >+ <td> >+ <select name="f15" id="f15" size="1"> >+ <option value=" "[%- IF ( f15 ) -%] selected="selected"[%- END -%]># - No information provided</option> >+ <option value="m"[%- IF ( f15m ) -%] selected="selected"[%- END -%]>m - Month(s)</option> >+ <option value="w"[%- IF ( f15w ) -%] selected="selected"[%- END -%]>w - Week(s)</option> >+ <option value="y"[%- IF ( f15y ) -%] selected="selected"[%- END -%]>y - Year(s)</option> >+ <option value="e"[%- IF ( f15e ) -%] selected="selected"[%- END -%]>e - Edition(s)</option> >+ <option value="i"[%- IF ( f15i ) -%] selected="selected"[%- END -%]>i - Issue(s)</option> >+ <option value="s"[%- IF ( f15s ) -%] selected="selected"[%- END -%]>s - Supplement(s)</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f16">16 - Completeness</label></td> >+ <td> >+ <select name="f16" id="f16" size="1"> >+ <option value="0"[%- IF ( f160 ) -%] selected="selected"[%- END -%]>0 - Other</option> >+ <option value="1"[%- IF ( f161 ) -%] selected="selected"[%- END -%]>1 - Complete</option> >+ <option value="2"[%- IF ( f162 ) -%] selected="selected"[%- END -%]>2 - Incomplete</option> >+ <option value="3"[%- IF ( f163 ) -%] selected="selected"[%- END -%]>3 - Scattered</option> >+ <option value="4"[%- IF ( f164 ) -%] selected="selected"[%- END -%]>4 - Not applicable</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f17">17-19 - Number of copies reported</label></td> >+ <td><input type="text" name="f17" id="f17" maxlength="3" size="4" value="[% f17 | html %]" /></td> >+ </tr> >+ <tr> >+ <td><label for="f20">20 - Lending policy</label></td> >+ <td> >+ <select name="f20" id="f20" size="1"> >+ <option value="a"[%- IF ( f20a ) -%] selected="selected"[%- END -%]>a - Will lend</option> >+ <option value="b"[%- IF ( f20b ) -%] selected="selected"[%- END -%]>b - Will not lend</option> >+ <option value="c"[%- IF ( f20c ) -%] selected="selected"[%- END -%]>c - Will lend hard copy only</option> >+ <option value="l"[%- IF ( f20l ) -%] selected="selected"[%- END -%]>l - Limited lending policy</option> >+ <option value="u"[%- IF ( f20u ) -%] selected="selected"[%- END -%]>u - Unknown</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f21">21 - Reproduction policy</label></td> >+ <td> >+ <select name="f21" id="f21" size="1"> >+ <option value="a"[%- IF ( f21a ) -%] selected="selected"[%- END -%]>a - Will reproduce</option> >+ <option value="b"[%- IF ( f21b ) -%] selected="selected"[%- END -%]>b - Will not reproduce</option> >+ <option value="u"[%- IF ( f21u ) -%] selected="selected"[%- END -%]>u - Unknown</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f22">22-24 - Language</label></td> >+ <td><input type="text" name="f22" id="f22" maxlength="3" size="4" value="[% f22 | html %]" /></td> >+ </tr> >+ <tr> >+ <td><label for="f25">25 - Separate or composite copy report</label></td> >+ <td> >+ <select name="f25" id="f25" size="1"> >+ <option value="0"[%- IF ( f250 ) -%] selected="selected"[%- END -%]>0 - Separate copy report</option> >+ <option value="1"[%- IF ( f251 ) -%] selected="selected"[%- END -%]>1 - Composite copy report</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f26">26-31 - Date of report</label></td> >+ <td><input type="text" name="f26" id="f26" maxlength="6" size="7" value="[% f26 | html %]" /></td> >+ </tr> >+</table> >+<fieldset class="action"><input type="submit" value="OK" /> <a href="#" class="cancel close">Cancel</a></fieldset> >+</form> >+<script> >+ function report() { >+ var doc = opener.document; >+ var field = doc.getElementById("[% index | html %]"); >+ >+ field.value = >+ document.f_pop.f1.value+ >+ document.f_pop.f6.value+ >+ document.f_pop.f7.value+ >+ (document.f_pop.f8.value + ' ').substr(0, 4)+ >+ document.f_pop.f12.value+ >+ document.f_pop.f13.value+ >+ document.f_pop.f14.value+ >+ document.f_pop.f15.value+ >+ document.f_pop.f16.value+ >+ (document.f_pop.f17.value + ' ').substr(0, 3)+ >+ document.f_pop.f20.value+ >+ document.f_pop.f21.value+ >+ (document.f_pop.f22.value + ' ').substr(0, 3)+ >+ document.f_pop.f25.value+ >+ document.f_pop.f26.value; >+ self.close(); >+ return false; >+ } >+</script> >+ >+[% INCLUDE 'intranet-bottom.inc' popup_window=1 %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_leader_holdings.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_leader_holdings.tt >new file mode 100644 >index 0000000000..c293159408 >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/marc21_leader_holdings.tt >@@ -0,0 +1,105 @@ >+[% SET footerjs = 1 %] >+[% INCLUDE 'doc-head-open.inc' %] >+<title>Koha › Holdings › 000 - Leader builder</title> >+[% INCLUDE 'doc-head-close.inc' %] >+</head> >+<body id="cat_marc21_leader_holdings" class="cat" style="padding:1em;"> >+<form name="f_pop" onsubmit="report()" action=""> >+<input type="hidden" name="plugin_name" value="marc21_leader_holdings.pl" /> >+<h3>000 - Leader</h3> >+<table> >+ <tr> >+ <td><span class="label">0-4 Record size</span></td> >+ <td>(auto-filled)</td> >+ </tr> >+ <tr> >+ <td><label for="f5">5 - Record status</label></td> >+ <td> >+ <select name="f5" id="f5" size="1"> >+ <option value="c"[%- IF ( f5c ) -%] selected="selected"[%- END -%]>c - Corrected or revised</option> >+ <option value="d"[%- IF ( f5d ) -%] selected="selected"[%- END -%]>d - Deleted</option> >+ <option value="n"[%- IF ( f5n ) -%] selected="selected"[%- END -%]>n - New</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f6">6 - Type of record</label></td> >+ <td> >+ <select name="f6" id="f6" size="1"> >+ <option value="u"[%- IF ( f6u ) -%] selected="selected"[%- END -%]>u - Unknown</option> >+ <option value="v"[%- IF ( f6v ) -%] selected="selected"[%- END -%]>v - Multipart item holdings</option> >+ <option value="x"[%- IF ( f6x ) -%] selected="selected"[%- END -%]>x - Single-part item holdings</option> >+ <option value="y"[%- IF ( f6y ) -%] selected="selected"[%- END -%]>y - Serial item holdings</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <tr>07-08 - Undefined</tr> >+ <tr> </tr> >+ </tr> >+ <tr> >+ <td>9 - Character coding scheme</td> >+ <td>a - UCS/Unicode (auto-filled)</td> >+ </tr> >+ <tr> >+ <td>10-16 - indicator/subfields/size</td> >+ <td>(auto-filled)</td> >+ </tr> >+ <tr> >+ <td><label for="f17">17 - Encoding level</label></td> >+ <td> >+ <select name="f17" id="f17" size="1"> >+ <option value="1"[%- IF ( f171 ) -%] selected="selected"[%- END -%]>1 - Holdings level 1</option> >+ <option value="2"[%- IF ( f172 ) -%] selected="selected"[%- END -%]>2 - Holdings level 2</option> >+ <option value="3"[%- IF ( f173 ) -%] selected="selected"[%- END -%]>3 - Holdings level 3</option> >+ <option value="4"[%- IF ( f174 ) -%] selected="selected"[%- END -%]>4 - Holdings level 4</option> >+ <option value="5"[%- IF ( f175 ) -%] selected="selected"[%- END -%]>5 - Holdings level 4 with piece designation</option> >+ <option value="m"[%- IF ( f17m ) -%] selected="selected"[%- END -%]>m - Mixed level</option> >+ <option value="u"[%- IF ( f17u ) -%] selected="selected"[%- END -%]>u - Unknown</option> >+ <option value="z"[%- IF ( f17z ) -%] selected="selected"[%- END -%]>z - Other level</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td><label for="f18">18 - Item information in record</label></td> >+ <td> >+ <select name="f18" id="f18" size="1"> >+ <option value="i"[%- IF ( f18i ) -%] selected="selected"[%- END -%]>i - Item information</option> >+ <option value="n"[%- IF ( f18n ) -%] selected="selected"[%- END -%]>n - No item information</option> >+ </select> >+ </td> >+ </tr> >+ <tr> >+ <td>19 - Undefined</td> >+ <td></td> >+ </tr> >+ <tr> >+ <td>20-24 - entry map & lengths</td> >+ <td>(auto-filled)</td> >+ </tr> >+ >+</table> >+<fieldset class="action"><input type="submit" value="OK" /> <a href="#" class="cancel close">Cancel</a></fieldset> >+</form> >+<script> >+ function report() { >+ var doc = opener.document; >+ var field = doc.getElementById("[% index | html %]"); >+ >+ field.value = >+ ' '+ >+ document.f_pop.f5.value+ >+ document.f_pop.f6.value+ >+ ' '+ >+ 'a'+ // MARC21 UNICODE flag - must be 'a' for Koha >+ '22 '+ >+ document.f_pop.f17.value+ >+ document.f_pop.f18.value+ >+ ' '+ >+ '4500'; >+ self.close(); >+ return false; >+ } >+</script> >+ >+[% INCLUDE 'intranet-bottom.inc' popup_window=1 %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt >index 961f3cc08e..8e6d67a4ad 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/viewlog.tt >@@ -313,6 +313,8 @@ > <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loopro.biblionumber | uri %]" title="Display detail for this biblio">Biblio [% loopro.biblionumber | html %]</a> > [% ELSIF ( loopro.info.substr(0, 6) == 'biblio' ) %] > <a href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% loopro.object | uri %]" title="Display detail for this biblio">Biblio [% loopro.object | html %]</a> >+ [% ELSIF ( loopro.info.substr(0, 7) == 'holding' ) %] >+ <a href="/cgi-bin/koha/cataloguing/addholding.pl?op=edit&holding_id=[% loopro.object | uri %]" title="Display detail for this holding">Holding [% loopro.object | html %]</a> > [% ELSE %] > [% loopro.object | html %] > [% END %] >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >index a14c1e3607..a4fc18eb2b 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt >@@ -6,6 +6,7 @@ > [% USE Branches %] > [% USE TablesSettings %] > [% USE AuthorisedValues %] >+[% USE Holdings %] > [% SET TagsShowEnabled = ( ( Koha.Preference( 'TagsEnabled' ) == 1 ) && TagsShowOnDetail ) %] > [% SET TagsInputEnabled = ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) && ( Koha.Preference( 'TagsEnabled' ) == 1 ) && TagsInputOnDetail ) %] > [% IF Koha.Preference('AmazonAssocTag') %] >@@ -663,6 +664,33 @@ > [% END %] > [% END %] > [% END # IF itemloop.size %] >+ [% IF summary_holdings %] >+ [% FOREACH holding IN summary_holdings %] >+ [% UNLESS holding.suppress %] >+ [% holding_details = Holdings.GetDetails(holding) %] >+ [% IF holding_details.public_note || holding_details.summary || holding_details.supplements || holding_details.indexes %] >+ <span class="summary-holdings"> >+ <br> >+ <strong>Additional information for [% Holdings.GetLocation(holding, 1) | html %]</strong> >+ <ul> >+ [% IF holding_details.public_note %] >+ <li>Public note: [% holding_details.public_note | html %]</li> >+ [% END %] >+ [% IF holding_details.summary %] >+ <li>Summary: [% holding_details.summary | html %]</li> >+ [% END %] >+ [% IF holding_details.supplements %] >+ <li>Supplements: [% holding_details.supplements | html %]</li> >+ [% END %] >+ [% IF holding_details.indexes %] >+ <li>Indexes: [% holding_details.indexes | html %]</li> >+ [% END %] >+ </ul> >+ </span> >+ [% END %] >+ [% END %] >+ [% END %] >+ [% END %] > [% PROCESS 'shelfbrowser.inc' %] > [% INCLUDE shelfbrowser tab='holdings' %] > <br style="clear:both;" /> >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt >index ad91bbbba6..c41dc5ba23 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-results.tt >@@ -1,6 +1,7 @@ > [% USE raw %] > [% USE Asset %] > [% USE Koha %] >+[% USE Holdings %] > [% SET TagsShowEnabled = ( ( Koha.Preference( 'TagsEnabled' ) == 1 ) && TagsShowOnList ) %] > [% SET TagsInputEnabled = ( ( Koha.Preference( 'opacuserlogin' ) == 1 ) && ( Koha.Preference( 'TagsEnabled' ) == 1 ) && TagsInputOnList ) %] > [% SET AdlibrisEnabled = Koha.Preference('AdlibrisCoversEnabled') %] >@@ -524,6 +525,15 @@ > [% END %] > [% ELSE %] > <span class="unavailable">No items available:</span> >+ [% IF ( SEARCH_RESULT.summary_holdings ) %] >+ <span class="summary-holdings"> >+ [% FOREACH holding IN SEARCH_RESULT.summary_holdings %] >+ [% UNLESS holding.suppress %] >+ [% Holdings.GetLocation(holding, 1) | html %], >+ [% END %] >+ [% END %] >+ </span> >+ [% END %] > [% END %] > [% END # / IF SEARCH_RESULT.available_items_loop.size %] > >diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl >index 13a69b09d6..4e2e2c35f3 100644 >--- a/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl >+++ b/koha-tmpl/opac-tmpl/bootstrap/en/xslt/MARC21slim2OPACResults.xsl >@@ -4,9 +4,10 @@ > <xsl:stylesheet version="1.0" > xmlns:marc="http://www.loc.gov/MARC21/slim" > xmlns:items="http://www.koha-community.org/items" >+ xmlns:holdings="http://www.koha-community.org/holdings" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:str="http://exslt.org/strings" >- exclude-result-prefixes="marc items str"> >+ exclude-result-prefixes="marc items str holdings"> > <xsl:import href="MARC21slimUtils.xsl"/> > <xsl:output method = "html" indent="yes" omit-xml-declaration = "yes" encoding="UTF-8"/> > <xsl:key name="item-by-status" match="items:item" use="items:status"/> >@@ -1259,7 +1260,21 @@ > </xsl:for-each> > (<xsl:value-of select="$AlternateHoldingsCount"/>) > </xsl:when> >- <xsl:otherwise><span class="noitems">No items available </span> </xsl:otherwise> >+ <xsl:otherwise> >+ <span class="noitems">No items available </span> >+ <xsl:if test="//holdings:holdings/holdings:holding/holdings:suppress[.='0']">: >+ <xsl:for-each select="//holdings:holdings/holdings:holding[./holdings:suppress='0']"> >+ <xsl:if test="position() > 1">, </xsl:if> >+ <xsl:value-of select="./holdings:holdingbranch"/> >+ <xsl:if test="string-length(./holdings:location) > 0"> >+ - <xsl:value-of select="./holdings:location"/> >+ </xsl:if> >+ <xsl:if test="string-length(./holdings:callnumber) > 0"> >+ - <xsl:value-of select="./holdings:callnumber"/> >+ </xsl:if> >+ </xsl:for-each> >+ </xsl:if> >+ </xsl:otherwise> > </xsl:choose> > </xsl:when> > <xsl:when test="count(key('item-by-status', 'available'))>0"> >diff --git a/opac/opac-detail.pl b/opac/opac-detail.pl >index 0f32e2fc8c..7f623018f8 100755 >--- a/opac/opac-detail.pl >+++ b/opac/opac-detail.pl >@@ -799,6 +799,12 @@ if (scalar(@itemloop) == 0 || scalar(@otheritemloop) == 0) { > } > } > >+# Fetch summary holdings >+if (C4::Context->preference('SummaryHoldings')) { >+ $template->param( summary_holdings => $biblio->holdings ); >+} >+ >+ > ## get notes and subjects from MARC record > if (!C4::Context->preference("OPACXSLTDetailsDisplay") ) { > my $marcisbnsarray = GetMarcISBN ($record,$marcflavour); >diff --git a/t/db_dependent/FrameworkPlugin.t b/t/db_dependent/FrameworkPlugin.t >index 3a28df4055..9599420469 100755 >--- a/t/db_dependent/FrameworkPlugin.t >+++ b/t/db_dependent/FrameworkPlugin.t >@@ -164,7 +164,8 @@ sub selected_plugins { > } else { # some default MARC, UNIMARC and item plugins > @fi = qw| barcode.pl dateaccessioned.pl marc21_orgcode.pl > marc21_field_005.pl marc21_field_006.pl marc21_field_007.pl marc21_field_008.pl >-marc21_field_008_authorities.pl marc21_leader.pl marc21_leader_authorities.pl >+marc21_field_008_authorities.pl marc21_field_008_holdings.pl marc21_leader.pl >+marc21_leader_authorities.pl marc21_leader_holdings.pl > unimarc_leader.pl unimarc_field_100.pl unimarc_field_105.pl > unimarc_field_106.pl unimarc_field_110.pl unimarc_field_120.pl > unimarc_field_130.pl unimarc_field_140.pl unimarc_field_225a.pl >diff --git a/t/db_dependent/Koha/Holding.t b/t/db_dependent/Koha/Holding.t >new file mode 100755 >index 0000000000..fd099345d8 >--- /dev/null >+++ b/t/db_dependent/Koha/Holding.t >@@ -0,0 +1,156 @@ >+#!/usr/bin/perl >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Test::More tests => 3; >+ >+use t::lib::TestBuilder; >+ >+use C4::Biblio; >+ >+use Koha::BiblioFrameworks; >+use Koha::Database; >+use Koha::Libraries; >+use Koha::Library; >+use Koha::MarcSubfieldStructures; >+ >+BEGIN { >+ use_ok('Koha::Holding'); >+ use_ok('Koha::Holdings'); >+} >+ >+my $schema = Koha::Database->new->schema; >+ >+subtest 'Koha::Holding tests' => sub { >+ >+ plan tests => 19; >+ >+ $schema->storage->txn_begin; >+ >+ # Add a framework >+ my $frameworkcode = 'HLD'; >+ my $existing_mss = Koha::MarcSubfieldStructures->search({frameworkcode => $frameworkcode}); >+ $existing_mss->delete() if $existing_mss; >+ my $existing_fw = Koha::BiblioFrameworks->find({frameworkcode => $frameworkcode}); >+ $existing_fw->delete() if $existing_fw; >+ Koha::BiblioFramework->new({ >+ frameworkcode => $frameworkcode, >+ frameworktext => 'Holdings' >+ })->store(); >+ Koha::MarcSubfieldStructure->new({ >+ frameworkcode => $frameworkcode, >+ tagfield => 852, >+ tagsubfield => 'b', >+ kohafield => 'holdings.holdingbranch' >+ })->store(); >+ Koha::MarcSubfieldStructure->new({ >+ frameworkcode => $frameworkcode, >+ tagfield => 852, >+ tagsubfield => 'c', >+ kohafield => 'holdings.location' >+ })->store(); >+ Koha::MarcSubfieldStructure->new({ >+ frameworkcode => $frameworkcode, >+ tagfield => 942, >+ tagsubfield => 'n', >+ kohafield => 'holdings.suppress' >+ })->store(); >+ Koha::MarcSubfieldStructure->new({ >+ frameworkcode => $frameworkcode, >+ tagfield => 999, >+ tagsubfield => 'c', >+ kohafield => 'biblio.biblionumber' >+ })->store(); >+ Koha::MarcSubfieldStructure->new({ >+ frameworkcode => $frameworkcode, >+ tagfield => 999, >+ tagsubfield => 'e', >+ kohafield => 'holdings.holding_id' >+ })->store(); >+ >+ # Add a branch >+ Koha::Library->new({ branchcode => 'ABC', branchname => 'Abc' })->store() unless Koha::Libraries->find({ branchcode => 'ABC' }); >+ >+ # Add a biblio >+ my $title = 'Oranges and Peaches'; >+ my $record = MARC::Record->new(); >+ my $field = MARC::Field->new('245','','','a' => $title); >+ $record->append_fields( $field ); >+ my ($biblionumber) = C4::Biblio::AddBiblio($record, ''); >+ >+ # Add a holdings record >+ my $holding_marc = MARC::Record->new(); >+ $holding_marc->append_fields(MARC::Field->new('852','','','b' => 'ABC', 'c' => 'DEF')); >+ my $new_holding = Koha::Holding->new({ biblionumber => $biblionumber, frameworkcode => $frameworkcode }); >+ is ($new_holding->set_marc({record => $holding_marc}), $new_holding, 'set_marc() returns the object'); >+ is($new_holding->store(), $new_holding, 'store() returns the object on create'); >+ is(defined $new_holding->holding_id(), 1, 'Newly added holdings record has a holding_id'); >+ >+ # Check that the added record can be found and looks right >+ my $holding = Koha::Holdings->find($new_holding->holding_id()); >+ is(ref $holding, 'Koha::Holding', 'Found a Koha::Holding object'); >+ is($holding->frameworkcode(), $frameworkcode, 'Framework code correct in Koha::Holding object'); >+ is($holding->holdingbranch(), 'ABC', 'Location correct in Koha::Holding object'); >+ >+ my $branch = $holding->holding_branch(); >+ is(ref $branch, 'Koha::Library', 'holding_branch() returns a Koha::Library object'); >+ is($branch->branchname(), 'Abc', 'holding_branch() returns correct library'); >+ >+ my $metadata = $holding->metadata; >+ is( ref $metadata, 'Koha::Holdings::Metadata', 'Method metadata() returned a Koha::Holdings::Metadata object'); >+ >+ my $holding_marc2 = $metadata->record; >+ is(ref $holding_marc2, 'MARC::Record', 'Method record() returned a MARC::Record object'); >+ is($holding_marc2->field('852')->subfield('b'), 'ABC', 'Location in 852$b matches location from original record object'); >+ >+ # Test updating the record >+ $holding_marc2->append_fields(MARC::Field->new('942','','','n' => '1')); >+ is($holding->set_marc({record => $holding_marc2}), $holding, 'set_marc() returns the object on update'); >+ is($holding->store(), $holding, 'store() returns the object on update'); >+ >+ is($holding->suppress(), 1, 'Holdings record is suppressed'); >+ >+ # Test misc methods >+ my %mapping = Koha::Holding->get_marc_field_mapping({ field => 'holdings.location' }); >+ is_deeply( >+ \%mapping, >+ {852 => 'c'}, >+ 'get_marc_field_mapping returns correct data' >+ ); >+ >+ my $fields = Koha::Holding->marc_to_koha_fields({ record => $holding_marc2 }); >+ is_deeply( >+ $fields, >+ { >+ holdingbranch => 'ABC', >+ location => 'DEF', >+ suppress => 1, >+ holding_id => $new_holding->holding_id() >+ }, >+ 'marc_to_koha_fields returns correct data' >+ ); >+ >+ # Test deletion >+ is(defined $holding->deleted_on(), '', 'Holdings record not marked as deleted'); >+ $holding->delete(); >+ $holding = Koha::Holdings->find($new_holding->holding_id()); >+ is(defined $holding->deleted_on(), 1, 'Holdings record marked as deleted'); >+ is(defined $holding->metadata()->deleted_on(), 1, 'Holdings metadata record marked as deleted'); >+ >+ $schema->storage->txn_rollback; >+}; >diff --git a/t/db_dependent/Koha/Holdings.t b/t/db_dependent/Koha/Holdings.t >new file mode 100755 >index 0000000000..df53befdf5 >--- /dev/null >+++ b/t/db_dependent/Koha/Holdings.t >@@ -0,0 +1,113 @@ >+#!/usr/bin/perl >+ >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ >+use Modern::Perl; >+ >+use Test::More tests => 2; >+ >+use t::lib::TestBuilder; >+ >+use C4::Biblio; >+ >+use Koha::BiblioFrameworks; >+use Koha::Database; >+use Koha::MarcSubfieldStructures; >+ >+BEGIN { >+ use_ok('Koha::Holdings'); >+} >+ >+my $schema = Koha::Database->new->schema; >+ >+subtest 'Koha::Holdings tests' => sub { >+ >+ plan tests => 3; >+ >+ $schema->storage->txn_begin; >+ >+ # Add a framework >+ my $frameworkcode = 'HLD'; >+ my $existing_mss = Koha::MarcSubfieldStructures->search({frameworkcode => $frameworkcode}); >+ $existing_mss->delete() if $existing_mss; >+ my $existing_fw = Koha::BiblioFrameworks->find({frameworkcode => $frameworkcode}); >+ $existing_fw->delete() if $existing_fw; >+ Koha::BiblioFramework->new({ >+ frameworkcode => $frameworkcode, >+ frameworktext => 'Holdings' >+ })->store(); >+ Koha::MarcSubfieldStructure->new({ >+ frameworkcode => $frameworkcode, >+ tagfield => 852, >+ tagsubfield => 'b', >+ kohafield => 'holdings.holdingbranch' >+ })->store(); >+ Koha::MarcSubfieldStructure->new({ >+ frameworkcode => $frameworkcode, >+ tagfield => 852, >+ tagsubfield => 'c', >+ kohafield => 'holdings.location' >+ })->store(); >+ Koha::MarcSubfieldStructure->new({ >+ frameworkcode => $frameworkcode, >+ tagfield => 999, >+ tagsubfield => 'c', >+ kohafield => 'biblio.biblionumber' >+ })->store(); >+ Koha::MarcSubfieldStructure->new({ >+ frameworkcode => $frameworkcode, >+ tagfield => 999, >+ tagsubfield => 'e', >+ kohafield => 'holdings.holding_id' >+ })->store(); >+ >+ # Add branches >+ Koha::Library->new({ branchcode => 'ABC', branchname => 'Abc' })->store() unless Koha::Libraries->find({ branchcode => 'ABC' }); >+ Koha::Library->new({ branchcode => 'BCD', branchname => 'Bcd' })->store() unless Koha::Libraries->find({ branchcode => 'BCD' }); >+ >+ # Add a biblio >+ my $title = 'Oranges and Peaches'; >+ my $record = MARC::Record->new(); >+ my $field = MARC::Field->new('245','','','a' => $title); >+ $record->append_fields( $field ); >+ my ($biblionumber) = C4::Biblio::AddBiblio($record, ''); >+ >+ # Add a couple of holdings records >+ my $holding_marc = MARC::Record->new(); >+ $holding_marc->append_fields(MARC::Field->new('852','','','b' => 'ABC', 'c' => 'DEF')); >+ my $new_holding = Koha::Holding->new({ biblionumber => $biblionumber, frameworkcode => $frameworkcode }); >+ $new_holding->set_marc({record => $holding_marc})->store(); >+ >+ $holding_marc = MARC::Record->new(); >+ $holding_marc->append_fields(MARC::Field->new('852','','','b' => 'BCD', 'c' => 'DEF')); >+ $new_holding = Koha::Holding->new({ biblionumber => $biblionumber, frameworkcode => $frameworkcode }); >+ $new_holding->set_marc({record => $holding_marc})->store(); >+ >+ # Add and delete a holdings record >+ $holding_marc = MARC::Record->new(); >+ $holding_marc->append_fields(MARC::Field->new('852','','','b' => 'BCD', 'c' => 'DEF')); >+ $new_holding = Koha::Holding->new({ biblionumber => $biblionumber, frameworkcode => $frameworkcode }); >+ $new_holding->set_marc({record => $holding_marc})->store(); >+ $new_holding->delete(); >+ >+ # Test results >+ my $fields = Koha::Holdings->get_embeddable_marc_fields({ biblionumber => $biblionumber}); >+ is(scalar(@{$fields}), 2, 'get_embeddable_marc_fields returns two fields'); >+ is($fields->[0]->as_string, 'ABC DEF', 'get_embeddable_marc_fields returns correct data in first field'); >+ is($fields->[1]->as_string, 'BCD DEF', 'get_embeddable_marc_fields returns correct data in second field'); >+ >+ $schema->storage->txn_rollback; >+}; >diff --git a/t/db_dependent/Koha/Item.t b/t/db_dependent/Koha/Item.t >index 87ae3cbea5..ef90b539c3 100755 >--- a/t/db_dependent/Koha/Item.t >+++ b/t/db_dependent/Koha/Item.t >@@ -24,6 +24,7 @@ use Test::More tests => 9; > use C4::Biblio; > use C4::Circulation; > >+use Koha::Holdings; > use Koha::Items; > use Koha::Database; > use Koha::Old::Items; >@@ -672,7 +673,7 @@ subtest 'Tests for relationship between item and item_orders via aqorders_item' > }; > > subtest 'move_to_biblio() tests' => sub { >- plan tests => 16; >+ plan tests => 20; > > $schema->storage->txn_begin; > >@@ -684,15 +685,26 @@ subtest 'move_to_biblio() tests' => sub { > my $source_biblionumber = $source_biblio->biblionumber; > my $target_biblionumber = $target_biblio->biblionumber; > >+ my $library = $builder->build_object({ class => 'Koha::Libraries' }); >+ >+ my $source_holding = $builder->build_sample_holdings_record({ >+ biblionumber => $source_biblionumber, >+ library => $library->branchcode, >+ }); >+ my $standalone_holding = $builder->build_sample_holdings_record({ >+ biblionumber => $source_biblionumber, >+ library => $library->branchcode, >+ }); >+ > my $item1 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); >+ $item1->set({ holding_id => $source_holding->holding_id() })->store(); > my $item2 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); >+ $item2->set({ holding_id => $source_holding->holding_id() })->store(); > my $item3 = $builder->build_sample_item({ biblionumber => $source_biblionumber }); > > my $itemnumber1 = $item1->itemnumber; > my $itemnumber2 = $item2->itemnumber; > >- my $library = $builder->build_object({ class => 'Koha::Libraries' }); >- > my $patron = $builder->build_object({ > class => 'Koha::Patrons', > value => { branchcode => $library->branchcode } >@@ -818,6 +830,13 @@ subtest 'move_to_biblio() tests' => sub { > my $get_item3 = Koha::Items->find( $item3->itemnumber ); > is($get_item3->biblionumber, $source_biblionumber, 'item3 is not moved'); > >+ my $target_holdings = $target_biblio->holdings(); >+ is($target_holdings->count, 1, 'Holdings record should have been created in target biblio'); >+ >+ is($get_item1->holding->holding_id, $target_holdings->next->holding_id, 'holding_id updated in the moved item'); >+ is($get_item2->holding->holding_id, $source_holding->holding_id, 'holding_id not updated in the unmoved item'); >+ is($get_item3->holding, undef, 'item 3 does not have a holding_id'); >+ > $aq_order1->discard_changes; > $aq_order2->discard_changes; > is($aq_order1->biblionumber, $target_biblionumber, 'move_to_biblio moves aq_orders for item 1'); >diff --git a/t/db_dependent/Koha/SearchEngine/Indexer.t b/t/db_dependent/Koha/SearchEngine/Indexer.t >index faac61ceb3..47c01f6758 100755 >--- a/t/db_dependent/Koha/SearchEngine/Indexer.t >+++ b/t/db_dependent/Koha/SearchEngine/Indexer.t >@@ -60,7 +60,7 @@ subtest 'Test indexer object creation' => sub { > }; > > subtest 'Test indexer calls' => sub { >- plan tests => 46; >+ plan tests => 50; > > my @engines = ('Zebra'); > eval { Koha::SearchEngine::Elasticsearch->get_elasticsearch_params; }; >@@ -172,8 +172,21 @@ subtest 'Test indexer calls' => sub { > my $item5 = $builder->build_sample_item({biblionumber => $biblio->biblionumber}); > my $item6 = $builder->build_sample_item({biblionumber => $biblio->biblionumber}); > warnings_are{ >- $biblio2->adopt_items_from_biblio($biblio); >- } [$engine,"Koha::Biblio",$engine,"Koha::Biblio"], "index_records is called for both biblios for $engine when adopting items (Biblio->adopt_items_from_biblio)"; >+ $biblio2->adopt_holdings_from_biblio($biblio); >+ } [$engine,"Koha::Biblio",$engine,"Koha::Biblio"], "index_records is called for both biblios for $engine when adopting items and holdings (Biblio->adopt_holdings_from_biblio)"; >+ >+ my $holding1; >+ my $holding2; >+ warnings_are{ >+ $holding1 = $builder->build_sample_holdings_record({biblionumber => $biblio->biblionumber}); >+ $holding2 = $builder->build_sample_holdings_record({biblionumber => $biblio->biblionumber}); >+ } [$engine,"Koha::Holding",$engine,"Koha::Holding"], "index_records is called for $engine when adding a holdings record (Holding->store)"; >+ warnings_are{ >+ $holding1->store({ skip_record_index => 1 }); >+ } undef, "index_records is not called for $engine when adding a holdings record (Holding->store) if skip_record_index passed"; >+ # Delete holdings records so that they don't interfere with biblio deletion tests >+ $holding1->delete; >+ $holding2->delete; > > $builder->build({ > source => 'Branchtransfer', >diff --git a/t/lib/TestBuilder.pm b/t/lib/TestBuilder.pm >index 26de949fb3..38a327ab2e 100644 >--- a/t/lib/TestBuilder.pm >+++ b/t/lib/TestBuilder.pm >@@ -121,7 +121,7 @@ sub build { > }); > return if !$col_values; # did not meet unique constraints? > >- # loop thru all fk and create linked records if needed >+ # loop through all fk and create linked records if needed > # fills remaining entries in $col_values > my $foreign_keys = $self->_getForeignKeys( { source => $source } ); > for my $fk ( @$foreign_keys ) { >@@ -198,6 +198,30 @@ sub build_sample_item { > )->store->get_from_storage; > } > >+=head3 build_sample_holdings_record >+ >+ my $record = $builder->build_sample_holdings_record( { biblionumber = $bibno, library => $branch }); >+ >+Creates and returns a sample Koha::Holding record. >+ >+=cut >+ >+sub build_sample_holdings_record { >+ my ( $self, $args ) = @_; >+ >+ my $biblionumber = >+ delete $args->{biblionumber} || $self->build_sample_biblio->biblionumber; >+ my $library = delete $args->{library} >+ || $self->build_object( { class => 'Koha::Libraries' } )->branchcode; >+ >+ my $holding_marc = MARC::Record->new(); >+ $holding_marc->append_fields(MARC::Field->new('852','','','b' => $library)); >+ my $record = Koha::Holding->new({ biblionumber => $biblionumber, frameworkcode => '' }); >+ $record->set_marc({record => $holding_marc}); >+ >+ return $record->store->get_from_storage; >+} >+ > # ------------------------------------------------------------------------------ > # Internal helper routines > >diff --git a/tools/stage-marc-import.pl b/tools/stage-marc-import.pl >index 97767bfa1b..69ec5087c8 100755 >--- a/tools/stage-marc-import.pl >+++ b/tools/stage-marc-import.pl >@@ -94,7 +94,7 @@ if ($completedJobID) { > > my ( $errors, $marcrecords ); > if( $format eq 'MARCXML' ) { >- ( $errors, $marcrecords ) = C4::ImportBatch::RecordsFromMARCXMLFile( $file, $encoding); >+ ( $errors, $marcrecords ) = C4::ImportBatch::RecordsFromMARCXMLFile( $file, $record_type, $encoding); > } elsif( $format eq 'ISO2709' ) { > ( $errors, $marcrecords ) = C4::ImportBatch::RecordsFromISO2709File( $file, $record_type, $encoding ); > } else { # plugin based >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 20447
:
73703
|
73704
|
76485
|
76542
|
76670
|
76671
|
76672
|
76735
|
76736
|
78178
|
78179
|
78180
|
78738
|
78739
|
78740
|
78907
|
79403
|
79413
|
79565
|
79566
|
79567
|
79568
|
79569
|
79570
|
79812
|
79813
|
79814
|
79815
|
79816
|
79819
|
80320
|
80321
|
80322
|
80323
|
80324
|
80823
|
80824
|
80825
|
80826
|
80827
|
81264
|
81265
|
81266
|
81267
|
81268
|
82669
|
82670
|
82671
|
82672
|
82673
|
83550
|
83551
|
83552
|
83553
|
83554
|
83555
|
83556
|
83557
|
83558
|
83559
|
85364
|
85368
|
85369
|
85370
|
85371
|
85416
|
85417
|
85418
|
85419
|
85906
|
85907
|
85908
|
85909
|
85994
|
85995
|
85996
|
85997
|
86088
|
86089
|
86090
|
86091
|
87307
|
87308
|
87309
|
87310
|
87346
|
87347
|
87348
|
87349
|
88751
|
88752
|
88753
|
88754
|
88755
|
91743
|
91744
|
91745
|
91746
|
91747
|
94539
|
94540
|
94541
|
94542
|
97796
|
97797
|
97798
|
97799
|
97800
|
97843
|
97844
|
97845
|
97846
|
99143
|
99144
|
99145
|
99146
|
99176
|
99177
|
99178
|
99179
|
99235
|
99236
|
99237
|
99238
|
99239
|
105068
|
105069
|
105070
|
105071
|
105072
|
105259
|
105260
|
105261
|
105262
|
105263
|
106147
|
106148
|
106149
|
106150
|
106151
|
108250
|
108251
|
108252
|
108253
|
108254
|
108255
|
108336
|
108337
|
108338
|
108339
|
108340
|
108341
|
108789
|
108790
|
108791
|
108792
|
108793
|
108794
|
109695
|
109696
|
109697
|
109698
|
109699
|
109700
|
109703
|
109704
|
109705
|
109706
|
109707
|
109708
|
109711
|
109712
|
109713
|
109714
|
109715
|
109717
|
109718
|
109719
|
109720
|
109721
|
109722
|
109741
|
109742
|
109743
|
109744
|
109745
|
109746
|
109765
|
109766
|
109767
|
109768
|
109769
|
109770
|
109873
|
109874
|
109875
|
109877
|
109878
|
109879
|
110115
|
110174
|
110313
|
110314
|
110315
|
110316
|
110317
|
110318
|
110319
|
110320
|
110467
|
110468
|
110469
|
110471
|
110472
|
110473
|
110474
|
110475
|
112176
|
112177
|
112179
|
112180
|
112181
|
112182
|
112189
|
112190
|
112191
|
112192
|
112193
|
112194
|
112570
|
112571
|
112572
|
112573
|
112574
|
112575
|
113943
|
113944
|
113945
|
113946
|
113947
|
113948
|
113952
|
113953
|
113954
|
113955
|
113956
|
113957
|
113958
|
113959
|
115239
|
115240
|
115241
|
115242
|
115243
|
115244
|
115245
|
115654
|
115655
|
115656
|
115657
|
115658
|
115659
|
115660
|
115722
|
115723
|
115724
|
115725
|
115726
|
115727
|
115728
|
115729
|
116797
|
116798
|
116799
|
116800
|
116801
|
116802
|
116803
|
116804
|
116805
|
116806
|
116807
|
116808
|
116809
|
116810
|
116811
|
116812
|
118382
|
118383
|
118385
|
118386
|
118387
|
118388
|
118389
|
118390
|
118397
|
118398
|
118399
|
118400
|
118401
|
118402
|
118403
|
118404
|
118405
|
118406
|
118407
|
118408
|
118409
|
118410
|
118411
|
118412
|
118429
|
118430
|
118431
|
118432
|
118433
|
118434
|
118435
|
118436
|
118527
|
118528
|
118529
|
118530
|
118531
|
118532
|
118533
|
118534
|
118535
|
118536
|
119265
|
119266
|
119267
|
119268
|
119269
|
119270
|
119271
|
119272
|
119273
|
119274
|
119514
|
119515
|
119516
|
119517
|
119518
|
119519
|
119520
|
119521
|
119522
|
119523
|
119570
|
119571
|
121216
|
121217
|
121220
|
121221
|
121222
|
121223
|
121226
|
121227
|
121228
|
121229
|
121230
|
121231
|
121379
|
121380
|
121381
|
121382
|
121383
|
121406
|
121407
|
121408
|
121409
|
121410
|
122501
|
122502
|
122503
|
122504
|
122505
|
122851
|
122852
|
122853
|
122854
|
122855
|
122856
|
122891
|
122892
|
122893
|
122894
|
122895
|
122896
|
122897
|
123047
|
123048
|
123049
|
123050
|
123051
|
123052
|
123053
|
123054
|
123055
|
123056
|
123057
|
123058
|
123059
|
123060
|
123061
|
124012
|
124013
|
124014
|
124015
|
124016
|
124017
|
124018
|
124944
|
124945
|
124946
|
124947
|
124948
|
124949
|
124950
|
126204
|
126205
|
126206
|
126207
|
126208
|
126209
|
126210
|
126211
|
126212
|
126296
|
126391
|
126392
|
126394
|
126395
|
126396
|
126397
|
126398
|
126399
|
126400
|
126401
|
126402
|
126403
|
126404
|
126405
|
126932
|
126933
|
126934
|
126935
|
126936
|
126937
|
126938
|
126939
|
126940
|
126941
|
126942
|
126943
|
127040
|
128079
|
128131
|
128134
|
130776
|
130777
|
130778
|
130779
|
130780
|
130781
|
130782
|
130783
|
130784
|
130785
|
130786
|
130787
|
130788
|
130789
|
130790
|
130791
|
130792
|
130793
|
130794
|
130795
|
130796
|
130797
|
130798
|
130799
|
130800
|
130801
|
130802
|
130803
|
130804
|
130805
|
130806
|
130807
|
131458
|
131459
|
131460
|
131461
|
131462
|
131463
|
131464
|
131465
|
131466
|
131467
|
131468
|
131469
|
131470
|
131471
|
131472
|
131473
|
131474
|
131475
|
131476
|
131477
|
131478
|
131479
|
131480
|
131481
|
131482
|
139865
|
139866
|
139867
|
139868
|
139869
|
139870
|
139871
|
139872
|
139873
|
139874
|
139875
|
139876
|
139877
|
139878
|
139879
|
139880
|
139881
|
139882
|
139883
|
139884
|
139885
|
139886
|
139887
|
139888
|
139889
|
139890
|
139891
|
139892
|
139893
|
139894
|
139895
|
139896
|
157492
|
157493