[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] CVS: koha/C4 Biblio.pm,1.106,1.107
From: |
Paul POULAIN |
Subject: |
[Koha-cvs] CVS: koha/C4 Biblio.pm,1.106,1.107 |
Date: |
Fri, 05 Nov 2004 02:15:31 -0800 |
Update of /cvsroot/koha/koha/C4
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12240/C4
Modified Files:
Biblio.pm
Log Message:
Improving FindDuplicate to find duplicate records on adding biblio
Index: Biblio.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/Biblio.pm,v
retrieving revision 1.106
retrieving revision 1.107
diff -C2 -r1.106 -r1.107
*** Biblio.pm 2 Nov 2004 16:44:45 -0000 1.106
--- Biblio.pm 5 Nov 2004 10:15:27 -0000 1.107
***************
*** 2534,2541 ****
my $dbh = C4::Context->dbh;
my $result = MARCmarc2koha($dbh,$record,'');
my $sth = $dbh->prepare("select biblio.biblionumber,bibid,title from
biblio,biblioitems,marc_biblio where
biblio.biblionumber=biblioitems.biblionumber and
marc_biblio.biblionumber=biblioitems.biblionumber and isbn=?");
$sth->execute($result->{'isbn'});
my ($biblionumber,$bibid,$title) = $sth->fetchrow;
! return $biblionumber,$bibid,$title;
}
--- 2534,2625 ----
my $dbh = C4::Context->dbh;
my $result = MARCmarc2koha($dbh,$record,'');
+ # search duplicate on ISBN, easy and fast...
my $sth = $dbh->prepare("select biblio.biblionumber,bibid,title from
biblio,biblioitems,marc_biblio where
biblio.biblionumber=biblioitems.biblionumber and
marc_biblio.biblionumber=biblioitems.biblionumber and isbn=?");
$sth->execute($result->{'isbn'});
my ($biblionumber,$bibid,$title) = $sth->fetchrow;
! return $biblionumber,$bibid,$title if ($biblionumber);
! # a more complex search : build a request for
SearchMarc::catalogsearch()
! my (@tags, @and_or, @excluding, @operator, @value, $offset,$length);
! # search on biblio.title
! my ($tag,$subfield) =
MARCfind_marc_from_kohafield($dbh,"biblio.title","");
! if ($record->field($tag)) {
! if ($record->field($tag)->subfields($subfield)) {
! push @tags, "'".$tag.$subfield."'";
! push @and_or, "and";
! push @excluding, "";
! push @operator, "contains";
! push @value, $record->field($tag)->subfield($subfield);
! # warn "for title, I add $tag /
$subfield".$record->field($tag)->subfield($subfield);
! }
! }
! # ... and on biblio.author
! ($tag,$subfield) =
MARCfind_marc_from_kohafield($dbh,"biblio.author","");
! if ($record->field($tag)) {
! if ($record->field($tag)->subfields($subfield)) {
! push @tags, "'".$tag.$subfield."'";
! push @and_or, "and";
! push @excluding, "";
! push @operator, "contains";
! push @value, $record->field($tag)->subfield($subfield);
! # warn "for author, I add $tag /
$subfield".$record->field($tag)->subfield($subfield);
! }
! }
! # ... and on publicationyear.
! ($tag,$subfield) =
MARCfind_marc_from_kohafield($dbh,"biblioitems.publicationyear","");
! if ($record->field($tag)) {
! if ($record->field($tag)->subfields($subfield)) {
! push @tags, "'".$tag.$subfield."'";
! push @and_or, "and";
! push @excluding, "";
! push @operator, "contains";
! push @value, $record->field($tag)->subfield($subfield);
! # warn "for publicationyear, I add $tag /
$subfield".$record->field($tag)->subfield($subfield);
! }
! }
! # ... and on size.
! ($tag,$subfield) =
MARCfind_marc_from_kohafield($dbh,"biblioitems.size","");
! if ($record->field($tag)) {
! if ($record->field($tag)->subfields($subfield)) {
! push @tags, "'".$tag.$subfield."'";
! push @and_or, "and";
! push @excluding, "";
! push @operator, "contains";
! push @value, $record->field($tag)->subfield($subfield);
! # warn "for size, I add $tag /
$subfield".$record->field($tag)->subfield($subfield);
! }
! }
! # ... and on publisher.
! ($tag,$subfield) =
MARCfind_marc_from_kohafield($dbh,"biblioitems.publishercode","");
! if ($record->field($tag)) {
! if ($record->field($tag)->subfields($subfield)) {
! push @tags, "'".$tag.$subfield."'";
! push @and_or, "and";
! push @excluding, "";
! push @operator, "contains";
! push @value, $record->field($tag)->subfield($subfield);
! # warn "for publishercode, I add $tag /
$subfield".$record->field($tag)->subfield($subfield);
! }
! }
! # ... and on volume.
! ($tag,$subfield) =
MARCfind_marc_from_kohafield($dbh,"biblioitems.volume","");
! if ($record->field($tag)) {
! if ($record->field($tag)->subfields($subfield)) {
! push @tags, "'".$tag.$subfield."'";
! push @and_or, "and";
! push @excluding, "";
! push @operator, "contains";
! push @value, $record->field($tag)->subfield($subfield);
! # warn "for volume, I add $tag /
$subfield".$record->field($tag)->subfield($subfield);
! }
! }
!
! my ($finalresult,$nbresult) =
C4::SearchMarc::catalogsearch($dbh,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden,0,10);
! # there is at least 1 result => return the 1st one
! if ($nbresult) {
! warn "$nbresult =>
"address@hidden>{biblionumber},@$finalresult[0]->{bibid},@$finalresult[0]->{title};
! return
@$finalresult[0]->{biblionumber},@$finalresult[0]->{bibid},@$finalresult[0]->{title};
! }
! # no result, returns nothing
! return;
}
***************
*** 2554,2557 ****
--- 2638,2644 ----
# $Id$
# $Log$
+ # Revision 1.107 2004/11/05 10:15:27 tipaul
+ # Improving FindDuplicate to find duplicate records on adding biblio
+ #
# Revision 1.106 2004/11/02 16:44:45 tipaul
# new feature : checking for duplicate biblio.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Koha-cvs] CVS: koha/C4 Biblio.pm,1.106,1.107,
Paul POULAIN <=