use MARC::Record;
use MARC::File::USMARC;
use MARC::File::XML;
+use Smart::Comments;
+
use ZOOM;
use vars qw($VERSION @ISA @EXPORT);
$error .= $sth->errstr;
}
my ($rawmarc,$frameworkcode) = $sth->fetchrow;
- warn "ERROR IN REALmoditem, MARC record not found" unless $rawmarc;
+# warn "ERROR IN REALmoditem, MARC record not found" unless $rawmarc;
# my $record = MARC::File::USMARC::decode($rawmarc);
my $record=C4::Search::get_record($item->{biblionumber});
+####$record
# ok, we have the marc record, find the previous item record for this itemnumber and delete it
my ($itemnumberfield,$itemnumbersubfield) = MARCfind_marc_from_kohafield($dbh,'items.itemnumber',$frameworkcode);
# prepare the new item record
my $itemrecord = MARC::File::USMARC::decode($item->{marc});
my $itemfield = $itemrecord->field($itemnumberfield);
- $itemfield->add_subfields($itemnumbersubfield => '$itemnumber');
+
+# $itemfield->add_subfields($itemnumbersubfield => '$itemnumber');
# parse all fields fields from the complete record
foreach ($record->field($itemnumberfield)) {
# when the previous field is found, replace by the new one
if ($_->subfield($itemnumbersubfield) == $item->{itemnum}) {
$_->replace_with($itemfield);
}
+ else {
+ my $temptest = $_->subfield($itemnumbersubfield);
+ warn " failed itemnum is $item->{itemnum} and value in record is $temptest";
+ }
}
# $record->insert_grouped_field($itemfield);
# save the record into biblioitem
# $Id$
# $Log$
+# Revision 1.168 2006/04/03 04:00:02 rangi
+# Modify item now works
+#
+# BUT only if there is only one item, if there is more than one item, it gets messed up.
+# They get combined into the form, ill work on this next
+#
# Revision 1.167 2006/04/03 02:12:49 kados
# some modifs to improve plugin support
#
use C4::Search;
use HTML::Template;
use MARC::File::USMARC;
+use Smart::Comments;
sub find_value {
my ($tagfield,$insubfield,$record) = @_;
}
my $biblioitemnumber = find_biblioitemnumber($dbh,$biblionumber);
my $itemnumber = $input->param('itemnumber');
+if (!$itemnumber){
+ $itemnumber=$input->param('itemnum');
+ }
+
my $op = $input->param('op');
# find itemtype
} elsif ($op eq "edititem") {
#------------------------------------------------------------------------------------------------------------------------------
# retrieve item if exist => then, it's a modif
- $itemrecord = MARCgetitem($dbh,$biblionumber,$itemnumber);
+ $itemrecord = get_record($biblionumber);
$nextop="saveitem";
#------------------------------------------------------------------------------------------------------------------------------
} elsif ($op eq "delitem") {
my $itemrecord=MARC::Record::new_from_xml($xml, 'UTF-8');
# MARC::Record builded => now, record in DB
# warn "R: ".$record->as_formatted;
- my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = NEWmoditem($dbh,$record,$biblionumber,$itemnumber,0);
+ my ($oldbiblionumber,$oldbibnum,$oldbibitemnum) = NEWmoditem($dbh,$itemrecord,$biblionumber,$itemnumber,0);
$itemnumber="";
$nextop="additem";
}
my %indicators;
$indicators{995}=' ';
# now, build existiing item list
-my $temp = MARCgetbiblio($dbh,$biblionumber);
+my $temp = get_record($biblionumber);
my @fields = $temp->fields();
#my @fields = $record->fields();
my %witness; #---- stores the list of subfields used at least once, with the "meaning" of the code
author => $oldrecord->{author},
item => \@loop_data,
itemnumber => $itemnumber,
+ itemnum => $itemnumber,
itemtagfield => $itemtagfield,
itemtagsubfield =>$itemtagsubfield,
op => $nextop,