package C4::Items;
# Copyright 2007 LibLime, Inc.
+# Parts Copyright Biblibre 2010
#
# This file is part of Koha.
#
GetItemsInfo
get_itemnumbers_of
GetItemnumberFromBarcode
+ GetBarcodeFromItemnumber
DelItemCheck
MoveItemFromBiblio
=head2 GetItem
-=over 4
-
-$item = GetItem($itemnumber,$barcode,$serial);
-
-=back
+ $item = GetItem($itemnumber,$barcode,$serial);
Return item information, for a given itemnumber or barcode.
The return value is a hashref mapping item column
my $ssth = $dbh->prepare("SELECT serialseq,publisheddate from serialitems left join serial on serialitems.serialid=serial.serialid where serialitems.itemnumber=?");
$ssth->execute($data->{'itemnumber'}) ;
($data->{'serialseq'} , $data->{'publisheddate'}) = $ssth->fetchrow_array();
- warn $data->{'serialseq'} , $data->{'publisheddate'};
}
#if we don't have an items.itype, use biblioitems.itemtype.
if( ! $data->{'itype'} ) {
=head2 CartToShelf
-=over 4
-
-CartToShelf($itemnumber);
-
-=back
+ CartToShelf($itemnumber);
Set the current shelving location of the item record
to its stored permanent shelving location. This is
=head2 AddItemFromMarc
-=over 4
-
-my ($biblionumber, $biblioitemnumber, $itemnumber)
- = AddItemFromMarc($source_item_marc, $biblionumber);
-
-=back
+ my ($biblionumber, $biblioitemnumber, $itemnumber)
+ = AddItemFromMarc($source_item_marc, $biblionumber);
Given a MARC::Record object containing an embedded item
record and a biblionumber, create a new item record.
=head2 AddItem
-=over 4
-
-my ($biblionumber, $biblioitemnumber, $itemnumber)
- = AddItem($item, $biblionumber[, $dbh, $frameworkcode, $unlinked_item_subfields]);
-
-=back
+ my ($biblionumber, $biblioitemnumber, $itemnumber)
+ = AddItem($item, $biblionumber[, $dbh, $frameworkcode, $unlinked_item_subfields]);
Given a hash containing item column names as keys,
create a new Koha item record.
=head2 AddItemBatchFromMarc
-=over 4
-
-($itemnumber_ref, $error_ref) = AddItemBatchFromMarc($record, $biblionumber, $biblioitemnumber, $frameworkcode);
-
-=back
+ ($itemnumber_ref, $error_ref) = AddItemBatchFromMarc($record,
+ $biblionumber, $biblioitemnumber, $frameworkcode);
Efficiently create item records from a MARC biblio record with
embedded item fields. This routine is suitable for batch jobs.
errors encountered during the processing. Each entry in the errors
list is a hashref containing the following keys:
-=over 2
+=over
=item item_sequence
=head2 ModItemFromMarc
-=over 4
-
-ModItemFromMarc($item_marc, $biblionumber, $itemnumber);
-
-=back
+ ModItemFromMarc($item_marc, $biblionumber, $itemnumber);
This function updates an item record based on a supplied
C<MARC::Record> object containing an embedded item field.
'items.cn_source' => undef,
copynumber => undef,
damaged => 0,
- dateaccessioned => undef,
+# dateaccessioned => undef,
enumchron => undef,
holdingbranch => undef,
homebranch => undef,
replacementpricedate => undef,
restricted => undef,
stack => undef,
+ stocknumber => undef,
uri => undef,
wthdrawn => 0,
);
my $biblionumber = shift;
my $itemnumber = shift;
- my $dbh = C4::Context->dbh;
- my $frameworkcode = GetFrameworkCode( $biblionumber );
- my ($itemtag,$itemsubfield)=GetMarcFromKohaField("items.itemnumber",$frameworkcode);
-
- my $localitemmarc=MARC::Record->new;
- $localitemmarc->append_fields($item_marc->field($itemtag));
- my $item = &TransformMarcToKoha( $dbh, $localitemmarc, $frameworkcode, 'items');
- foreach my $item_field (keys %default_values_for_mod_from_marc) {
- $item->{$item_field} = $default_values_for_mod_from_marc{$item_field} unless exists $item->{$item_field};
+ my $dbh = C4::Context->dbh;
+ my $frameworkcode = GetFrameworkCode($biblionumber);
+ my ( $itemtag, $itemsubfield ) = GetMarcFromKohaField( "items.itemnumber", $frameworkcode );
+
+ my $localitemmarc = MARC::Record->new;
+ $localitemmarc->append_fields( $item_marc->field($itemtag) );
+ my $item = &TransformMarcToKoha( $dbh, $localitemmarc, $frameworkcode, 'items' );
+ foreach my $item_field ( keys %default_values_for_mod_from_marc ) {
+ $item->{$item_field} = $default_values_for_mod_from_marc{$item_field} unless (exists $item->{$item_field});
}
- my $unlinked_item_subfields = _get_unlinked_item_subfields($localitemmarc, $frameworkcode);
-
+ my $unlinked_item_subfields = _get_unlinked_item_subfields( $localitemmarc, $frameworkcode );
+
return ModItem($item, $biblionumber, $itemnumber, $dbh, $frameworkcode, $unlinked_item_subfields);
}
=head2 ModItem
-=over 4
-
-ModItem({ column => $newvalue }, $biblionumber, $itemnumber[, $original_item_marc]);
-
-=back
+ ModItem({ column => $newvalue }, $biblionumber,
+ $itemnumber[, $original_item_marc]);
Change one or more columns in an item record and update
the MARC representation of the item.
=head2 ModItemTransfer
-=over 4
-
-ModItemTransfer($itenumber, $frombranch, $tobranch);
-
-=back
+ ModItemTransfer($itenumber, $frombranch, $tobranch);
Marks an item as being transferred from one branch
to another.
=head2 ModDateLastSeen
-=over 4
-
-ModDateLastSeen($itemnum);
-
-=back
+ ModDateLastSeen($itemnum);
Mark item as seen. Is called when an item is issued, returned or manually marked during inventory/stocktaking.
C<$itemnum> is the item number
=head2 DelItem
-=over 4
-
-DelItem($biblionumber, $itemnumber);
-
-=back
+ DelItem($dbh, $biblionumber, $itemnumber);
Exported function (core API) for deleting an item record in Koha.
=head2 CheckItemPreSave
-=over 4
-
my $item_ref = TransformMarcToKoha($marc, 'items');
# do stuff
my %errors = CheckItemPreSave($item_ref);
print "item is OK";
}
-=back
-
Given a hashref containing item fields, determine if it can be
inserted or updated in the database. Specifically, checks for
database integrity issues, and returns a hash containing any
=head2 GetItemStatus
-=over 4
-
-$itemstatushash = GetItemStatus($fwkcode);
-
-=back
+ $itemstatushash = GetItemStatus($fwkcode);
Returns a list of valid values for the
C<items.notforloan> field.
=head3 in PERL SCRIPT
-=over 4
-
-my $itemstatushash = getitemstatus;
-my @itemstatusloop;
-foreach my $thisstatus (keys %$itemstatushash) {
- my %row =(value => $thisstatus,
- statusname => $itemstatushash->{$thisstatus}->{'statusname'},
- );
- push @itemstatusloop, \%row;
-}
-$template->param(statusloop=>\@itemstatusloop);
-
-=back
+ my $itemstatushash = getitemstatus;
+ my @itemstatusloop;
+ foreach my $thisstatus (keys %$itemstatushash) {
+ my %row =(value => $thisstatus,
+ statusname => $itemstatushash->{$thisstatus}->{'statusname'},
+ );
+ push @itemstatusloop, \%row;
+ }
+ $template->param(statusloop=>\@itemstatusloop);
=head3 in TEMPLATE
-=over 4
-
-<select name="statusloop">
- <option value="">Default</option>
-<!-- TMPL_LOOP name="statusloop" -->
- <option value="<!-- TMPL_VAR name="value" -->" <!-- TMPL_IF name="selected" -->selected<!-- /TMPL_IF -->><!-- TMPL_VAR name="statusname" --></option>
-<!-- /TMPL_LOOP -->
-</select>
-
-=back
+ <select name="statusloop">
+ <option value="">Default</option>
+ <!-- TMPL_LOOP name="statusloop" -->
+ <option value="<!-- TMPL_VAR name="value" -->" <!-- TMPL_IF name="selected" -->selected<!-- /TMPL_IF -->><!-- TMPL_VAR name="statusname" --></option>
+ <!-- /TMPL_LOOP -->
+ </select>
=cut
=head2 GetItemLocation
-=over 4
-
-$itemlochash = GetItemLocation($fwk);
-
-=back
+ $itemlochash = GetItemLocation($fwk);
Returns a list of valid values for the
C<items.location> field.
=head3 in PERL SCRIPT
-=over 4
-
-my $itemlochash = getitemlocation;
-my @itemlocloop;
-foreach my $thisloc (keys %$itemlochash) {
- my $selected = 1 if $thisbranch eq $branch;
- my %row =(locval => $thisloc,
- selected => $selected,
- locname => $itemlochash->{$thisloc},
- );
- push @itemlocloop, \%row;
-}
-$template->param(itemlocationloop => \@itemlocloop);
-
-=back
+ my $itemlochash = getitemlocation;
+ my @itemlocloop;
+ foreach my $thisloc (keys %$itemlochash) {
+ my $selected = 1 if $thisbranch eq $branch;
+ my %row =(locval => $thisloc,
+ selected => $selected,
+ locname => $itemlochash->{$thisloc},
+ );
+ push @itemlocloop, \%row;
+ }
+ $template->param(itemlocationloop => \@itemlocloop);
=head3 in TEMPLATE
-=over 4
-
-<select name="location">
- <option value="">Default</option>
-<!-- TMPL_LOOP name="itemlocationloop" -->
- <option value="<!-- TMPL_VAR name="locval" -->" <!-- TMPL_IF name="selected" -->selected<!-- /TMPL_IF -->><!-- TMPL_VAR name="locname" --></option>
-<!-- /TMPL_LOOP -->
-</select>
-
-=back
+ <select name="location">
+ <option value="">Default</option>
+ <!-- TMPL_LOOP name="itemlocationloop" -->
+ <option value="<!-- TMPL_VAR name="locval" -->" <!-- TMPL_IF name="selected" -->selected<!-- /TMPL_IF -->><!-- TMPL_VAR name="locname" --></option>
+ <!-- /TMPL_LOOP -->
+ </select>
=cut
=head2 GetLostItems
-=over 4
-
-$items = GetLostItems( $where, $orderby );
-
-=back
+ $items = GetLostItems( $where, $orderby );
This function gets a list of lost items.
=item usage in the perl script:
-my $where = { barcode => '0001548' };
-my $items = GetLostItems( $where, "homebranch" );
-$template->param( itemsloop => $items );
+ my $where = { barcode => '0001548' };
+ my $items = GetLostItems( $where, "homebranch" );
+ $template->param( itemsloop => $items );
=back
=head2 GetItemsForInventory
-=over 4
-
-$itemlist = GetItemsForInventory($minlocation, $maxlocation, $location, $itemtype $datelastseen, $branch, $offset, $size, $statushash);
-
-=back
+ $itemlist = GetItemsForInventory($minlocation, $maxlocation,
+ $location, $itemtype $datelastseen, $branch,
+ $offset, $size, $statushash);
Retrieve a list of title/authors/barcode/callnumber, for biblio inventory.
=cut
sub GetItemsForInventory {
- my ( $minlocation, $maxlocation,$location, $itemtype, $ignoreissued, $datelastseen, $branch, $offset, $size, $statushash ) = @_;
+ my ( $minlocation, $maxlocation,$location, $itemtype, $ignoreissued, $datelastseen, $branchcode, $branch, $offset, $size, $statushash ) = @_;
my $dbh = C4::Context->dbh;
my ( @bind_params, @where_strings );
push @where_strings, 'items.location = ?';
push @bind_params, $location;
}
-
- if ( $branch ) {
+
+ if ( $branchcode ) {
+ if($branch eq "homebranch"){
push @where_strings, 'items.homebranch = ?';
- push @bind_params, $branch;
+ }else{
+ push @where_strings, 'items.holdingbranch = ?';
+ }
+ push @bind_params, $branchcode;
}
if ( $itemtype ) {
=head2 GetItemsCount
-=over 4
-$count = &GetItemsCount( $biblionumber);
-
-=back
+ $count = &GetItemsCount( $biblionumber);
This function return count of item with $biblionumber
=head2 GetItemInfosOf
-=over 4
-
-GetItemInfosOf(@itemnumbers);
-
-=back
+ GetItemInfosOf(@itemnumbers);
=cut
=head2 GetItemsByBiblioitemnumber
-=over 4
-
-GetItemsByBiblioitemnumber($biblioitemnumber);
-
-=back
+ GetItemsByBiblioitemnumber($biblioitemnumber);
Returns an arrayref of hashrefs suitable for use in a TMPL_LOOP
Called by C<C4::XISBN>
=head2 GetItemsInfo
-=over 4
-
-@results = GetItemsInfo($biblionumber, $type);
-
-=back
+ @results = GetItemsInfo($biblionumber, $type);
Returns information about books with the given biblionumber.
biblioitems.url,
items.notforloan as itemnotforloan,
itemtypes.description,
+ itemtypes.notforloan as notforloan_per_itemtype,
branchurl
FROM items
LEFT JOIN branches ON items.homebranch = branches.branchcode
my ($lib) = $sthnflstatus->fetchrow;
$data->{notforloanvalue} = $lib;
}
- $data->{itypenotforloan} = $data->{notforloan} if (C4::Context->preference('item-level_itypes'));
+
+ # get restricted status and description if applicable
+ my $restrictedstatus = $dbh->prepare(
+ 'SELECT authorised_value
+ FROM marc_subfield_structure
+ WHERE kohafield="items.restricted"
+ '
+ );
+
+ $restrictedstatus->execute;
+ ($authorised_valuecode) = $restrictedstatus->fetchrow;
+ if ($authorised_valuecode) {
+ $restrictedstatus = $dbh->prepare(
+ "SELECT lib,lib_opac FROM authorised_values
+ WHERE category=?
+ AND authorised_value=?"
+ );
+ $restrictedstatus->execute( $authorised_valuecode,
+ $data->{restricted} );
+
+ if ( my $rstdata = $restrictedstatus->fetchrow_hashref ) {
+ $data->{restricted} = $rstdata->{'lib'};
+ $data->{restrictedopac} = $rstdata->{'lib_opac'};
+ }
+ }
# my stack procedures
my $stackstatus = $dbh->prepare(
=head2 GetLastAcquisitions
-=over 4
-
-my $lastacq = GetLastAcquisitions({'branches' => ('branch1','branch2'), 'itemtypes' => ('BK','BD')}, 10);
-
-=back
+ my $lastacq = GetLastAcquisitions({'branches' => ('branch1','branch2'),
+ 'itemtypes' => ('BK','BD')}, 10);
=cut
=head2 get_itemnumbers_of
-=over 4
-
-my @itemnumbers_of = get_itemnumbers_of(@biblionumbers);
-
-=back
+ my @itemnumbers_of = get_itemnumbers_of(@biblionumbers);
Given a list of biblionumbers, return the list of corresponding itemnumbers
for each biblionumber.
=head2 GetItemnumberFromBarcode
-=over 4
-
-$result = GetItemnumberFromBarcode($barcode);
-
-=back
+ $result = GetItemnumberFromBarcode($barcode);
=cut
return ($result);
}
+=head2 GetBarcodeFromItemnumber
+
+ $result = GetBarcodeFromItemnumber($itemnumber);
+
+=cut
+
+sub GetBarcodeFromItemnumber {
+ my ($itemnumber) = @_;
+ my $dbh = C4::Context->dbh;
+
+ my $rq =
+ $dbh->prepare("SELECT barcode FROM items WHERE items.itemnumber=?");
+ $rq->execute($itemnumber);
+ my ($result) = $rq->fetchrow;
+ return ($result);
+}
+
=head3 get_item_authorised_values
- find the types and values for all authorised values assigned to this item.
+find the types and values for all authorised values assigned to this item.
- parameters:
- itemnumber
+parameters: itemnumber
- returns: a hashref malling the authorised value to the value set for this itemnumber
+returns: a hashref malling the authorised value to the value set for this itemnumber
$authorised_values = {
'CCODE' => undef,
'itemtypes' => 'SER',
};
- Notes: see C4::Biblio::get_biblio_authorised_values for a similar method at the biblio level.
+Notes: see C4::Biblio::get_biblio_authorised_values for a similar method at the biblio level.
=cut
=head3 get_authorised_value_images
- find a list of icons that are appropriate for display based on the
- authorised values for a biblio.
+find a list of icons that are appropriate for display based on the
+authorised values for a biblio.
- parameters: listref of authorised values, such as comes from
- get_item_authorised_values or
- from C4::Biblio::get_biblio_authorised_values
+parameters: listref of authorised values, such as comes from
+get_item_authorised_values or
+from C4::Biblio::get_biblio_authorised_values
- returns: listref of hashrefs for each image. Each hashref looks like
- this:
+returns: listref of hashrefs for each image. Each hashref looks like this:
{ imageurl => '/intranet-tmpl/prog/img/itemtypeimg/npl/WEB.gif',
label => '',
category => '',
value => '', }
- Notes: Currently, I put on the full path to the images on the staff
- side. This should either be configurable or not done at all. Since I
- have to deal with 'intranet' or 'opac' in
- get_biblio_authorised_values, perhaps I should be passing it in.
+Notes: Currently, I put on the full path to the images on the staff
+side. This should either be configurable or not done at all. Since I
+have to deal with 'intranet' or 'opac' in
+get_biblio_authorised_values, perhaps I should be passing it in.
=cut
=head2 GetMarcItem
-=over 4
-
-my $item_marc = GetMarcItem($biblionumber, $itemnumber);
-
-=back
+ my $item_marc = GetMarcItem($biblionumber, $itemnumber);
Returns MARC::Record of the item passed in parameter.
This function is meant for use only in C<cataloguing/additem.pl>,
=head2 _set_derived_columns_for_add
-=over 4
-
-_set_derived_column_for_add($item);
-
-=back
+ _set_derived_column_for_add($item);
Given an item hash representing a new item to be added,
calculate any derived columns. Currently the only
=head2 _set_derived_columns_for_mod
-=over 4
-
-_set_derived_column_for_mod($item);
-
-=back
+ _set_derived_column_for_mod($item);
Given an item hash representing a new item to be modified.
calculate any derived columns. Currently the only
=head2 _do_column_fixes_for_mod
-=over 4
-
-_do_column_fixes_for_mod($item);
-
-=back
+ _do_column_fixes_for_mod($item);
Given an item hashref containing one or more
columns to modify, fix up certain values.
if (exists $item->{'location'} && !exists $item->{'permanent_location'}) {
$item->{'permanent_location'} = $item->{'location'};
}
+ if (exists $item->{'timestamp'}) {
+ delete $item->{'timestamp'};
+ }
}
=head2 _get_single_item_column
-=over 4
-
-_get_single_item_column($column, $itemnumber);
-
-=back
+ _get_single_item_column($column, $itemnumber);
Retrieves the value of a single column from an C<items>
row specified by C<$itemnumber>.
=head2 _calc_items_cn_sort
-=over 4
-
-_calc_items_cn_sort($item, $source_values);
-
-=back
+ _calc_items_cn_sort($item, $source_values);
Helper routine to calculate C<items.cn_sort>.
=head2 _set_defaults_for_add
-=over 4
-
-_set_defaults_for_add($item_hash);
-
-=back
+ _set_defaults_for_add($item_hash);
Given an item hash representing an item to be added, set
correct default values for columns whose default value
=head2 _koha_new_item
-=over 4
-
-my ($itemnumber,$error) = _koha_new_item( $item, $barcode );
-
-=back
+ my ($itemnumber,$error) = _koha_new_item( $item, $barcode );
Perform the actual insert into the C<items> table.
=head2 MoveItemFromBiblio
-=over 4
-
-MoveItemFromBiblio($itenumber, $frombiblio, $tobiblio);
-
-=back
+ MoveItemFromBiblio($itenumber, $frombiblio, $tobiblio);
Moves an item from a biblio to another
Returns undef if the move failed or the biblionumber of the destination record otherwise
+
=cut
+
sub MoveItemFromBiblio {
my ($itemnumber, $frombiblio, $tobiblio) = @_;
my $dbh = C4::Context->dbh;
=head2 DelItemCheck
-=over 4
-
-DelItemCheck($dbh, $biblionumber, $itemnumber);
-
-=back
+ DelItemCheck($dbh, $biblionumber, $itemnumber);
Exported function (core API) for deleting an item record in Koha if there no current issue.
my $sth=$dbh->prepare("select * from issues i where i.itemnumber=?");
$sth->execute($itemnumber);
- my $onloan=$sth->fetchrow;
-
- if ($onloan){
- $error = "book_on_loan"
- }else{
- # check it doesnt have a waiting reserve
- $sth=$dbh->prepare("SELECT * FROM reserves WHERE found = 'W' AND itemnumber = ?");
- $sth->execute($itemnumber);
- my $reserve=$sth->fetchrow;
- if ($reserve){
- $error = "book_reserved";
- }else{
- DelItem($dbh, $biblionumber, $itemnumber);
- return 1;
- }
+ my $item = GetItem($itemnumber);
+ my $onloan = $sth->fetchrow;
+ if ($onloan) {
+ $error = "book_on_loan";
+ }
+ elsif (C4::Context->preference("IndependantBranches") and (C4::Context->userenv->{branch} ne $item->{C4::Context->preference("HomeOrHoldingBranch")||'homebranch'})){
+ $error = "not_same_branch";
+ }
+ else {
+ if ($onloan){
+ $error = "book_on_loan"
+ }
+ else {
+ # check it doesnt have a waiting reserve
+ $sth=$dbh->prepare("SELECT * FROM reserves WHERE (found = 'W' or found = 'T') AND itemnumber = ?");
+ $sth->execute($itemnumber);
+ my $reserve=$sth->fetchrow;
+ if ($reserve) {
+ $error = "book_reserved";
+ }
+ else {
+ DelItem($dbh, $biblionumber, $itemnumber);
+ return 1;
+ }
+ }
}
return $error;
}
=head2 _koha_modify_item
-=over 4
-
-my ($itemnumber,$error) =_koha_modify_item( $item );
-
-=back
+ my ($itemnumber,$error) =_koha_modify_item( $item );
Perform the actual update of the C<items> row. Note that this
routine accepts a hashref specifying the columns to update.
=head2 _koha_delete_item
-=over 4
-
-_koha_delete_item( $dbh, $itemnum );
-
-=back
+ _koha_delete_item( $dbh, $itemnum );
Internal function to delete an item record from the koha tables
=head2 _marc_from_item_hash
-=over 4
-
-my $item_marc = _marc_from_item_hash($item, $frameworkcode[, $unlinked_item_subfields]);
-
-=back
+ my $item_marc = _marc_from_item_hash($item, $frameworkcode[, $unlinked_item_subfields]);
Given an item hash representing a complete item record,
create a C<MARC::Record> object containing an embedded
: () } keys %{ $item } };
my $item_marc = MARC::Record->new();
- foreach my $item_field (keys %{ $mungeditem }) {
- my ($tag, $subfield) = GetMarcFromKohaField($item_field, $frameworkcode);
- next unless defined $tag and defined $subfield; # skip if not mapped to MARC field
- if (my $field = $item_marc->field($tag)) {
- $field->add_subfields($subfield => $mungeditem->{$item_field});
- } else {
- my $add_subfields = [];
- if (defined $unlinked_item_subfields and ref($unlinked_item_subfields) eq 'ARRAY' and $#$unlinked_item_subfields > -1) {
- $add_subfields = $unlinked_item_subfields;
+ foreach my $item_field ( keys %{$mungeditem} ) {
+ my ( $tag, $subfield ) = GetMarcFromKohaField( $item_field, $frameworkcode );
+ 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){
+ if ( my $field = $item_marc->field($tag) ) {
+ $field->add_subfields( $subfield => $value );
+ } else {
+ my $add_subfields = [];
+ if (defined $unlinked_item_subfields and ref($unlinked_item_subfields) eq 'ARRAY' and $#$unlinked_item_subfields > -1) {
+ $add_subfields = $unlinked_item_subfields;
+ }
+ $item_marc->add_fields( $tag, " ", " ", $subfield => $value, @$add_subfields );
}
- $item_marc->add_fields( $tag, " ", " ", $subfield => $mungeditem->{$item_field}, @$add_subfields);
}
}
=head2 _add_item_field_to_biblio
-=over 4
-
-_add_item_field_to_biblio($item_marc, $biblionumber, $frameworkcode);
-
-=back
+ _add_item_field_to_biblio($item_marc, $biblionumber, $frameworkcode);
Adds the fields from a MARC record containing the
representation of a Koha item record to the MARC
=head2 _replace_item_field_in_biblio
-=over
-
-&_replace_item_field_in_biblio($item_marc, $biblionumber, $itemnumber, $frameworkcode)
-
-=back
+ &_replace_item_field_in_biblio($item_marc, $biblionumber, $itemnumber, $frameworkcode)
Given a MARC::Record C<$item_marc> containing one tag with the MARC
representation of the item, examine the biblio MARC
=head2 _get_unlinked_item_subfields
-=over 4
-
-my $unlinked_item_subfields = _get_unlinked_item_subfields($original_item_marc, $frameworkcode);
-
-=back
+ my $unlinked_item_subfields = _get_unlinked_item_subfields($original_item_marc, $frameworkcode);
=cut
=head2 _get_unlinked_subfields_xml
-=over 4
-
-my $unlinked_subfields_xml = _get_unlinked_subfields_xml($unlinked_item_subfields);
-
-=back
+ my $unlinked_subfields_xml = _get_unlinked_subfields_xml($unlinked_item_subfields);
=cut
=head2 _parse_unlinked_item_subfields_from_xml
-=over 4
-
-my $unlinked_item_subfields = _parse_unlinked_item_subfields_from_xml($whole_item->{'more_subfields_xml'}):
-
-=back
+ my $unlinked_item_subfields = _parse_unlinked_item_subfields_from_xml($whole_item->{'more_subfields_xml'}):
=cut