[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