Koha/acqui.simple/isbnsearch.pl

146 lines
4.2 KiB
Perl
Executable file

#!/usr/bin/perl
# Copyright 2000-2002 Katipo Communications
#
# 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
use strict;
use CGI;
use C4::Auth;
use C4::Catalogue;
use C4::Biblio;
use C4::Search;
use C4::Output;
use C4::Interface::CGI::Output;
use HTML::Template;
my $input = new CGI;
my $isbn = $input->param('isbn');
my $title = $input->param('title');
my $offset = $input->param('offset');
my $num = $input->param('num');
my $showoffset = $offset + 1;
my $total;
my $count;
my @results;
if (! $isbn && !$title) {
print $input->redirect('addbooks.pl');
} else {
my ($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "acqui.simple/isbnsearch.tmpl",
query => $input,
type => "intranet",
authnotrequired => 0,
flagsrequired => {catalogue => 1},
debug => 1,
});
# fill with books in ACTIVE DB (biblio)
if (! $offset) {
$offset = 0;
$showoffset = 1;
};
if (! $num) { $num = 10 };
($count, @results) = isbnsearch($isbn,$title);
if ($count < ($offset + $num)) {
$total = $count;
} else {
$total = $offset + $num;
} # else
my @loop_data = ();
my $toggle;
for (my $i = $offset; $i < $total; $i++) {
if ($i % 2) {
$toggle="#ffffcc";
} else {
$toggle="white";
}
my %row_data; # get a fresh hash for the row data
$row_data{toggle} = $toggle;
$row_data{biblionumber} =$results[$i]->{'biblionumber'};
$row_data{title} = $results[$i]->{'title'};
$row_data{author} = $results[$i]->{'author'};
$row_data{copyrightdate} = $results[$i]->{'copyrightdate'};
push(@loop_data, \%row_data);
}
$template->param(startfrom => $offset+1);
($offset+$num<=$count) ? ($template->param(endat => $offset+$num)) : ($template->param(endat => $count));
$template->param(numrecords => $count);
my $nextstartfrom=($offset+$num<$count) ? ($offset+$num) : (-1);
my $prevstartfrom=($offset-$num>=0) ? ($offset-$num) : (-1);
$template->param(nextstartfrom => $nextstartfrom);
my $displaynext=1;
my $displayprev=0;
($nextstartfrom==-1) ? ($displaynext=0) : ($displaynext=1);
($prevstartfrom==-1) ? ($displayprev=0) : ($displayprev=1);
$template->param(displaynext => $displaynext);
$template->param(displayprev => $displayprev);
my @numbers = ();
my $term;
my $value;
if ($isbn) {
$term = "isbn";
$value=$isbn;
} else {
$term ="title";
$value=$title;
}
if ($count>10) {
for (my $i=1; $i<$count/10+1; $i++) {
if ($i<16) {
my $highlight=0;
($offset==($i-1)*10) && ($highlight=1);
push @numbers, { number => $i, highlight => $highlight , term => $term, value => $value, startfrom => ($i-1)*10};
}
}
}
# fill with books in breeding farm
($count, @results) = breedingsearch($title,$isbn);
my @breeding_loop = ();
for (my $i=0; $i <= $#results; $i++) {
my %row_data;
if ($i % 2) {
$toggle="#ffffcc";
} else {
$toggle="white";
}
$row_data{toggle} = $toggle;
$row_data{id} = $results[$i]->{'id'};
$row_data{isbn} = $results[$i]->{'isbn'};
$row_data{file} = $results[$i]->{'file'};
$row_data{title} = $results[$i]->{'title'};
$row_data{author} = $results[$i]->{'author'};
push (@breeding_loop, \%row_data);
}
$template->param(isbn => $isbn,
title => $title,
showoffset => $showoffset,
total => $total,
offset => $offset,
loop => \@loop_data,
breeding_loop => \@breeding_loop,
numbers => \@numbers,
term => $term,
value => $value,
);
print $input->header(
-type => guesstype($template->output),
-cookie => $cookie
),$template->output;
} # else