X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=acqui%2Fneworderbiblio.pl;h=5824f6b5aa989203c119b26841e4022f37a5fbeb;hb=HEAD;hp=d1f19323f47be9dfe87c480e0a271f807a0ccb9c;hpb=66c420c3d0eeb2fa0f70f8416113273c48d9887f;p=koha_gimpoz diff --git a/acqui/neworderbiblio.pl b/acqui/neworderbiblio.pl index d1f19323f4..5824f6b5aa 100755 --- a/acqui/neworderbiblio.pl +++ b/acqui/neworderbiblio.pl @@ -4,6 +4,7 @@ #now script to do searching for acquisitions # Copyright 2000-2002 Katipo Communications +# Copyright 2008-2009 BibLibre SARL # # This file is part of Koha. # @@ -16,9 +17,9 @@ # 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 +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. =head1 NAME @@ -55,14 +56,17 @@ the basket number to know on which basket this script have to add a new order. =cut use strict; +#use warnings; FIXME - Bug 2505 + use C4::Search; use CGI; -use C4::Bookseller; +use C4::Bookseller qw/ GetBookSellerFromId /; use C4::Biblio; - use C4::Auth; use C4::Output; use C4::Koha; +use C4::Members qw/ GetMember /; +use C4::Budgets qw/ GetBudgetHierarchy /; my $input = new CGI; @@ -72,10 +76,10 @@ my $params = $input->Vars; my $page = $params->{'page'} || 1; my $query = $params->{'q'}; my $results_per_page = $params->{'num'} || 20; - -my $booksellerid = $params->{'booksellerid'}; -my $basketno = $params->{'basketno'}; -my $sub = $params->{'sub'}; +my $booksellerid = $params->{'booksellerid'}; +my $basketno = $params->{'basketno'}; +my $sub = $params->{'sub'}; +my $bookseller = GetBookSellerFromId($booksellerid); # getting the template my ( $template, $loggedinuser, $cookie ) = get_template_and_user( @@ -84,51 +88,61 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => { acquisition => 1 }, + flagsrequired => { acquisition => 'order_manage' }, } ); # Searching the catalog. -my ($error, $marcresults, $total_hits) = SimpleSearch($query, $results_per_page * ($page - 1), $results_per_page); +my @operands = $query; +my ( @operators, @indexes, @sort_by, @limits ) = (); +my ( $builterror, $builtquery, $simple_query, $query_cgi, $query_desc, $limit, $limit_cgi, $limit_desc, $stopwords_removed, $query_type ) = + buildQuery( \@operators, \@operands, \@indexes, @limits, \@sort_by, undef, undef ); + + # find results +my ( $error, $marcresults, $total_hits ) = SimpleSearch( $builtquery, $results_per_page * ( $page - 1 ), $results_per_page ); if (defined $error) { - $template->param(query_error => $error); - warn "error: ".$error; + $template->param( + query_error => $error, + basketno => $basketno, + booksellerid => $bookseller->{'id'}, + name => $bookseller->{'name'}, + ); output_html_with_http_headers $input, $cookie, $template->output; exit; } my @results; -foreach my $i ( 0 .. scalar @$marcresults ) { - my %resultsloop; - my $marcrecord = MARC::File::USMARC::decode($marcresults->[$i]); - my $biblio = TransformMarcToKoha(C4::Context->dbh,$marcrecord,''); +foreach my $result ( @{$marcresults} ) { + my $marcrecord = MARC::File::USMARC::decode( $result ); + my $biblio = TransformMarcToKoha( C4::Context->dbh, $marcrecord, '' ); - #build the hash for the template. - %resultsloop=%$biblio; - $resultsloop{highlight} = ($i % 2)?(1):(0); - $resultsloop{booksellerid} = $booksellerid; - push @results, \%resultsloop; + $biblio->{booksellerid} = $booksellerid; + push @results, $biblio; + +} + +my $borrower= GetMember('borrowernumber' => $loggedinuser); +my $budgets = GetBudgetHierarchy(q{},$borrower->{branchcode},$borrower->{borrowernumber}); +my $has_budgets = 0; +foreach my $r (@{$budgets}) { + if (!defined $r->{budget_amount} || $r->{budget_amount} == 0) { + next; + } + $has_budgets = 1; + last; } $template->param( + has_budgets => $has_budgets, basketno => $basketno, - booksellerid => $booksellerid, + booksellerid => $bookseller->{'id'}, + name => $bookseller->{'name'}, resultsloop => \@results, total => $total_hits, query => $query, - virtualshelves => C4::Context->preference("virtualshelves"), - LibraryName => C4::Context->preference("LibraryName"), - OpacNav => C4::Context->preference("OpacNav"), - opaccredits => C4::Context->preference("opaccredits"), - AmazonContent => C4::Context->preference("AmazonContent"), - opacsmallimage => C4::Context->preference("opacsmallimage"), - opaclayoutstylesheet => C4::Context->preference("opaclayoutstylesheet"), - opaccolorstylesheet => C4::Context->preference("opaccolorstylesheet"), - "BiblioDefaultView".C4::Context->preference("IntranetBiblioDefaultView") => 1, - # FIXME: pagination_bar doesn't work right with only one pair of CGI params, so I put two in. - pagination_bar => pagination_bar( "$ENV{'SCRIPT_NAME'}?bug=fix&q=$query&", getnbpages( $total_hits, $results_per_page ), $page, 'page' ), + pagination_bar => pagination_bar( "$ENV{'SCRIPT_NAME'}?q=$query&booksellerid=$booksellerid&basketno=$basketno&", getnbpages( $total_hits, $results_per_page ), $page, 'page' ), ); # BUILD THE TEMPLATE