#!/usr/bin/perl # This file is part of Koha. # # Koha is free software; you can redistribute it and/or modify it under the # terms of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # # Koha is distributed in the hope that it will be useful, but WITHOUT ANY # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along with # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA # $Id$ =head1 NAME newordersuggestion.pl =head1 DESCRIPTION this script allow to add an order from a existing suggestion. =head1 CGI PARAMETERS =over 4 =item basketno the number of this basket. =item booksellerid the bookseller who sells this record. =item title the title of this record suggested. =item author the author of this suggestion. =item note this param allow to enter a note with this suggestion. =item copyrightdate the copyright date for this suggestion. =item publishercode =item volumedesc =item publicationyear the publication year of this record. =item place =item isbn the isbn of this suggestion. =item duplicateNumber is the biblionumber to put to the new suggestion. =item suggestionid the id of the suggestion to select. =item op can be equal to * connectDuplicate : then call to the function : ConnectSuggestionAndBiblio. i.e set the biblionumber of this suggestion. * else : is the default value. =back =cut use strict; require Exporter; use CGI; use C4::Auth; # get_template_and_user use C4::Interface::CGI::Output; use C4::Suggestions; use C4::Biblio; use C4::Search; my $input = new CGI; my $basketno = $input->param('basketno'); my $supplierid = $input->param('booksellerid'); my $title = $input->param('title'); my $author = $input->param('author'); my $note = $input->param('note'); my $copyrightdate =$input->param('copyrightdate'); my $publishercode = $input->param('publishercode'); my $volumedesc = $input->param('volumedesc'); 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'; # the suggestion had to be accepeted before to order it. my $suggestedbyme = -1; # search ALL suggestors my $op = $input->param('op'); $op = 'else' unless $op; my $dbh = C4::Context->dbh; my ($template, $borrowernumber, $cookie) = get_template_and_user({template_name => "acqui/newordersuggestion.tmpl", type => "intranet", query => $input, authnotrequired => 1, 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 (@kohafields, @and_or, @value, @relation, $offset,$length); # search on biblio.title if ($_->{title}) { push @kohafields, "title"; push @and_or, "\@and"; push @relation, "\@attr 5=1"; push @value, $_->{title}; } if ($_->{author}) { push @kohafields, "author"; push @and_or, "\@and"; push @relation, ""; push @value, $_->{author}; } # ... and on publicationyear. if ($_->{publicationyear}) { push @kohafields, "copyrightdate"; push @and_or, "\@and"; push @relation, ""; push @value, $_->{publicationyear}; } # ... and on publisher. if ($_->{publishercode}) { push @kohafields, "publishercode"; push @and_or, "\@and"; push @relation, ""; push @value, $_->{publishercode}; } my ($nbresult,@finalresult) = ZEBRAsearch_kohafields(\@kohafields,\@value,\@relation,"",\@and_or,0,"",0,1); # there is at least 1 result => return the 1st one if ($nbresult) { $_->{duplicateBiblionumber} = $finalresult[0]->{biblionumber}; } } } $template->param(suggestions_loop => $suggestions_loop, title => $title, author => $author, publishercode => $publishercode, status => $status, suggestedbyme => $suggestedbyme, basketno => $basketno, supplierid => $supplierid, "op_$op" => 1, intranetcolorstylesheet => C4::Context->preference("intranetcolorstylesheet"), intranetstylesheet => C4::Context->preference("intranetstylesheet"), IntranetNav => C4::Context->preference("IntranetNav"), ); output_html_with_http_headers $input, $cookie, $template->output;