From: toins Date: Wed, 2 Aug 2006 08:16:46 +0000 (+0000) Subject: newordersuggestion.pl replaces suggestion-select.pl X-Git-Tag: dev_week~535 X-Git-Url: http://git.rot13.org/?a=commitdiff_plain;h=9d09386b3918bbd143f27c45f4c0591ff3256a8b;p=koha.git newordersuggestion.pl replaces suggestion-select.pl --- diff --git a/acqui/newordersuggestion.pl b/acqui/newordersuggestion.pl new file mode 100755 index 0000000000..e46fc78c13 --- /dev/null +++ b/acqui/newordersuggestion.pl @@ -0,0 +1,182 @@ +#!/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 HTML::Template; +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; + +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'; +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/suggestion-select.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}; + } + } +} +$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; diff --git a/acqui/suggestion-select.pl b/acqui/suggestion-select.pl deleted file mode 100755 index b8622ccca5..0000000000 --- a/acqui/suggestion-select.pl +++ /dev/null @@ -1,182 +0,0 @@ -#!/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 -suggestion-select.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 HTML::Template; -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; - -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'; -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/suggestion-select.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}; - } - } -} -$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;