[Koha-devel] CVS: koha/C4 Catalogue.pm,1.6,1.7
Steve Tonnesen
tonnesen at users.sourceforge.net
Thu Sep 27 12:25:03 CEST 2001
Update of /cvsroot/koha/koha/C4
In directory usw-pr-cvs1:/tmp/cvs-serv31420/koha/C4
Modified Files:
Catalogue.pm
Log Message:
Started on updateItem subroutine.
Index: Catalogue.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Catalogue.pm,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** Catalogue.pm 2001/06/26 22:27:12 1.6
--- Catalogue.pm 2001/09/27 19:24:18 1.7
***************
*** 1,4 ****
--- 1,8 ----
package C4::Catalogue; #asummes C4/Acquisitions.pm
+ # Continue working on updateItem!!!!!!
+ #
+
+
use strict;
require Exporter;
***************
*** 55,58 ****
--- 59,63 ----
# only created when new biblioitems are added.
my ($env, $biblio) = @_;
+ my $dbh=&C4Connect;
my $title=$biblio->{'title'};
my $q_title=$dbh->quote($title);
***************
*** 106,109 ****
--- 111,117 ----
# Might be nice to be able to pass a Subfield_ID directly to this routine to
# remove ambiguity, if possible.
+ #
+ # Pass barcode to remove ambiguity for changes to individual items. Look up
+ # field link and sequence number based on barcode.
my $Record_ID=shift;
***************
*** 113,116 ****
--- 121,126 ----
my $Subfield_OldValue=shift;
my $Subfield_Value=shift;
+ my $barcode=shift;
+ my $Subfield_ID;
my $dbh=&C4Connect;
my $sth=$dbh->prepare("select S.Subfield_ID, S.Subfield_Value from Bib_Table B, $firstdigit\XX_Tag_Table T, $firstdigit\XX_Subfield_Table S where B.Record_ID=$Record_ID and B.Tag_$firstdigit\XX_ID=T.Tag_ID and T.Subfield_ID=S.Subfield_ID and S.Subfield_Mark='$Subfield_Mark'");
***************
*** 121,127 ****
--- 131,139 ----
my $sti=$dbh->prepare("update $firstdigit\XX_Subfield_Table set Subfield_Value=$q_Subfield_Value where Subfield_ID=$ID");
$sti->execute;
+ $Subfield_ID=$ID;
last;
}
}
+ return($Subfield_ID);
}
***************
*** 329,333 ****
my ($biblioitemnumber) =$sth->fetchrow;
$biblioitemnumber++;
! $sth=$dbh->prepare("insert into biblioitems (biblionumber,biblioitemnumber,volume,number,classification,itemtype,isbn,issn,dewey,subclass,publicationyear,publishercode,volumedate,illus,pages,notes,size,place,lccn) values ($biblionumber, $biblioitemnumber, $q_volume, $q_number, $q_classification, $q_itemtype, $q_isbn, $q_issn, $dewey, $q_subclass, $q_publicationyear, $q_publishercode, $q_volumedate, $q_illus, $q_pages,$q_notes, $q_size, $q_place, $q_lccn)");
$sth->execute;
#my $sth=$dbh->prepare("unlock tables");
--- 341,345 ----
my ($biblioitemnumber) =$sth->fetchrow;
$biblioitemnumber++;
! $sth=$dbh->prepare("insert into biblioitems (biblionumber,biblioitemnumber,volume,number,classification,itemtype,isbn,issn,dewey,subclass,publicationyear,publishercode,volumedate,illus,pages,notes,size,place,lccn) values ($biblionumber, $biblioitemnumber, $q_volume, $q_number, $q_classification, $q_itemtype, $q_isbn, $q_issn, $dewey, $q_subclass, $publicationyear, $q_publishercode, $q_volumedate, $q_illus, $q_pages,$q_notes, $q_size, $q_place, $q_lccn)");
$sth->execute;
#my $sth=$dbh->prepare("unlock tables");
***************
*** 339,343 ****
# same isbn/lccn/issn?
! $sth=$dbh->prepare("select title,unititle,seriestitle,copyrightdate,notes,author from biblio where biblionumber=$biblionumber");
$sth->execute;
my ($title, $unititle,$seriestitle,$copyrightdate,$biblionotes,$author) = $sth->fetchrow;
--- 351,355 ----
# same isbn/lccn/issn?
! my $sth=$dbh->prepare("select title,unititle,seriestitle,copyrightdate,notes,author from biblio where biblionumber=$biblionumber");
$sth->execute;
my ($title, $unititle,$seriestitle,$copyrightdate,$biblionotes,$author) = $sth->fetchrow;
***************
*** 403,407 ****
$subfields->{2}->{'Subfield_Mark'}='3';
$subfields->{2}->{'Subfield_Value'}='biblio';
! my $tag='440';
addTag($env, $Record_ID, $tag, ' ', ' ', $subfields);
}
--- 415,419 ----
$subfields->{2}->{'Subfield_Mark'}='3';
$subfields->{2}->{'Subfield_Value'}='biblio';
! my $tag='500';
addTag($env, $Record_ID, $tag, ' ', ' ', $subfields);
}
***************
*** 540,544 ****
sub updateBiblioItem {
# Update the biblioitem with biblioitemnumber $biblioitem->{'biblioitemnumber'}
- # This routine should also modify the corresponding MARC record data.
#
# This routine should also check to see which fields are actually being
--- 552,555 ----
***************
*** 598,602 ****
if ($biblioitem->{'dewey'} ne $obi->{'dewey'}) {
logchange('kohadb', 'biblioitems', 'dewey', $obi->{'dewey'}, $biblioitem->{'dewey'});
! my $sth=$dbh->prepare("update biblioitems set dewey=$dewey where biblioitemnumber=$biblioitemnumber");
logchange('marc', '082', 'a', $obi->{'dewey'}, $biblioitem->{'dewey'});
changeSubfield($Record_ID, '082', 'a', $obi->{'dewey'}, $biblioitem->{'dewey'});
--- 609,613 ----
if ($biblioitem->{'dewey'} ne $obi->{'dewey'}) {
logchange('kohadb', 'biblioitems', 'dewey', $obi->{'dewey'}, $biblioitem->{'dewey'});
! my $sth=$dbh->prepare("update biblioitems set dewey=$biblioitem->{'dewey'} where biblioitemnumber=$biblioitemnumber");
logchange('marc', '082', 'a', $obi->{'dewey'}, $biblioitem->{'dewey'});
changeSubfield($Record_ID, '082', 'a', $obi->{'dewey'}, $biblioitem->{'dewey'});
***************
*** 673,683 ****
--- 684,700 ----
my $dbh=&C4Connect;
my $barcode=$item->{'barcode'};
+ my $q_barcode=$dbh->quote($barcode);
+ my $biblionumber=$item->{'biblionumber'};
+ my $biblioitemnumber=$item->{'biblioitemnumber'};
my $dateaccessioned=$item->{'dateaccessioned'};
my $booksellerid=$item->{'booksellerid'};
+ my $q_booksellerid=$dbh->quote($booksellerid);
my $homebranch=$item->{'homebranch'};
+ my $q_homebranch=$dbh->quote($homebranch);
my $holdingbranch=$item->{'holdingbranch'};
my $price=$item->{'price'};
my $replacementprice=$item->{'replacementprice'};
my $replacementpricedate=$item->{'replacementpricedate'};
+ my $q_replacementpricedate=$dbh->quote($replacementpricedate);
my $notforloan=$item->{'notforloan'};
my $itemlost=$item->{'itemlost'};
***************
*** 685,688 ****
--- 702,706 ----
my $restricted=$item->{'restricted'};
my $itemnotes=$item->{'itemnotes'};
+ my $q_itemnotes=$dbh->quote($itemnotes);
my $itemtype=$item->{'itemtype'};
my $subclass=$item->{'subclass'};
***************
*** 763,766 ****
--- 781,858 ----
my ($env, $item) = @_;
+ my $dbh=&C4Connect;
+ my $itemnumber=$item->{'itemnumber'};
+ my $biblionumber=$item->{'biblionumber'};
+ my $biblioitemnumber=$item->{'biblioitemnumber'};
+ my $barcode=$item->{'barcode'};
+ my $dateaccessioned=$item->{'dateaccessioned'};
+ my $booksellerid=$item->{'booksellerid'};
+ my $homebranch=$item->{'homebranch'};
+ my $price=$item->{'price'};
+ my $replacementprice=$item->{'replacementprice'};
+ my $replacementpricedate=$item->{'replacementpricedate'};
+ my $multivolume=$item->{'multivolume'};
+ my $stack=$item->{'stack'};
+ my $notforloan=$item->{'notforloan'};
+ my $itemlost=$item->{'itemlost'};
+ my $wthdrawn=$item->{'wthdrawn'};
+ my $bulk=$item->{'bulk'};
+ my $restricted=$item->{'restricted'};
+ my $binding=$item->{'binding'};
+ my $itemnotes=$item->{'itemnotes'};
+ my $holdingbranch=$item->{'holdingbranch'};
+ my $interim=$item->{'interim'};
+ my $sth=$dbh->prepare("select * from items where itemnumber=$itemnumber");
+ $sth->execute;
+ my $olditem=$sth->fetchrow_hashref;
+ my $q_barcode=$dbh->quote($olditem->{'barcode'});
+ $sth=$dbh->prepare("select Subfield_ID from 8XX_Subfield_Table where Subfield_Mark='p' and Subfield_Value=$q_barcode");
+ $sth->execute;
+ my ($Subfield852_ID) = $sth->fetchrow;
+ $sth=$dbh->prepare("select Subfield_Value from 8XX_Subfield_Table where Subfield_Mark=8 and Subfield_ID=$Subfield852_ID");
+ $sth->execute;
+ my ($link) = $sth->fetchrow;
+ $sth=$dbh->prepare("select Subfield_ID from 8XX_Subfield_Table where Subfield_Mark=8 and Subfield_Value=$link");
+ $sth->execute;
+ my ($Subfield876_ID) = $sth->fetchrow;
+
+ if ($item->{'barcode'} ne $olditem->{'barcode'}) {
+ logchange('kohadb', 'items', 'barcode', $olditem->{'barcode'}, $item->{'barcode'});
+ my $q_barcode=$dbh->quote($item->{'barcode'});
+ my $sth=$dbh->prepare("update items set barcode=$q_barcode where itemnumber=$itemnumber");
+ logchange('marc', '876', 'p', $olditem->{'barcode'}, $item->{'barcode'});
+ ($Subfield_ID) = changeSubfield($Record_ID, '876', 'p', $olditem->{'barcode'}, $item->{'barcode'});
+ }
+ if ($item->{'booksellerid'} ne $olditem->{'booksellerid'}) {
+ logchange('kohadb', 'items', 'booksellerid', $olditem->{'booksellerid'}, $item->{'booksellerid'});
+ my $q_booksellerid=$dbh->quote($item->{'booksellerid'});
+ my $sth=$dbh->prepare("update items set booksellerid=$q_booksellerid where itemnumber=$itemnumber");
+ logchange('marc', '876', 'e', $olditem->{'booksellerid'}, $item->{'booksellerid'});
+ changeSubfield($Record_ID, '876', 'e', $olditem->{'booksellerid'}, $item->{'booksellerid'});
+ }
+ if ($item->{'dateaccessioned'} ne $olditem->{'dateaccessioned'}) {
+ logchange('kohadb', 'items', 'dateaccessioned', $olditem->{'dateaccessioned'}, $item->{'dateaccessioned'});
+ my $q_dateaccessioned=$dbh->quote($item->{'dateaccessioned'});
+ my $sth=$dbh->prepare("update items set dateaccessioned=$q_dateaccessioned where itemnumber=$itemnumber");
+ logchange('marc', '876', 'd', $olditem->{'dateaccessioned'}, $item->{'dateaccessioned'});
+ changeSubfield($Record_ID, '876', 'd', $olditem->{'dateaccessioned'}, $item->{'dateaccessioned'});
+ }
+ if ($item->{'homebranch'} ne $olditem->{'homebranch'}) {
+ # FIX ME!!!! This really needs to check the field link and sequence
+ # number entry to make sure the right item is being modified!
+ # Use 876 p (piece designation) to ensure.
+ logchange('kohadb', 'items', 'homebranch', $olditem->{'homebranch'}, $item->{'homebranch'});
+ my $q_homebranch=$dbh->quote($item->{'homebranch'});
+ my $sth=$dbh->prepare("update items set homebranch=$q_homebranch where itemnumber=$itemnumber");
+ logchange('marc', '876', 'b', $olditem->{'homebranch'}, $item->{'homebranch'});
+ changeSubfield($Record_ID, '876', 'b', $olditem->{'homebranch'}, $item->{'homebranch'});
+ }
+ if ($item->{'holdingbranch'} ne $olditem->{'holdingbranch'}) {
+ logchange('kohadb', 'items', 'holdingbranch', $olditem->{'holdingbranch'}, $item->{'holdingbranch'});
+ my $q_holdingbranch=$dbh->quote($item->{'holdingbranch'});
+ my $sth=$dbh->prepare("update items set holdingbranch=$q_holdingbranch where itemnumber=$itemnumber");
+ logchange('marc', '876', 'l', $olditem->{'holdingbranch'}, $item->{'holdingbranch'});
+ changeSubfield($Record_ID, '876', 'l', $olditem->{'holdingbranch'}, $item->{'holdingbranch'});
+ }
}
More information about the Koha-devel
mailing list