[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"> </th>
</tr>
<tr>
@@ -23,6 +24,9 @@
</th>
<th class="acquisition">
+
+ </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" -->&basketno=<!-- TMPL_VAR NAME="basketno" -->&suggestionid=<!-- TMPL_VAR NAME="suggestionid" -->&biblio=<!-- TMPL_VAR name="biblionumber" -->" class="button acquisition">Order</a>
More information about the Koha-cvs
mailing list