+=head2 get_hostitemnumbers_of
+
+ my @itemnumbers_of = get_hostitemnumbers_of($biblionumber);
+
+Given a biblionumber, return the list of corresponding itemnumbers that are linked to it via host fields
+
+Return a reference on a hash where key is a biblionumber and values are
+references on array of itemnumbers.
+
+=cut
+
+
+sub get_hostitemnumbers_of {
+ my ($biblionumber) = @_;
+ my $marcrecord = GetMarcBiblio($biblionumber);
+ my (@returnhostitemnumbers,$tag, $biblio_s, $item_s);
+
+ my $marcflavor = C4::Context->preference('marcflavour');
+ if ($marcflavor eq 'MARC21' || $marcflavor eq 'NORMARC') {
+ $tag='773';
+ $biblio_s='0';
+ $item_s='9';
+ } elsif ($marcflavor eq 'UNIMARC') {
+ $tag='461';
+ $biblio_s='0';
+ $item_s='9';
+ }
+
+ foreach my $hostfield ( $marcrecord->field($tag) ) {
+ my $hostbiblionumber = $hostfield->subfield($biblio_s);
+ my $linkeditemnumber = $hostfield->subfield($item_s);
+ my @itemnumbers;
+ if (my $itemnumbers = get_itemnumbers_of($hostbiblionumber)->{$hostbiblionumber})
+ {
+ @itemnumbers = @$itemnumbers;
+ }
+ foreach my $itemnumber (@itemnumbers){
+ if ($itemnumber eq $linkeditemnumber){
+ push (@returnhostitemnumbers,$itemnumber);
+ last;
+ }
+ }
+ }
+ return @returnhostitemnumbers;
+}
+
+