for my $in ( @itemnumbers ) {
my $item = Koha::Items->find( $in ); # FIXME We do not need that, we already have Koha::Items from $order_obj->items
my $biblio = $item->biblio;
- my ( $itemfield ) = GetMarcFromKohaField( 'items.itemnumber', $biblio->frameworkcode );
+ my ( $itemfield ) = GetMarcFromKohaField( 'items.itemnumber' );
my $item_marc = C4::Items::GetMarcItem( $biblio->biblionumber, $in );
for my $affect ( @affects ) {
my ( $sf, $v ) = split q{=}, $affect, 2;
my $tagslib = C4::Biblio::GetMarcStructure( 1, 'ACQ', { unsafe => 1 } );
if ($tagslib) {
my ($itemfield) =
- C4::Biblio::GetMarcFromKohaField( 'items.itemnumber', '' );
+ C4::Biblio::GetMarcFromKohaField( 'items.itemnumber' );
for my $tag ( sort keys %$tagslib ) {
next unless $tag;
next if $tag == $itemfield;
my $record = shift;
my $frameworkcode = shift;
# get the items before and append them to the biblio before updating the record, atm we just have the biblio
- my ( $itemtag, $itemsubfield ) = GetMarcFromKohaField( "items.itemnumber", $frameworkcode );
+ my ( $itemtag, $itemsubfield ) = GetMarcFromKohaField( "items.itemnumber" );
# delete any item fields from incoming record to avoid
# duplication or incorrect data - use AddItem() or ModItem()
my $sysprefname = $template eq 'opac' ? 'opacisbd' : 'isbd';
my $framework = $params->{framework};
my $itemtype = $framework;
- my ( $holdingbrtagf, $holdingbrtagsubf ) = &GetMarcFromKohaField( "items.holdingbranch", $itemtype );
+ my ( $holdingbrtagf, $holdingbrtagsubf ) = &GetMarcFromKohaField( "items.holdingbranch" );
my $tagslib = GetMarcStructure( 1, $itemtype, { unsafe => 1 } );
my $ISBD = C4::Context->preference($sysprefname);
my $dbh = C4::Context->dbh;
my $sth = $dbh->prepare("SELECT itemnumber FROM items WHERE biblionumber = ?");
$sth->execute($biblionumber);
- my ( $itemtag, $itemsubfield ) = GetMarcFromKohaField( "items.itemnumber", $frameworkcode );
+ my ( $itemtag, $itemsubfield ) = GetMarcFromKohaField( "items.itemnumber" );
my @item_fields; # Array holding the actual MARC data for items to be included.
my @items; # Array holding items which are both in the list (sitenumbers)
sub _koha_marc_update_bib_ids {
my ( $record, $frameworkcode, $biblionumber, $biblioitemnumber ) = @_;
- my ( $biblio_tag, $biblio_subfield ) = GetMarcFromKohaField( "biblio.biblionumber", $frameworkcode );
+ my ( $biblio_tag, $biblio_subfield ) = GetMarcFromKohaField( "biblio.biblionumber" );
die qq{No biblionumber tag for framework "$frameworkcode"} unless $biblio_tag;
- my ( $biblioitem_tag, $biblioitem_subfield ) = GetMarcFromKohaField( "biblioitems.biblioitemnumber", $frameworkcode );
+ my ( $biblioitem_tag, $biblioitem_subfield ) = GetMarcFromKohaField( "biblioitems.biblioitemnumber" );
die qq{No biblioitemnumber tag for framework "$frameworkcode"} unless $biblioitem_tag;
if ( $biblio_tag < 10 ) {
my $biblioitem = shift;
my $frameworkcode = shift;
- my ( $biblioitem_tag, $biblioitem_subfield ) = GetMarcFromKohaField( "biblioitems.cn_sort", $frameworkcode );
+ my ( $biblioitem_tag, $biblioitem_subfield ) = GetMarcFromKohaField( "biblioitems.cn_sort" );
return unless $biblioitem_tag;
my ($cn_sort) = GetClassSort( $biblioitem->{'biblioitems.cn_source'}, $biblioitem->{'cn_class'}, $biblioitem->{'cn_item'} );
return;
}
my $biblioitem = $biblio->biblioitem;
- my ($totalissuestag, $totalissuessubfield) = GetMarcFromKohaField('biblioitems.totalissues', $biblio->frameworkcode);
+ my ($totalissuestag, $totalissuessubfield) = GetMarcFromKohaField( 'biblioitems.totalissues' );
unless ($totalissuestag) {
return 1; # There is nothing to do
}
my $record_modified = 0;
my $frameworkcode = C4::Biblio::GetFrameworkCode($biblionumber);
my ( $url_field, $url_subfield ) =
- C4::Biblio::GetMarcFromKohaField( 'biblioitems.url', $frameworkcode );
+ C4::Biblio::GetMarcFromKohaField( 'biblioitems.url' );
foreach my $field ( $record->fields() ) {
if ( $field->is_control_field() ) {
my $value = $field->data();
sub EmbedItemsInImportBiblio {
my ( $record, $import_record_id ) = @_;
- my ( $itemtag, $itemsubfield ) = GetMarcFromKohaField("items.itemnumber", '');
+ my ( $itemtag, $itemsubfield ) = GetMarcFromKohaField( "items.itemnumber" );
my $dbh = C4::Context->dbh;
my $import_items = $dbh->selectall_arrayref(q|
SELECT import_items.marcxml
my @import_items_ids = ();
my $dbh = C4::Context->dbh;
- my ($item_tag,$item_subfield) = &GetMarcFromKohaField("items.itemnumber",'');
+ my ($item_tag,$item_subfield) = &GetMarcFromKohaField( "items.itemnumber" );
foreach my $item_field ($marc_record->field($item_tag)) {
my $item_marc = MARC::Record->new();
$item_marc->leader("00000 a "); # must set Leader/09 to 'a'
if ($record_type eq 'biblio') {
# remove any item tags - rely on BatchCommitItems
- ($item_tag,$item_subfield) = &GetMarcFromKohaField("items.itemnumber",'');
+ ($item_tag,$item_subfield) = &GetMarcFromKohaField( "items.itemnumber" );
foreach my $item_field ($marc_record->field($item_tag)) {
$marc_record->delete_field($item_field);
}
my $item_marc = MARC::Record->new_from_xml( StripNonXmlChars( $row->{'marcxml'} ), 'UTF-8', $row->{'encoding'} );
# Delete date_due subfield as to not accidentally delete item checkout due dates
- my ( $MARCfield, $MARCsubfield ) = GetMarcFromKohaField( 'items.onloan', GetFrameworkCode($biblionumber) );
+ my ( $MARCfield, $MARCsubfield ) = GetMarcFromKohaField( 'items.onloan' );
$item_marc->field($MARCfield)->delete_subfield( code => $MARCsubfield );
my $item = TransformMarcToKoha( $item_marc );
# parse item hash from MARC
my $frameworkcode = C4::Biblio::GetFrameworkCode($biblionumber);
- my ( $itemtag, $itemsubfield ) = C4::Biblio::GetMarcFromKohaField( "items.itemnumber", $frameworkcode );
+ my ( $itemtag, $itemsubfield ) = C4::Biblio::GetMarcFromKohaField( "items.itemnumber" );
my $localitemmarc = MARC::Record->new;
$localitemmarc->append_fields( $source_item_marc->field($itemtag) );
$record = $record->clone();
# loop through the item tags and start creating items
my @bad_item_fields = ();
- my ($itemtag, $itemsubfield) = C4::Biblio::GetMarcFromKohaField("items.itemnumber",'');
+ my ($itemtag, $itemsubfield) = C4::Biblio::GetMarcFromKohaField( "items.itemnumber" );
my $item_sequence_num = 0;
ITEMFIELD: foreach my $item_field ($record->field($itemtag)) {
$item_sequence_num++;
my $itemnumber = shift;
my $frameworkcode = C4::Biblio::GetFrameworkCode($biblionumber);
- my ( $itemtag, $itemsubfield ) = C4::Biblio::GetMarcFromKohaField( "items.itemnumber", $frameworkcode );
+ my ( $itemtag, $itemsubfield ) = C4::Biblio::GetMarcFromKohaField( "items.itemnumber" );
my $localitemmarc = MARC::Record->new;
$localitemmarc->append_fields( $item_marc->field($itemtag) );
my $item_marc = MARC::Record->new();
foreach my $item_field ( keys %{$mungeditem} ) {
- my ( $tag, $subfield ) = C4::Biblio::GetMarcFromKohaField( $item_field, $frameworkcode );
+ my ( $tag, $subfield ) = C4::Biblio::GetMarcFromKohaField( $item_field );
next unless defined $tag and defined $subfield; # skip if not mapped to MARC field
my @values = split(/\s?\|\s?/, $mungeditem->{$item_field}, -1);
foreach my $value (@values){
my $dbh = C4::Context->dbh;
$frameworkcode = C4::Biblio::GetFrameworkCode($bibnum) if $bibnum;
- my ( $itemtagfield, $itemtagsubfield ) = C4::Biblio::GetMarcFromKohaField( "items.itemnumber", $frameworkcode );
+ my ( $itemtagfield, $itemtagsubfield ) = C4::Biblio::GetMarcFromKohaField( "items.itemnumber" );
# Note: $tagslib obtained from GetMarcStructure() in 'unsafe' mode is
# a shared data structure. No plugin (including custom ones) should change
elsif ( $f =~ /^([0-9a-z]{3})(\w)(\W?).*?/ ) {
my ($field,$subf,$ws) = ($1,$2,$3);
my $subf_data;
- my ($itemtag, $itemsubfieldcode) = &GetMarcFromKohaField("items.itemnumber",'');
+ my ($itemtag, $itemsubfieldcode) = &GetMarcFromKohaField( "items.itemnumber" );
my @marcfield = $record->field($field);
if(@marcfield) {
if($field eq $itemtag) { # item-level data, we need to get the right item.
my ($source_record, $max_matches) = @_;
my $matches = {};
- my $marcframework_used = ''; # use the default framework
my $QParser;
$QParser = C4::Context->queryparser if (C4::Context->preference('UseQueryParser'));
else {
foreach my $matched ( @{$searchresults} ) {
my $target_record = C4::Search::new_record_from_zebra( 'biblioserver', $matched );
- my ( $biblionumber_tag, $biblionumber_subfield ) = C4::Biblio::GetMarcFromKohaField( "biblio.biblionumber", $marcframework_used );
+ my ( $biblionumber_tag, $biblionumber_subfield ) = C4::Biblio::GetMarcFromKohaField( "biblio.biblionumber" );
my $id = ( $biblionumber_tag > 10 ) ?
$target_record->field($biblionumber_tag)->subfield($biblionumber_subfield) :
$target_record->field($biblionumber_tag)->data();
my %itemtypes = map { $_->{itemtype} => $_ } @{ $itemtypes->unblessed };
#search item field code
- my ($itemtag, undef) = &GetMarcFromKohaField( "items.itemnumber", "" );
+ my ($itemtag, undef) = &GetMarcFromKohaField( "items.itemnumber" );
## find column names of items related to MARC
my %subfieldstosearch;
my @columns = Koha::Database->new()->schema()->resultset('Item')->result_source->columns;
for my $column ( @columns ) {
my ( $tagfield, $tagsubfield ) =
- &GetMarcFromKohaField( "items." . $column, "" );
+ &GetMarcFromKohaField( "items." . $column );
if ( defined $tagsubfield ) {
$subfieldstosearch{$column} = $tagsubfield;
}
my $marcflavour = C4::Context->preference("marcflavour");
# We get the biblionumber position in MARC
- my ($bibliotag,$bibliosubf)=GetMarcFromKohaField('biblio.biblionumber','');
+ my ($bibliotag,$bibliosubf)=GetMarcFromKohaField( 'biblio.biblionumber' );
# set stuff for XSLT processing here once, not later again for every record we retrieved
my $xslfile;
my $hostbiblio = GetMarcBiblio({
biblionumber => $hostbiblionumber,
embed_items => 1 });
- my ($itemfield, undef) = GetMarcFromKohaField( 'items.itemnumber', GetFrameworkCode($hostbiblionumber) );
+ my ($itemfield, undef) = GetMarcFromKohaField( 'items.itemnumber' );
if( $hostbiblio ) {
my @hostitems = $hostbiblio->field($itemfield);
foreach my $hostitem (@hostitems){
my $biblio = Koha::Biblios->find( $biblionumber );
if ( $biblio and !$biblio->serial ) {
my $record = GetMarcBiblio({ biblionumber => $biblionumber });
- my ( $tag, $subf ) = GetMarcFromKohaField( 'biblio.serial', $biblio->frameworkcode );
+ my ( $tag, $subf ) = GetMarcFromKohaField( 'biblio.serial' );
if ($tag) {
eval { $record->field($tag)->update( $subf => 1 ); };
}
item_numbers => $itemnumbers });
if ($only_export_items_for_branches && @$only_export_items_for_branches) {
my %export_items_for_branches = map { $_ => 1 } @$only_export_items_for_branches;
- my ( $homebranchfield, $homebranchsubfield ) = GetMarcFromKohaField( 'items.homebranch', '' ); # Should be GetFrameworkCode( $biblionumber )?
+ my ( $homebranchfield, $homebranchsubfield ) = GetMarcFromKohaField( 'items.homebranch' );
for my $itemfield ( $record->field($homebranchfield) ) {
my $homebranch = $itemfield->subfield($homebranchsubfield);
my $record = shift;
- my ($biblionumber_field, $biblionumber_subfield) = GetMarcFromKohaField("biblio.biblionumber", '');
+ my ($biblionumber_field, $biblionumber_subfield) = GetMarcFromKohaField( "biblio.biblionumber" );
my $biblionumber = ( $biblionumber_field > 9 )
? $record->field($biblionumber_field)->subfield($biblionumber_subfield)
: $record->field($biblionumber_field)->data();
sub _processrecord {
my $record = shift;
- my ($item_tag) = GetMarcFromKohaField("items.itemnumber", '');
+ my ($item_tag) = GetMarcFromKohaField( "items.itemnumber" );
$item_tag ||= '';
foreach my $field ( $record->fields() ) {
use base qw(Class::Accessor);
use C4::Context;
-use C4::Biblio qw/GetMarcFromKohaField/;
__PACKAGE__->mk_ro_accessors( qw|
name path errstr javascript noclick
sub extract_biblionumber {
my ( $record ) = @_;
return if ref($record) ne 'MARC::Record';
- my ( $biblionumbertagfield, $biblionumbertagsubfield ) = C4::Biblio::GetMarcFromKohaField( 'biblio.biblionumber', '' );
+ my ( $biblionumbertagfield, $biblionumbertagsubfield ) = C4::Biblio::GetMarcFromKohaField( 'biblio.biblionumber' );
if( $biblionumbertagfield < 10 ) {
my $controlfield = $record->field( $biblionumbertagfield );
return $controlfield ? $controlfield->data : undef;
my $bibitemnum;
# remove ISBN -
- my ( $isbnfield, $isbnsubfield ) = GetMarcFromKohaField( 'biblioitems.isbn', '' );
+ my ( $isbnfield, $isbnsubfield ) = GetMarcFromKohaField( 'biblioitems.isbn' );
if ( $marcrecord->field($isbnfield) ) {
foreach my $field ( $marcrecord->field($isbnfield) ) {
foreach my $subfield ( $field->subfield($isbnsubfield) ) {
my @affects = split q{\|}, C4::Context->preference("AcqItemSetSubfieldsWhenReceived");
if ( @affects ) {
my $frameworkcode = GetFrameworkCode($biblionumber);
- my ( $itemfield ) = GetMarcFromKohaField( 'items.itemnumber', $frameworkcode );
+ my ( $itemfield ) = GetMarcFromKohaField( 'items.itemnumber' );
for my $in ( @received_items ) {
my $item = C4::Items::GetMarcItem( $biblionumber, $in );
for my $affect ( @affects ) {
my ( @order_user_ids, @order_users, @catalog_details );
our $tagslib = GetMarcStructure(1, 'ACQ', { unsafe => 1 } );
-my ( $itemnumber_tag, $itemnumber_subtag ) = GetMarcFromKohaField( 'items.itemnumber', 'ACQ' );
+my ( $itemnumber_tag, $itemnumber_subtag ) = GetMarcFromKohaField( 'items.itemnumber' );
if ( not $ordernumber ) { # create order
$new = 'yes';
}
# Find the items.barcode subfield for barcode validations
-my (undef, $barcode_subfield) = GetMarcFromKohaField('items.barcode', '');
+my (undef, $barcode_subfield) = GetMarcFromKohaField( 'items.barcode' );
# fill template
$template->param(
# remove the - in isbn, koha store isbn without any -
if ($marc) {
my $record = MARC::Record->new_from_usmarc($marc);
- my ($isbnfield,$isbnsubfield) = GetMarcFromKohaField('biblioitems.isbn','');
+ my ($isbnfield,$isbnsubfield) = GetMarcFromKohaField( 'biblioitems.isbn' );
if ( $record->field($isbnfield) ) {
foreach my $field ( $record->field($isbnfield) ) {
foreach my $subfield ( $field->subfield($isbnsubfield) ) {
if ( C4::Context->preference("z3950NormalizeAuthor")
and C4::Context->preference("z3950AuthorAuthFields") )
{
- my ( $tag, $subfield ) = GetMarcFromKohaField("biblio.author", '');
+ my ( $tag, $subfield ) = GetMarcFromKohaField( "biblio.author" );
my $auth_fields =
C4::Context->preference("z3950AuthorAuthFields");
push @item_loop, $item if $item;
}
-my ($holdingbrtagf,$holdingbrtagsubf) = &GetMarcFromKohaField("items.holdingbranch",$frameworkcode);
+my ($holdingbrtagf,$holdingbrtagsubf) = &GetMarcFromKohaField( "items.holdingbranch" );
@item_loop = sort {$a->{$holdingbrtagsubf} cmp $b->{$holdingbrtagsubf}} @item_loop;
@item_subfield_codes = uniq @item_subfield_codes;
# remove the - in isbn, koha store isbn without any -
if ($marc) {
my $record = MARC::Record->new_from_usmarc($marc);
- my ($isbnfield,$isbnsubfield) = GetMarcFromKohaField('biblioitems.isbn','');
+ my ($isbnfield,$isbnsubfield) = GetMarcFromKohaField( 'biblioitems.isbn' );
if ( $record->field($isbnfield) ) {
foreach my $field ( $record->field($isbnfield) ) {
foreach my $subfield ( $field->subfield($isbnsubfield) ) {
and C4::Context->preference("z3950AuthorAuthFields")
and C4::Context->preference("marcflavour") eq 'UNIMARC' )
{
- my ( $tag, $subfield ) = GetMarcFromKohaField("biblio.author", '');
+ my ( $tag, $subfield ) = GetMarcFromKohaField( "biblio.author" );
my $auth_fields =
C4::Context->preference("z3950AuthorAuthFields");
sub GetMandatoryFieldZ3950 {
my $frameworkcode = shift;
- my @isbn = GetMarcFromKohaField('biblioitems.isbn',$frameworkcode);
- my @title = GetMarcFromKohaField('biblio.title',$frameworkcode);
- my @author = GetMarcFromKohaField('biblio.author',$frameworkcode);
- my @issn = GetMarcFromKohaField('biblioitems.issn',$frameworkcode);
- my @lccn = GetMarcFromKohaField('biblioitems.lccn',$frameworkcode);
+ my @isbn = GetMarcFromKohaField( 'biblioitems.isbn' );
+ my @title = GetMarcFromKohaField( 'biblio.title' );
+ my @author = GetMarcFromKohaField( 'biblio.author' );
+ my @issn = GetMarcFromKohaField( 'biblioitems.issn' );
+ my @lccn = GetMarcFromKohaField( 'biblioitems.lccn' );
return {
$isbn[0].$isbn[1] => 'isbn',
# if it's a modif, retrieve bibli and biblioitem numbers for the future modification of old-DB.
( $biblionumbertagfield, $biblionumbertagsubfield ) =
- &GetMarcFromKohaField( "biblio.biblionumber", $frameworkcode );
+ &GetMarcFromKohaField( "biblio.biblionumber" );
( $biblioitemnumtagfield, $biblioitemnumtagsubfield ) =
- &GetMarcFromKohaField( "biblioitems.biblioitemnumber", $frameworkcode );
-
+ &GetMarcFromKohaField( "biblioitems.biblioitemnumber" );
+
# search biblioitems value
my $sth = $dbh->prepare("select biblioitemnumber from biblioitems where biblionumber=?");
$sth->execute($biblionumber);
# NOTE: 'incremental' is the ONLY autoBarcode option available to those not using javascript
sub _increment_barcode {
my ($record, $frameworkcode) = @_;
- my ($tagfield,$tagsubfield) = &GetMarcFromKohaField("items.barcode",$frameworkcode);
+ my ($tagfield,$tagsubfield) = &GetMarcFromKohaField( "items.barcode" );
unless ($record->field($tagfield)->subfield($tagsubfield)) {
my $sth_barcode = $dbh->prepare("select max(abs(barcode)) from items");
$sth_barcode->execute;
my $item = shift;
# Getting item tag
- my ($tag, $subtag) = GetMarcFromKohaField("items.barcode", '');
+ my ($tag, $subtag) = GetMarcFromKohaField( "items.barcode" );
# Getting list of subfields to keep
my $subfieldsToUseWhenPrefill = C4::Context->preference('SubfieldsToUseWhenPrefill');
}
else {
# we have to clear the barcode field in the duplicate item record to make way for the new one generated by the javascript plugin
- my ($tagfield,$tagsubfield) = &GetMarcFromKohaField("items.barcode",$frameworkcode);
+ my ($tagfield,$tagsubfield) = &GetMarcFromKohaField( "items.barcode" );
my $fieldItem = $itemrecord->field($tagfield);
$itemrecord->delete_field($fieldItem);
$fieldItem->delete_subfields($tagsubfield);
my $barcodeobj = C4::Barcodes->new;
my $copynumber = $addedolditem->{'copynumber'};
my $oldbarcode = $addedolditem->{'barcode'};
- my ($tagfield,$tagsubfield) = &GetMarcFromKohaField("items.barcode",$frameworkcode);
- my ($copytagfield,$copytagsubfield) = &GetMarcFromKohaField("items.copynumber",$frameworkcode);
+ my ($tagfield,$tagsubfield) = &GetMarcFromKohaField( "items.barcode" );
+ my ($copytagfield,$copytagsubfield) = &GetMarcFromKohaField( "items.copynumber" );
# If there is a barcode and we can't find their new values, we can't add multiple copies
my $testbarcode;
}
else {
# we have to clear the barcode field in the duplicate item record to make way for the new one generated by the javascript plugin
- my ($tagfield,$tagsubfield) = &GetMarcFromKohaField("items.barcode",$frameworkcode);
+ my ($tagfield,$tagsubfield) = &GetMarcFromKohaField( "items.barcode" );
my $fieldItem = $itemrecord->field($tagfield);
$itemrecord->delete_field($fieldItem);
$fieldItem->delete_subfields($tagsubfield);
my %witness; #---- stores the list of subfields used at least once, with the "meaning" of the code
my @big_array;
#---- finds where items.itemnumber is stored
-my ( $itemtagfield, $itemtagsubfield) = &GetMarcFromKohaField("items.itemnumber", $frameworkcode);
-my ($branchtagfield, $branchtagsubfield) = &GetMarcFromKohaField("items.homebranch", $frameworkcode);
+my ( $itemtagfield, $itemtagsubfield) = &GetMarcFromKohaField( "items.itemnumber" );
+my ($branchtagfield, $branchtagsubfield) = &GetMarcFromKohaField( "items.homebranch" );
C4::Biblio::EmbedItemsInMarcBiblio({
marc_record => $temp,
biblionumber => $biblionumber });
biblionumber => $hostbiblionumber,
embed_items => 1 });
if ($hostrecord) {
- my ($itemfield, undef) = GetMarcFromKohaField( 'items.itemnumber', GetFrameworkCode($hostbiblionumber) );
+ my ($itemfield, undef) = GetMarcFromKohaField( 'items.itemnumber' );
foreach my $hostitem ($hostrecord->field($itemfield)){
if ($hostitem->subfield('9') eq $hostfield->subfield('9')){
push (@fields, $hostitem);
}
}
-my ($holdingbrtagf,$holdingbrtagsubf) = &GetMarcFromKohaField("items.holdingbranch",$frameworkcode);
+my ($holdingbrtagf,$holdingbrtagsubf) = &GetMarcFromKohaField( "items.holdingbranch" );
@big_array = sort {$a->{$holdingbrtagsubf} cmp $b->{$holdingbrtagsubf}} @big_array;
# now, construct template !
use C4::Context;
use C4::Barcodes::ValueBuilder;
+use C4::Biblio qw/GetMarcFromKohaField/;
use Koha::DateUtils;
use Algorithm::CheckDigits;
# find today's date
($args{year}, $args{mon}, $args{day}) = split('-', output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }));
- ($args{tag},$args{subfield}) = GetMarcFromKohaField("items.barcode", '');
- ($args{loctag},$args{locsubfield}) = GetMarcFromKohaField("items.homebranch", '');
+ ($args{tag},$args{subfield}) = GetMarcFromKohaField( "items.barcode" );
+ ($args{loctag},$args{locsubfield}) = GetMarcFromKohaField( "items.homebranch" );
my $nextnum;
my $scr;
# find today's date
($args{year}, $args{mon}, $args{day}) = split('-', output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }));
- ($args{tag},$args{subfield}) = GetMarcFromKohaField("items.barcode", '');
- ($args{loctag},$args{locsubfield}) = GetMarcFromKohaField("items.homebranch", '');
+ ($args{tag},$args{subfield}) = GetMarcFromKohaField( "items.barcode" );
+ ($args{loctag},$args{locsubfield}) = GetMarcFromKohaField( "items.homebranch" );
my $nextnum;
my $scr;
my @getoverdues = GetOverduesForBranch( $default, $location );
$debug and warn "HERE : $default / $location" . Dumper(@getoverdues);
# search for location authorised value
-my ($tag,$subfield) = GetMarcFromKohaField('items.location','');
+my ($tag,$subfield) = GetMarcFromKohaField( 'items.location' );
my $tagslib = &GetMarcStructure(1,'');
if ($tagslib->{$tag}->{$subfield}->{authorised_value}) {
my $values= GetAuthorisedValues($tagslib->{$tag}->{$subfield}->{authorised_value});
my $batch = MARC::Batch->new( 'USMARC', $fh );
$batch->warnings_off();
$batch->strict_off();
-my ($tagfield,$biblionumtagsubfield) = &GetMarcFromKohaField("biblio.biblionumber","");
+my ($tagfield,$biblionumtagsubfield) = &GetMarcFromKohaField( "biblio.biblionumber" );
my $i=0;
while ( my $record = $batch->next() ) {
$starttime = gettimeofday;
#1st of all, find item MARC tag.
-my ($tagfield,$tagsubfield) = &GetMarcFromKohaField("items.itemnumber",'');
+my ($tagfield,$tagsubfield) = &GetMarcFromKohaField( "items.itemnumber" );
# $dbh->do("lock tables biblio write, biblioitems write, items write, marc_biblio write, marc_subfield_table write, marc_blob_subfield write, marc_word write, marc_subfield_structure write");
my $sth = $dbh->prepare("SELECT biblionumber FROM biblio");
$sth->execute;
$dbh->do("UPDATE systempreferences SET value=0 WHERE variable='CataloguingLog'");
$dbh->do("UPDATE systempreferences SET value=0 where variable='AuthorityMergeLimit'");
$dbh->commit() unless $test_parameter;
-my ( $itemfield, $itemnumbersubfield ) = &GetMarcFromKohaField( "items.itemnumber", '' );
+my ( $itemfield, $itemnumbersubfield ) = &GetMarcFromKohaField( "items.itemnumber" );
#dbh query init
my $query =
return unless $record;
- my ($tagfield,$biblionumtagsubfield) = &GetMarcFromKohaField("biblio.biblionumber","");
- my ($tagfield2,$biblioitemtagsubfield) = &GetMarcFromKohaField("biblio.biblioitemnumber","");
+ my ($tagfield,$biblionumtagsubfield) = &GetMarcFromKohaField( "biblio.biblionumber" );
+ my ($tagfield2,$biblioitemtagsubfield) = &GetMarcFromKohaField( "biblio.biblioitemnumber" );
my $update=0;
if (defined $record) {
}
else {
( $tagid, $subfieldid ) =
- GetMarcFromKohaField( "biblio.biblionumber", $framework );
+ GetMarcFromKohaField( "biblio.biblionumber" );
$tagid||="001";
}
}
if ($dedup_barcode && grep { exists $_->{error_code} && $_->{error_code} eq 'duplicate_barcode' } @$errors_ref) {
# Find the record called 'barcode'
- my ($tag, $sub) = C4::Biblio::GetMarcFromKohaField('items.barcode', $framework);
+ my ($tag, $sub) = C4::Biblio::GetMarcFromKohaField( 'items.barcode' );
# Now remove any items that didn't have a duplicate_barcode error,
# erase the barcodes on items that did, and re-add those items.
my %dupes;
my $kohadir = C4::Context->config('intranetdir');
-my ($biblionumbertagfield,$biblionumbertagsubfield) = C4::Biblio::GetMarcFromKohaField("biblio.biblionumber","");
-my ($biblioitemnumbertagfield,$biblioitemnumbertagsubfield) = C4::Biblio::GetMarcFromKohaField("biblioitems.biblioitemnumber","");
+my ($biblionumbertagfield,$biblionumbertagsubfield) = C4::Biblio::GetMarcFromKohaField( "biblio.biblionumber" );
+my ($biblioitemnumbertagfield,$biblioitemnumbertagsubfield) = C4::Biblio::GetMarcFromKohaField( "biblioitems.biblioitemnumber" );
my $marcxml_open = q{<?xml version="1.0" encoding="UTF-8"?>
<collection xmlns="http://www.loc.gov/MARC21/slim">
print {$fh} $marcxml_open;
my $i = 0;
- my ( $itemtag, $itemsubfield ) = C4::Biblio::GetMarcFromKohaField("items.itemnumber",'');
+ my ( $itemtag, $itemsubfield ) = C4::Biblio::GetMarcFromKohaField( "items.itemnumber" );
while (my ($record_number) = $sth->fetchrow_array) {
print "." if ( $verbose_logging );
print "\r$i" unless ($i++ %100 or !$verbose_logging);
my $biblio = Koha::Biblios->find( $biblionumber );
my $framework = $biblio ? $biblio->frameworkcode : q{};
my $tagslib = &GetMarcStructure( 0, $framework );
-my ($tag_itemnumber,$subtag_itemnumber) = &GetMarcFromKohaField('items.itemnumber',$framework);
+my ($tag_itemnumber,$subtag_itemnumber) = &GetMarcFromKohaField( 'items.itemnumber' );
my @nonhiddenitems = $record->field($tag_itemnumber);
if (scalar @all_items >= 1 && scalar @nonhiddenitems == 0) {
print $query->redirect("/cgi-bin/koha/errors/404.pl");
}
}
-my ($bt_tag,$bt_subtag) = GetMarcFromKohaField('biblio.title',$framework);
+my ($bt_tag,$bt_subtag) = GetMarcFromKohaField( 'biblio.title' );
$template->param(
bibliotitle => $biblio->title,
) if $tagslib->{$bt_tag}->{$bt_subtag}->{hidden} <= 0 && # <=0 OPAC visible.
push @item_loop, $item if $item;
}
my ( $holdingbrtagf, $holdingbrtagsubf ) =
- &GetMarcFromKohaField( "items.holdingbranch", $framework );
+ &GetMarcFromKohaField( "items.holdingbranch" );
@item_loop =
sort { ($a->{$holdingbrtagsubf}||'') cmp ($b->{$holdingbrtagsubf}||'') } @item_loop;
#New Item
# if autoBarcode is set to 'incremental', calculate barcode...
- my ( $barcodetagfield, $barcodetagsubfield ) =
- GetMarcFromKohaField(
- 'items.barcode',
- GetFrameworkCode(
- $serialdatalist[0]->{'biblionumber'}
- )
- );
+ my ( $barcodetagfield, $barcodetagsubfield ) = GetMarcFromKohaField( 'items.barcode' );
if ( C4::Context->preference('autoBarcode') eq
'incremental' )
{
} else {
my $fullrecord = $record->clone();
my ( $itemtag, $itemsubfield ) =
- GetMarcFromKohaField( "items.itemnumber", '' );
+ GetMarcFromKohaField( "items.itemnumber" );
# delete any item tags
foreach my $field ( $record->field($itemtag) ) {
# delete any item tags
my ( $itemtag, $itemsubfield ) =
- GetMarcFromKohaField( "items.itemnumber", '' );
+ GetMarcFromKohaField( "items.itemnumber" );
foreach my $field ( $record->field($itemtag) ) {
$record->delete_field($field);
}
biblionumber => $biblionumber,
embed_items => 0 });
my $frameworkcode = GetFrameworkCode($biblionumber);
- my ( $biblioitem_tag, $biblioitem_subfield ) = GetMarcFromKohaField( "biblioitems.biblioitemnumber", $frameworkcode );
+ my ( $biblioitem_tag, $biblioitem_subfield ) = GetMarcFromKohaField( "biblioitems.biblioitemnumber" );
die qq{No biblioitemnumber tag for framework "$frameworkcode"} unless $biblioitem_tag;
my $biblioitemnumbertotest;
if ( $biblioitem_tag < 10 ) {
use C4::Biblio;
-my ( $biblionumbertagfield, $biblionumbertagsubfield ) = C4::Biblio::GetMarcFromKohaField( "biblio.biblionumber", '' );
+my ( $biblionumbertagfield, $biblionumbertagsubfield ) = C4::Biblio::GetMarcFromKohaField( "biblio.biblionumber" );
subtest 'Biblio record' => sub {
plan tests => 10;
my $leader = '00203nam a2200097 4500';
INSERT INTO marc_subfield_structure(frameworkcode,kohafield,tagfield,tagsubfield)
VALUES ('$frameworkcode', 'biblioitems.url', '856', 'u')
|);
-my ( $url_field, $url_subfield ) = C4::Biblio::GetMarcFromKohaField('biblioitems.url', $frameworkcode);
+my ( $url_field, $url_subfield ) = C4::Biblio::GetMarcFromKohaField( 'biblioitems.url' );
my $title = q|My title & a word & another word|;
my $url = q|http://www.example.org/index.pl?arg1=val1&arg2=val2|;
sub create_biblio {
my ($title, $itemtype) = @_;
- my ($title_tag, $title_subfield) = GetMarcFromKohaField('biblio.title', '');
- my ($it_tag, $it_subfield) = GetMarcFromKohaField('biblioitems.itemtype', '');
+ my ($title_tag, $title_subfield) = GetMarcFromKohaField( 'biblio.title' );
+ my ($it_tag, $it_subfield) = GetMarcFromKohaField( 'biblioitems.itemtype' );
my $record = MARC::Record->new();
$record->append_fields(
};
my ( $isbn_field, $isbn_subfield ) =
- GetMarcFromKohaField( 'biblioitems.isbn', q{} );
+ GetMarcFromKohaField( 'biblioitems.isbn' );
my $update_sql = q{UPDATE marc_subfield_structure SET hidden=? };
my $sth = $dbh->prepare($update_sql);
foreach my $hidden_value (@valid_hidden_values) {
sub create_marc_record {
my ( $title_field, $title_subfield ) =
- GetMarcFromKohaField( 'biblio.title', q{} );
+ GetMarcFromKohaField( 'biblio.title' );
my ( $isbn_field, $isbn_subfield ) =
- GetMarcFromKohaField( 'biblioitems.isbn', q{} );
+ GetMarcFromKohaField( 'biblioitems.isbn' );
my $isbn = '0590353403';
my $title = 'Foundation';
my $marc_record = MARC::Record->new;
my $original_record = MARC::Record->new;
$record->leader('03174nam a2200445 a 4500');
$original_record->leader('03174nam a2200445 a 4500');
-my ($item_tag, $item_subfield) = C4::Biblio::GetMarcFromKohaField('items.itemnumber','');
+my ($item_tag, $item_subfield) = C4::Biblio::GetMarcFromKohaField( 'items.itemnumber' );
my @fields = (
MARC::Field->new(
100, '1', ' ',
ok($found, "item1 found");
my $frameworkcode = q||;
- my ($itemfield) = GetMarcFromKohaField('items.itemnumber', $frameworkcode);
+ my ($itemfield) = GetMarcFromKohaField( 'items.itemnumber' );
# Create item subfield 'z' without link
$dbh->do('DELETE FROM marc_subfield_structure WHERE tagfield=? AND tagsubfield="z" AND frameworkcode=?', undef, $itemfield, $frameworkcode);
t::lib::Mocks::mock_preference( 'OpacHiddenItems', '' );
my ($itemfield) =
- C4::Biblio::GetMarcFromKohaField( 'items.itemnumber', '' );
+ C4::Biblio::GetMarcFromKohaField( 'items.itemnumber' );
my $record = C4::Biblio::GetMarcBiblio({ biblionumber => $biblio->biblionumber });
warning_is { C4::Biblio::EmbedItemsInMarcBiblio() }
{ carped => 'EmbedItemsInMarcBiblio: No MARC record passed' },
my $item = Koha::Items->find( $itemnumber );
is ( $item->new_status, 'new_value', q|AddItem insert the 'new_status' field| );
-my ( $tagfield, undef ) = GetMarcFromKohaField('items.itemnumber', $frameworkcode);
+my ( $tagfield, undef ) = GetMarcFromKohaField( 'items.itemnumber' );
my $marc_item = C4::Items::GetMarcItem( $biblionumber, $itemnumber );
is( $marc_item->subfield($tagfield, $new_tagfield), 'new_value', q|Koha mapping is correct|);
# Auth values
foreach my $field (sort keys %$row) {
# If the koha field is mapped to a marc field
- my ($f, $sf) = C4::Biblio::GetMarcFromKohaField("items.$field", $row->{'frameworkcode'});
+ my ($f, $sf) = C4::Biblio::GetMarcFromKohaField( "items.$field" );
if (defined($f) and defined($sf)) {
# We replace the code with it's description
my $avs;
my $biblio = Test::MockModule->new('C4::Biblio');
$biblio->mock( 'GetMarcFromKohaField', sub {
- my ( $kohafield, $frameworkcode ) = @_;
+ my ( $kohafield ) = @_;
if ( $kohafield eq 'biblio.biblionumber' ) {
if ( C4::Context->preference('marcflavour') eq 'UNIMARC' ) {
return ( '001', '@' );
}
else {
my $func_ref = $biblio->original( 'GetMarcFromKohaField' );
- &$func_ref( $kohafield, $frameworkcode );
+ &$func_ref( $kohafield );
}
});
my $biblio = $builder->build_sample_biblio();
my $biblionumber = $biblio->biblionumber;
- my ( $icn_tag, $icn_sf ) = GetMarcFromKohaField( 'items.itemcallnumber', '' );
- my ( $it_tag, $it_sf ) = GetMarcFromKohaField( 'items.itype', '' );
+ my ( $icn_tag, $icn_sf ) = GetMarcFromKohaField( 'items.itemcallnumber' );
+ my ( $it_tag, $it_sf ) = GetMarcFromKohaField( 'items.itype' );
my $itemtype = $builder->build( { source => 'Itemtype' } )->{itemtype};
my $itemcallnumber = 'XXXmy itemcallnumberXXX';
my $context = C4::Context->new;
my ( $biblionumber_tag, $biblionumber_subfield ) =
- GetMarcFromKohaField( 'biblio.biblionumber', '' );
+ GetMarcFromKohaField( 'biblio.biblionumber' );
my ( $isbn_tag, $isbn_subfield ) =
- GetMarcFromKohaField( 'biblioitems.isbn', '' );
+ GetMarcFromKohaField( 'biblioitems.isbn' );
# Harry Potter and the Sorcerer's Stone, 1st American ed. 1997
my $isbn1 = '0590353403';
}
#initializing values for updates
- my ( $itemtagfield, $itemtagsubfield) = &GetMarcFromKohaField("items.itemnumber", "");
+ my ( $itemtagfield, $itemtagsubfield) = &GetMarcFromKohaField( "items.itemnumber" );
if ($values_to_modify){
my $xml = TransformHtmlToXml(\@tags,\@subfields,\@values,\@indicator,\@ind_tag, 'ITEM');
$marcitem = MARC::Record::new_from_xml($xml, 'UTF-8');
my %witness; #---- stores the list of subfields used at least once, with the "meaning" of the code
my @big_array;
#---- finds where items.itemnumber is stored
- my ( $itemtagfield, $itemtagsubfield) = &GetMarcFromKohaField("items.itemnumber", "");
- my ($branchtagfield, $branchtagsubfield) = &GetMarcFromKohaField("items.homebranch", "");
+ my ( $itemtagfield, $itemtagsubfield) = &GetMarcFromKohaField( "items.itemnumber" );
+ my ($branchtagfield, $branchtagsubfield) = &GetMarcFromKohaField( "items.homebranch" );
foreach my $itemnumber (@itemnumbers){
my $itemdata = Koha::Items->find($itemnumber);
next unless $itemdata; # Should have been tested earlier, but just in case...
# And $tag>10
sub UpdateMarcWith {
my ($marcfrom,$marcto)=@_;
- my ( $itemtag, $itemtagsubfield) = &GetMarcFromKohaField("items.itemnumber", "");
+ my ( $itemtag, $itemtagsubfield) = &GetMarcFromKohaField( "items.itemnumber" );
my $fieldfrom=$marcfrom->field($itemtag);
my @fields_to=$marcto->field($itemtag);
my $modified = 0;