[Koha-cvs] koha/C4 Biblio.pm [rel_2_2]
paul poulain
paul at koha-fr.org
Wed Dec 14 14:08:47 CET 2005
CVSROOT: /cvsroot/koha
Module name: koha
Branch: rel_2_2
Changes by: paul poulain <tipaul at savannah.gnu.org> 05/12/14 13:08:47
Modified files:
C4 : Biblio.pm
Log message:
* fix for items.notes that is not correctly handled in the non-MARC part of the DB
* for an unknown reason, mysql fetchrow_hashref returns author BEFORE the title, even if you want it after that makes a problem for UNIMARC where we have 200 $atitle $fauthor => the record appears $f $a.
* handling better biblio/biblioitems creation from an acquisition : the biblio is deleted & recreated to avoid strange things like a repeated 200 field in UNIMARC.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/C4/Biblio.pm.diff?only_with_tag=rel_2_2&tr1=1.115.2.25&tr2=1.115.2.26&r1=text&r2=text
Patches:
Index: koha/C4/Biblio.pm
diff -u koha/C4/Biblio.pm:1.115.2.25 koha/C4/Biblio.pm:1.115.2.26
--- koha/C4/Biblio.pm:1.115.2.25 Fri Oct 28 13:46:50 2005
+++ koha/C4/Biblio.pm Wed Dec 14 13:08:47 2005
@@ -883,7 +883,7 @@
if ( $biblionumber > 0 ) {
my $sth2 =
$dbh->prepare(
-"select biblionumber,author,title,unititle,notes,abstract,serial,seriestitle,copyrightdate,timestamp
+"select biblionumber,title,unititle,notes,abstract,serial,seriestitle,copyrightdate,timestamp
from biblio where biblionumber=?"
);
$sth2->execute($biblionumber);
@@ -895,6 +895,19 @@
$row->{$code}, '');
}
}
+ #for an unknown reason, mysql fetchrow_hashref returns author BEFORE the title, even if you want it after
+ # that makes a problem for UNIMARC where we have 200 $atitle $fauthor => the record appears $f $a.
+ # this dirty hack fixes the problem
+ $sth2 = $dbh->prepare("select author from biblio where biblionumber=?");
+ $sth2->execute($biblionumber);
+ $row = $sth2->fetchrow_hashref;
+ $code;
+ foreach $code ( keys %$row ) {
+ if ( $row->{$code} ) {
+ &MARCkoha2marcOnefield( $sth, $record, "biblio." . $code,
+ $row->{$code}, '');
+ }
+ }
}
#--- if biblioitem, then retrieve old-style koha data
@@ -1874,7 +1887,7 @@
$item->{'itemnum'} = $item->{'itemnumber'} unless $item->{'itemnum'};
my $query = "update items set barcode=?,itemnotes=?,itemcallnumber=?,notforloan=?,location=?,multivolumepart=?,multivolume=?,stack=?,wthdrawn=?";
my @bind = (
- $item->{'barcode'}, $item->{'notes'},
+ $item->{'barcode'}, $item->{'itemnotes'},
$item->{'itemcallnumber'}, $item->{'notforloan'},
$item->{'location'}, $item->{multivolumepart},
$item->{multivolume}, $item->{stack},
@@ -1886,7 +1899,7 @@
location=?,multivolumepart=?,multivolume=?,stack=?,wthdrawn=?";
@bind = (
$item->{'bibitemnum'}, $item->{'barcode'},
- $item->{'notes'}, $item->{'homebranch'},
+ $item->{'itemnotes'}, $item->{'homebranch'},
$item->{'lost'}, $item->{'wthdrawn'},
$item->{'itemcallnumber'}, $item->{'notforloan'},
$item->{'location'}, $item->{multivolumepart},
@@ -2166,11 +2179,14 @@
my $bibitemnum = &OLDnewbiblioitem( $dbh, $biblioitem );
my $MARCbiblio =
- MARCkoha2marcBiblio( $dbh, 0, $bibitemnum )
- ; # the 0 means "do NOT retrieve biblio, only biblioitem, in the MARC record
+ MARCkoha2marcBiblio( $dbh, $biblioitem->{biblionumber}, $bibitemnum );
+ # the 0 means "do NOT retrieve biblio, only biblioitem, in the MARC record
my $bibid =
&MARCfind_MARCbibid_from_oldbiblionumber( $dbh,
$biblioitem->{biblionumber} );
+ # delete biblio, as we will reintroduce it the line after
+ # the biblio is complete from MARCkoha2marcBiblio (3 lines before)
+ &MARCdelbiblio($dbh,$bibid,1);
&MARCaddbiblio( $dbh, $MARCbiblio, $biblioitem->{biblionumber}, '',$bibid );
return ($bibitemnum);
}
@@ -2753,8 +2769,13 @@
=cut
-# $Id: Biblio.pm,v 1.115.2.25 2005/10/28 13:46:50 doxulting Exp $
+# $Id: Biblio.pm,v 1.115.2.26 2005/12/14 13:08:47 tipaul Exp $
# $Log: Biblio.pm,v $
+# Revision 1.115.2.26 2005/12/14 13:08:47 tipaul
+# * fix for items.notes that is not correctly handled in the non-MARC part of the DB
+# * for an unknown reason, mysql fetchrow_hashref returns author BEFORE the title, even if you want it after that makes a problem for UNIMARC where we have 200 $atitle $fauthor => the record appears $f $a.
+# * handling better biblio/biblioitems creation from an acquisition : the biblio is deleted & recreated to avoid strange things like a repeated 200 field in UNIMARC.
+#
# Revision 1.115.2.25 2005/10/28 13:46:50 doxulting
# There was a bug : Even if you erased the marc field linked to additionalauthors.authors the additionalauthors stayed in database. Now : delete before recreating
#
More information about the Koha-cvs
mailing list