diff --git a/request.pl b/request.pl
index fd2d644c44..2a7937e9bf 100755
--- a/request.pl
+++ b/request.pl
@@ -31,6 +31,7 @@ use C4::Reserves2;
use C4::Biblio;
use C4::Koha;
use C4::Circulation::Circ2;
+use HTML::Template;
use CGI;
my $input = new CGI;
@@ -50,7 +51,15 @@ foreach my $res (@$reserves) {
# make priorities options
my $num = $count + 1;
-my $priorityoptions = priorityoptions($num, $num);
+
+#priorityoptions building
+my @optionloop;
+for (my $i=1; $i<=$num; $i++){
+ my %option;
+ $option{num}=$i;
+ $option{selected}=($i==$num);
+ push(@optionloop, \%option);
+}
# get branch information
@@ -58,6 +67,18 @@ my $branch = $input->cookie('branch');
($branch) || ($branch = 'L');
my $branches = getbranches();
my $branchoptions = branchoptions($branch);
+# make branch selection options...
+my @branchloop;
+foreach my $br (keys %$branches) {
+ (next) unless $branches->{$br}->{'IS'};
+ # Only branches with the 'IS' branchrelation
+ # can issue books
+ my %abranch;
+ $abranch{'selected'}=($br eq $branch);
+ $abranch{'branch'}=$br;
+ $abranch{'branchname'}=$branches->{$br}->{'branchname'};
+ push(@branchloop,\%abranch);
+}
# todays date
@@ -67,241 +88,110 @@ $mon++;
my $date="$mday/$mon/$year";
-
-
# get biblioitem information and build rows for form
my ($count2,@data) = bibitems($bib);
-my $bibitemrows = "";
-
+my @bibitemloop;
foreach my $dat (sort {$b->{'dateaccessioned'} cmp $a->{'dateaccessioned'}} @data) {
- my @barcodes = barcodes($dat->{'biblioitemnumber'});
- my $barcodestext = "";
- foreach my $num (@barcodes) {
- my $message = $num->{'itemlost'} == 1 ? "(lost)" :
- $num->{'itemlost'} == 2 ? "(long overdue)" : "";
- $barcodestext .= "$num->{'barcode'} $message
";
- }
- $barcodestext = substr($barcodestext, 0, -4);
-
$dat->{'dewey'}="" if ($dat->{'dewey'} == 0);
-
$dat->{'volumeddesc'} = " " unless $dat->{'volumeddesc'};
$dat->{'dewey'}=~ s/\.0000$//;
$dat->{'dewey'}=~ s/00$//;
- my $class="$dat->{'classification'}$dat->{'dewey'}$dat->{'subclass'}";
+
+ my %abibitem;
+ my @barcodeloop;
+ my @barcodes = barcodes($dat->{'biblioitemnumber'});
+ foreach my $num (@barcodes) {
+ my %barcode;
+ $barcode{'barcode'}=$num->{'barcode'};
+ $barcode{'message'}=$num->{'itemlost'} == 1 ? "(lost)" :
+ $num->{'itemlost'} == 2 ? "(long overdue)" : "";
+ push(@barcodeloop, \%barcode);
+ }
+ $abibitem{'barcodeloop'}=\@barcodeloop;
+ $abibitem{'class'}="$dat->{'classification'}$dat->{'dewey'}$dat->{'subclass'}";
my $select;
- if (($dat->{'notforloan'})
- || ($dat->{'itemlost'} == 1)) {
- $select = "Cannot be reserved.";
- } else {
- $select = " {'biblioitemnumber'}>{'biblioitemnumber'}>";
- }
- $bibitemrows .= <<"EOF";
-
-$select |
-$dat->{'description'} |
-$class |
-$dat->{'volumeddesc'} |
-$dat->{'publicationyear'} |
-$barcodestext |
-
-EOF
+ $abibitem{'itemlost'}=(($dat->{'notforloan'})|| ($dat->{'itemlost'} == 1)) ;
+ $abibitem{'biblioitemnumber'}=$dat->{'biblioitemnumber'};
+ $abibitem{'description'}=$dat->{'description'};
+ $abibitem{'volumeddesc'}=$dat->{'volumeddesc'};
+ $abibitem{'publicationyear'}=$dat->{'publicationyear'};
+ push(@bibitemloop,\%abibitem);
}
-
-my $existingreserves = "";
+#existingreserves building
+my @reserveloop;
foreach my $res (sort {$a->{'found'} cmp $b->{'found'}} @$reserves){
- my $prioropt = priorityoptions($totalcount, $res->{'priority'});
- my $bropt = branchoptions($res->{'branchcode'});
- my $bor=$res->{'borrowernumber'};
- $date = slashifyDate($res->{'reservedate'});
+ my %reserve;
+# my $prioropt = priorityoptions($totalcount, $res->{'priority'});
+ my @optionloop;
+ for (my $i=1; $i<=$totalcount; $i++){
+ my %option;
+ $option{num}=$i;
+ $option{selected}=($i==$res->{'priority'});
+ push(@optionloop, \%option);
+ }
+# my $bropt = branchoptions($res->{'branchcode'});
+ my @branchloop;
+ foreach my $br (keys %$branches) {
+ (next) unless $branches->{$br}->{'IS'};
+ # Only branches with the 'IS' branchrelation
+ # can issue books
+ my %abranch;
+ $abranch{'selected'}=($br eq $res->{'branchcode'});
+ $abranch{'branch'}=$br;
+ $abranch{'branchname'}=$branches->{$br}->{'branchname'};
+ push(@branchloop,\%abranch);
+ }
- my $type=$res->{'constrainttype'};
- if ($type eq 'a'){
- $type='Next Available';
- } elsif ($type eq 'o'){
- $type="This type only $res->{'volumeddesc'} $res->{'itemtype'}";
- }
-
- my $notes = $res->{'reservenotes'}." ";
- my $rank;
- my $pickup;
if ($res->{'found'} eq 'W') {
- my %env;
- my $item = $res->{'itemnumber'};
- $item = getiteminformation(\%env,$item);
- $item = "{'biblionumber'} &type=intra onClick=\"openWindow(this, 'Item', 480, 640)\">$item->{'barcode'}";
- my $wbrcd = $res->{'branchcode'};
- my $wbra = $branches->{$wbrcd}->{'branchname'};
- $type = $item;
- $rank = "";
- $pickup = "Item waiting at ".$wbra." ";
- } else {
- $rank = "";
- $pickup = "";
+ my %env;
+ my $item = $res->{'itemnumber'};
+ $item = getiteminformation(\%env,$item);
+ $reserve{'barcode'}=$item->{'barcode'};
+ $reserve{'biblionumber'}=$item->{'biblionumber'};
+ $reserve{'wbrcode'} = $res->{'branchcode'};
+ $reserve{'wbrname'} = $branches->{$wbrcd}->{'branchname'};
}
- $existingreserves .= <<"EOF";
-
-
-{'borrowernumber'}>
-{'biblionumber'}>
-$rank |
-
-$res->{'firstname'} $res->{'surname'}
- |
-$notes |
-$date |
-OO $pickup |
-$type |
-
-EOF
+ $reserve{'date'} = slashifyDate($res->{'reservedate'});
+ $reserve{'borrowernumber'}=$res->{'borrowernumber'};
+ $reserve{'biblionumber'}=$res->{'biblionumber'};
+ $reserve{'bornum'}=$res->{'borrowernumber'};
+ $reserve{'firstname'}=$res->{'firstname'};
+ $reserve{'bornum'}=$res->{'borrowernumber'};
+ $reserve{'notes'}=$res->{'reservenotes'};
+ $reserve{'wait'}=($res->{'found'} eq 'W');
+ $reserve{'constrainttypea'}=($res->{'constrainttype'} eq 'a');
+ $reserve{'constrainttypeo'}=($res->{'constrainttype'} eq 'o');
+ $reserve{'voldesc'}=$res->{'volumeddesc'};
+ $reserve{'itemtype'}=$res->{'itemtype'};
+ $reserve{'branchloop'}=\@branchloop;
+ $reserve{'optionloop'}=\@optionloop;
+ push(@reserveloop,\%reserve);
}
-
-
-sub priorityoptions {
- my ($count, $sel) = @_;
- my $out = "";
- for (my $i=1; $i<=$count; $i++){
- $out .= "\n";
- }
- return $out;
-}
-
-
#get the time for the form name...
my $time = time();
-# printout the page
-
-print $input->header(-expires=>'now');
-
-
#setup colours
-print startmenu('catalogue');
-
-
-
-
-print <
-
-
-
-
-Requesting:
-$dat->{'title'}
-($dat->{'author'})
-
-
-
-
-
-
-
-
-
-
-
-
-
-Request |
-Item Type |
-Classification |
-Volume |
-Pubdate |
-Copies |
-
-$bibitemrows
-
-
-
-
-
-
-
-
-
-
-
-printend
-;
-
-print endmenu();
-print endpage();
+my ($template, $borrowernumber, $cookie)
+ = get_template_and_user({template_name => "request.tmpl",
+ query => $input,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => {parameters => 1},
+ });
+$template->param( optionloop =>\@optionloop,
+ branchloop => \@branchloop,
+ reserveloop => \@reserveloop,
+ 'time' => $time,
+ bibitemloop => \@bibitemloop,
+ date => $date);
+# printout the page
+print $input->header(-expires=>'now'), $template->output;