[Koha-cvs] koha acqui/suggestion-select.pl C4/Suggestions.... [rel_2_2]

paul poulain paul at koha-fr.org
Tue May 9 18:05:02 CEST 2006


CVSROOT:	/cvsroot/koha
Module name:	koha
Branch: 	rel_2_2
Changes by:	paul poulain <tipaul at savannah.gnu.org>	06/05/09 16:05:02

Modified files:
	acqui          : suggestion-select.pl 
	C4             : Suggestions.pm 
	koha-tmpl/intranet-tmpl/default/en/acqui: suggestion-select.tmpl 

Log message:
	bugfix for #992 : in suggestion-select, a search is automatically done on the catalogue to find a duplicate.
	If there is one, it is shown, and the librarian can "connect" the suggestion to a biblionumber to avoid creating a new biblio in the database

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/acqui/suggestion-select.pl.diff?only_with_tag=rel_2_2&tr1=1.3.2.5&tr2=1.3.2.6&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/koha/koha/C4/Suggestions.pm.diff?only_with_tag=rel_2_2&tr1=1.4.2.5&tr2=1.4.2.6&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/koha/koha/koha-tmpl/intranet-tmpl/default/en/acqui/suggestion-select.tmpl.diff?only_with_tag=rel_2_2&tr1=1.4.2.2&tr2=1.4.2.3&r1=text&r2=text

Patches:
Index: koha/C4/Suggestions.pm
diff -u koha/C4/Suggestions.pm:1.4.2.5 koha/C4/Suggestions.pm:1.4.2.6
--- koha/C4/Suggestions.pm:1.4.2.5	Tue Feb 21 20:38:42 2006
+++ koha/C4/Suggestions.pm	Tue May  9 16:05:01 2006
@@ -1,6 +1,6 @@
 package C4::Suggestions;
 
-# $Id: Suggestions.pm,v 1.4.2.5 2006/02/21 20:38:42 kados Exp $
+# $Id: Suggestions.pm,v 1.4.2.6 2006/05/09 16:05:01 tipaul Exp $
 
 # Copyright 2000-2002 Katipo Communications
 #
@@ -64,6 +64,7 @@
 				&delsuggestion
 				&countsuggestion
 				&changestatus
+				&connectSuggestionAndBiblio
 				&findsuggestion_from_biblionumber
 			);
 
@@ -149,7 +150,7 @@
 	my ($borrowernumber,$title,$author,$publishercode,$note,$copyrightdate,$volumedesc,$publicationyear,$place,$isbn,$biblionumber) = @_;
 	my $dbh = C4::Context->dbh;
 	my $sth = $dbh->prepare("insert into suggestions (status,suggestedby,title,author,publishercode,note,copyrightdate,volumedesc,publicationyear,place,isbn,biblionumber) values ('ASKED',?,?,?,?,?,?,?,?,?,?,?)");
-	$sth->execute($borrowernumber,$title,$author,$publishercode,$note,$copyrightdate,$volumedesc,$publicationyear,$place,$isbn,$biblionumber);
+	$sth->execute($borrowernumber,$title,$author,$publishercode,$note,$copyrightdate,$volumedesc,$publicationyear,$place,$isbn,$biblionumber);	
 }
 
 sub getsuggestion {
@@ -254,6 +255,13 @@
 	return $biblionumber;
 }
 
+# connect a suggestion to an existing biblio
+sub connectSuggestionAndBiblio {
+	my ($suggestionid,$biblionumber) = @_;
+	my $dbh=C4::Context->dbh;
+	my $sth = $dbh->prepare("update suggestions set biblionumber=? where suggestionid=?");
+	$sth->execute($biblionumber,$suggestionid);
+}
 =back
 
 =head1 SEE ALSO
Index: koha/acqui/suggestion-select.pl
diff -u koha/acqui/suggestion-select.pl:1.3.2.5 koha/acqui/suggestion-select.pl:1.3.2.6
--- koha/acqui/suggestion-select.pl:1.3.2.5	Sun Feb  5 21:59:21 2006
+++ koha/acqui/suggestion-select.pl	Tue May  9 16:05:01 2006
@@ -7,6 +7,8 @@
 use C4::Auth;       # get_template_and_user
 use C4::Interface::CGI::Output;
 use C4::Suggestions;
+use C4::Biblio;
+use C4::SearchMarc;
 
 my $input = new CGI;
 
@@ -22,6 +24,9 @@
 my $publicationyear = $input->param('publicationyear');
 my $place = $input->param('place');
 my $isbn = $input->param('isbn');
+my $duplicateNumber = $input->param('duplicateNumber');
+my $suggestionid = $input->param('suggestionid');
+
 my $status = 'ACCEPTED';
 my $suggestedbyme = -1; # search ALL suggestors
 my $op = $input->param('op');
@@ -36,7 +41,58 @@
 			     flagsrequired => {acquisition => 1},
 			 });
 
+if ($op eq 'connectDuplicate') {
+	connectSuggestionAndBiblio($suggestionid,$duplicateNumber);
+}
 my $suggestions_loop= &searchsuggestion($borrowernumber,$author,$title,$publishercode,$status,$suggestedbyme);
+foreach (@$suggestions_loop) {
+	unless ($_->{biblionumber}) {
+		my (@tags, @and_or, @excluding, @operator, @value, $offset,$length);
+		# search on biblio.title
+		if ($_->{title}) {
+			my ($tag,$subfield) = MARCfind_marc_from_kohafield($dbh,"biblio.title","");
+			push @tags, "'".$tag.$subfield."'";
+			push @and_or, "and";
+			push @excluding, "";
+			push @operator, "contains";
+			push @value, $_->{title};
+		}
+		if ($_->{author}) {
+			my ($tag,$subfield) = MARCfind_marc_from_kohafield($dbh,"biblio.author","");
+			push @tags, "'".$tag.$subfield."'";
+			push @and_or, "and";
+			push @excluding, "";
+			push @operator, "contains";
+			push @value, $_->{author};
+		}
+		# ... and on publicationyear.
+		if ($_->{publicationyear}) {
+			my ($tag,$subfield) = MARCfind_marc_from_kohafield($dbh,"biblioitems.publicationyear","");
+			push @tags, "'".$tag.$subfield."'";
+			push @and_or, "and";
+			push @excluding, "";
+			push @operator, "=";
+			push @value, $_->{publicationyear};
+		}
+		# ... and on publisher.
+		if ($_->{publishercode}) {
+			my ($tag,$subfield) = MARCfind_marc_from_kohafield($dbh,"biblioitems.publishercode","");
+			push @tags, "'".$tag.$subfield."'";
+			push @and_or, "and";
+			push @excluding, "";
+			push @operator, "=";
+			push @value, $_->{publishercode};
+		}
+	
+		my ($finalresult,$nbresult) = C4::SearchMarc::catalogsearch($dbh,\@tags,\@and_or,\@excluding,\@operator,\@value,0,10);
+		# there is at least 1 result => return the 1st one
+		if ($nbresult) {
+	# 		warn "$nbresult => ".@$finalresult[0]->{biblionumber},@$finalresult[0]->{bibid},@$finalresult[0]->{title};
+# 			warn "DUPLICATE ==>".@$finalresult[0]->{biblionumber},@$finalresult[0]->{bibid},@$finalresult[0]->{title};
+			$_->{duplicateBiblionumber} = @$finalresult[0]->{biblionumber};
+		}
+	}
+}
 $template->param(suggestions_loop => $suggestions_loop,
 				title => $title,
 				author => $author,
Index: koha/koha-tmpl/intranet-tmpl/default/en/acqui/suggestion-select.tmpl
diff -u koha/koha-tmpl/intranet-tmpl/default/en/acqui/suggestion-select.tmpl:1.4.2.2 koha/koha-tmpl/intranet-tmpl/default/en/acqui/suggestion-select.tmpl:1.4.2.3
--- koha/koha-tmpl/intranet-tmpl/default/en/acqui/suggestion-select.tmpl:1.4.2.2	Mon Aug 22 19:30:04 2005
+++ koha/koha-tmpl/intranet-tmpl/default/en/acqui/suggestion-select.tmpl	Tue May  9 16:05:02 2006
@@ -6,6 +6,7 @@
 			<th class="acquisition">Suggestion</th>
 			<th class="acquisition">Suggested by</th>
 			<th class="acquisition">Accepted by</th>
+			<th class="acquisition">Duplicate</th>
 			<th class="acquisition">&nbsp;</th>
 		</tr>
 		<tr>
@@ -23,6 +24,9 @@
 					&nbsp;
 				</th>
 				<th class="acquisition">
+					&nbsp;
+				</th>
+				<th class="acquisition">
 					<input type="submit" class="button acquisition" value="Set Filter">
 				</th>
 			</form>
@@ -46,6 +50,12 @@
 				<td <!-- TMPL_IF name="even" -->class="hilighted"<!-- /TMPL_IF -->>
 					<!-- TMPL_VAR NAME="surnamemanagedby" --><!-- TMPL_IF name="firstnamemanagedby" -->,<!-- /TMPL_IF --> <!-- TMPL_VAR NAME="firstnamemanagedby" -->
 				</td>
+				<td>
+					<!-- TMPL_IF name="duplicateBiblionumber" -->
+						<a href=# onClick="javascript:window.open('/cgi-bin/koha/MARCdetail.pl?bib=<!-- TMPL_VAR name="duplicateBiblionumber" -->')" class="button acquisition">Duplicate suspected</a>
+						<a href="/cgi-bin/koha/acqui/suggestion-select.pl?booksellerid=<!-- TMPL_VAR name="supplierid" -->&basketno=<!-- TMPL_VAR name="basketno"-->&op=connectDuplicate&duplicateNumber=<!-- TMPL_VAR name="duplicateBiblionumber" -->&suggestionid=<!-- TMPL_VAR name="suggestionid" -->" class="button acquisition">Connect</a>
+					<!-- /TMPL_IF -->
+				</td>
 				<td <!-- TMPL_IF name="even" -->class="hilighted"<!-- /TMPL_IF -->>
 					<!-- TMPL_IF name="biblionumber" -->
 						<a href="newbiblio.pl?booksellerid=<!-- TMPL_VAR NAME="supplierid" -->&amp;basketno=<!-- TMPL_VAR NAME="basketno" -->&amp;suggestionid=<!-- TMPL_VAR NAME="suggestionid" -->&biblio=<!-- TMPL_VAR name="biblionumber" -->" class="button acquisition">Order</a>





More information about the Koha-cvs mailing list