X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Fnewordersuggestion.pl;h=f33d01253634a8cf33d51ab162aa3890b42a296b;hb=HEAD;hp=2e6b398d1d6944c54f913cc9b3284a7198481dcf;hpb=d2c5f7f93fdd2322126c6342e0815faa6aa2a32d;p=koha_gimpoz diff --git a/acqui/newordersuggestion.pl b/acqui/newordersuggestion.pl index 2e6b398d1d..f33d012536 100755 --- a/acqui/newordersuggestion.pl +++ b/acqui/newordersuggestion.pl @@ -15,168 +15,132 @@ # 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. +The suggestion must have 'ACCEPTED' as status. =head1 CGI PARAMETERS =over 4 =item basketno -the number of this basket. + + the number of this basket. =item booksellerid -the bookseller who sells this record. + + the bookseller who sells this record. =item title -the title of this record suggested. + + to filter on title when searching among ACCEPTED suggestion. =item author -the author of this suggestion. + + to filter on author when searching among ACCEPTED suggestion. =item note -this param allow to enter a note with this suggestion. + + to filter on note when searching among ACCEPTED 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 warnings; FIXME - Bug 2505 + use CGI; -use HTML::Template; -use C4::Auth; # get_template_and_user -use C4::Interface::CGI::Output; +use C4::Auth; # get_template_and_user +use C4::Output; use C4::Suggestions; +use C4::Bookseller qw/ GetBookSellerFromId /; use C4::Biblio; -use C4::SearchMarc; 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'); +# getting the CGI params +my $basketno = $input->param('basketno'); +my $booksellerid = $input->param('booksellerid'); +my $author = $input->param('author'); +my $title = $input->param('title'); +my $publishercode = $input->param('publishercode'); +my $op = $input->param('op'); +my $suggestionid = $input->param('suggestionid'); my $duplicateNumber = $input->param('duplicateNumber'); -my $suggestionid = $input->param('suggestionid'); +my $uncertainprice = $input->param('uncertainprice'); -my $status = 'ACCEPTED'; -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 (@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}; - } - } +my ( $template, $borrowernumber, $cookie ) = get_template_and_user( + { + template_name => "acqui/newordersuggestion.tmpl", + type => "intranet", + query => $input, + authnotrequired => 1, + flagsrequired => { acquisition => 'order_manage' }, + } +); + +if ( $op eq 'connectDuplicate' ) { + ConnectSuggestionAndBiblio( $suggestionid, $duplicateNumber ); } -$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"), + +# getting all suggestions. +my $suggestions_loop = + &SearchSuggestion( + { managedby => $borrowernumber, + author => $author, + title => $title, + publishercode => $publishercode, + STATUS => 'ACCEPTED'}); +my $vendor = GetBookSellerFromId($booksellerid); +$template->param( + suggestions_loop => $suggestions_loop, + basketno => $basketno, + booksellerid => $booksellerid, + name => $vendor->{'name'}, + "op_$op" => 1, ); + output_html_with_http_headers $input, $cookie, $template->output;