From: Henri-Damien LAURENT Date: Fri, 25 Sep 2009 15:27:12 +0000 (+0200) Subject: bug Fixing : 3640 X-Git-Tag: v3.00.04_final~74 X-Git-Url: http://git.rot13.org/?p=koha.git;a=commitdiff_plain;h=4a9cb3646a35fe41d83e6e983e9a13baa27dd59c bug Fixing : 3640 This patch filters all non itemrelated fields in the marcrecord before making update AddItemhad the same problem as ModItem They would try and take fields which would not be item fields Conflicts solved C4/Items.pm --- diff --git a/C4/Items.pm b/C4/Items.pm index 4a019017ec..20ba5bf60e 100644 --- a/C4/Items.pm +++ b/C4/Items.pm @@ -174,8 +174,12 @@ sub AddItemFromMarc { # parse item hash from MARC my $frameworkcode = GetFrameworkCode( $biblionumber ); - my $item = &TransformMarcToKoha( $dbh, $source_item_marc, $frameworkcode ); - my $unlinked_item_subfields = _get_unlinked_item_subfields($source_item_marc, $frameworkcode); + my ($itemtag,$itemsubfield)=GetMarcFromKohaField("items.itemnumber",$frameworkcode); + + my $localitemmarc=MARC::Record->new; + $localitemmarc->append_fields($source_item_marc->field($itemtag)); + my $item = &TransformMarcToKoha( $dbh, $localitemmarc, $frameworkcode ,'items'); + my $unlinked_item_subfields = _get_unlinked_item_subfields($localitemmarc, $frameworkcode); return AddItem($item, $biblionumber, $dbh, $frameworkcode, $unlinked_item_subfields); } @@ -413,11 +417,15 @@ sub ModItemFromMarc { my $dbh = C4::Context->dbh; my $frameworkcode = GetFrameworkCode( $biblionumber ); - my $item = &TransformMarcToKoha( $dbh, $item_marc, $frameworkcode ); + 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($item_marc, $frameworkcode); + my $unlinked_item_subfields = _get_unlinked_item_subfields($localitemmarc, $frameworkcode); return ModItem($item, $biblionumber, $itemnumber, $dbh, $frameworkcode, $unlinked_item_subfields); }