Use biblioitems.itemtype as a default for items.itype

This correct the html select default in additem.pl, and enforces use of
biblioitems.itemtype as the default in Items::AddItem.  The code in
Items is to catch items added through MARC record staging.

Thanks to Joe Atzberger for suggestion.

[RM note: this patch means that an item's item-level item type,
 once that item is added or updated via additem.pl,
 now cannot be blank or NULL unless the biblio-level item type
 is blank.]

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
This commit is contained in:
Michael Hafen 2008-09-12 13:16:58 -06:00 committed by Galen Charlton
parent 0a306bc28c
commit 34d3399149
2 changed files with 16 additions and 1 deletions

View file

@ -224,6 +224,12 @@ sub AddItem {
_set_derived_columns_for_add($item);
$item->{'more_subfields_xml'} = _get_unlinked_subfields_xml($unlinked_item_subfields);
# FIXME - checks here
unless ( $item->{itype} ) { # default to biblioitem.itemtype if no itype
my $itype_sth = $dbh->prepare("SELECT itemtype FROM biblioitems WHERE biblionumber = ?");
$itype_sth->execute( $item->{'biblionumber'} );
( $item->{'itype'} ) = $itype_sth->fetchrow_array;
}
my ( $itemnumber, $error ) = _koha_new_item( $item, $item->{barcode} );
$item->{'itemnumber'} = $itemnumber;

View file

@ -333,7 +333,16 @@ foreach my $tag (sort keys %{$tagslib}) {
push @authorised_values, $itemtype;
$authorised_lib{$itemtype} = $description;
}
$value = $itemtype unless ($value);
unless ( $value ) {
my $default_itemtype;
my $itype_sth = $dbh->prepare("SELECT itemtype FROM biblioitems WHERE biblionumber = ?");
$itype_sth->execute( $biblionumber );
( $default_itemtype ) = $itype_sth->fetchrow_array;
$value = $default_itemtype;
}
#---- class_sources
}
elsif ( $tagslib->{$tag}->{$subfield}->{authorised_value} eq "cn_source" ) {
push @authorised_values, "" unless ( $tagslib->{$tag}->{$subfield}->{mandatory} );