5 #script to place reserves/requests
6 #writen 2/1/00 by chris@katipo.oc.nz
9 # Copyright 2000-2002 Katipo Communications
11 # This file is part of Koha.
13 # Koha is free software; you can redistribute it and/or modify it under the
14 # terms of the GNU General Public License as published by the Free Software
15 # Foundation; either version 2 of the License, or (at your option) any later
18 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
19 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
20 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
22 # You should have received a copy of the GNU General Public License along with
23 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
24 # Suite 330, Boston, MA 02111-1307 USA
33 use C4::Circulation::Circ2;
41 # get biblio information....
42 my $bib = $input->param('bib');
43 my $dat = bibdata($bib);
45 # get existing reserves .....
46 my ($count,$reserves) = FindReserves($bib);
47 my $totalcount = $count;
48 foreach my $res (@$reserves) {
49 if ($res->{'found'} eq 'W') {
54 # make priorities options
57 #priorityoptions building
59 for (my $i=1; $i<=$num; $i++){
62 $option{selected}=($i==$num);
63 push(@optionloop, \%option);
67 # get branch information
68 my $branch = $input->cookie('branch');
69 ($branch) || ($branch = 'L');
70 my $branches = getbranches();
71 # make branch selection options...
73 foreach my $br (keys %$branches) {
74 (next) unless $branches->{$br}->{'IS'};
75 # Only branches with the 'IS' branchrelation
78 $abranch{'selected'}=($br eq $branch);
79 $abranch{'branch'}=$br;
80 $abranch{'branchname'}=$branches->{$br}->{'branchname'};
81 push(@branchloop,\%abranch);
86 my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
89 my $date="$mday/$mon/$year";
92 # get biblioitem information and build rows for form
93 my ($count2,@data) = bibitems($bib);
96 foreach my $dat (sort {$b->{'dateaccessioned'} cmp $a->{'dateaccessioned'}} @data) {
97 $dat->{'dewey'}="" if ($dat->{'dewey'} == 0);
98 $dat->{'volumeddesc'} = " " unless $dat->{'volumeddesc'};
99 $dat->{'dewey'}=~ s/\.0000$//;
100 $dat->{'dewey'}=~ s/00$//;
104 my @barcodes = barcodes($dat->{'biblioitemnumber'});
105 foreach my $num (@barcodes) {
107 $barcode{'barcode'}=$num->{'barcode'};
108 $barcode{'message'}=$num->{'itemlost'} == 1 ? "(lost)" :
109 $num->{'itemlost'} == 2 ? "(long overdue)" : "";
110 push(@barcodeloop, \%barcode);
112 $abibitem{'barcodeloop'}=\@barcodeloop;
113 $abibitem{'class'}="$dat->{'classification'}$dat->{'dewey'}$dat->{'subclass'}";
115 $abibitem{'itemlost'}=(($dat->{'notforloan'})|| ($dat->{'itemlost'} == 1)) ;
116 $abibitem{'biblioitemnumber'}=$dat->{'biblioitemnumber'};
117 $abibitem{'description'}=$dat->{'description'};
118 $abibitem{'volumeddesc'}=$dat->{'volumeddesc'};
119 $abibitem{'publicationyear'}=$dat->{'publicationyear'};
120 push(@bibitemloop,\%abibitem);
125 #existingreserves building
127 foreach my $res (sort {$a->{'found'} cmp $b->{'found'}} @$reserves){
129 # my $prioropt = priorityoptions($totalcount, $res->{'priority'});
131 for (my $i=1; $i<=$totalcount; $i++){
134 $option{selected}=($i==$res->{'priority'});
135 push(@optionloop, \%option);
137 # my $bropt = branchoptions($res->{'branchcode'});
139 foreach my $br (keys %$branches) {
140 (next) unless $branches->{$br}->{'IS'};
141 # Only branches with the 'IS' branchrelation
144 $abranch{'selected'}=($br eq $res->{'branchcode'});
145 $abranch{'branch'}=$br;
146 $abranch{'branchname'}=$branches->{$br}->{'branchname'};
147 push(@branchloop,\%abranch);
150 if ($res->{'found'} eq 'W') {
152 my $item = $res->{'itemnumber'};
153 $item = getiteminformation(\%env,$item);
154 $reserve{'barcode'}=$item->{'barcode'};
155 $reserve{'biblionumber'}=$item->{'biblionumber'};
156 $reserve{'wbrcode'} = $res->{'branchcode'};
157 $reserve{'wbrname'} = $branches->{$res->{'branchcode'}}->{'branchname'};
159 $reserve{'date'} = format_date($res->{'reservedate'});
160 $reserve{'borrowernumber'}=$res->{'borrowernumber'};
161 $reserve{'biblionumber'}=$res->{'biblionumber'};
162 $reserve{'bornum'}=$res->{'borrowernumber'};
163 $reserve{'firstname'}=$res->{'firstname'};
164 $reserve{'bornum'}=$res->{'borrowernumber'};
165 $reserve{'notes'}=$res->{'reservenotes'};
166 $reserve{'wait'}=($res->{'found'} eq 'W');
167 $reserve{'constrainttypea'}=($res->{'constrainttype'} eq 'a');
168 $reserve{'constrainttypeo'}=($res->{'constrainttype'} eq 'o');
169 $reserve{'voldesc'}=$res->{'volumeddesc'};
170 $reserve{'itemtype'}=$res->{'itemtype'};
171 $reserve{'branchloop'}=\@branchloop;
172 $reserve{'optionloop'}=\@optionloop;
173 push(@reserveloop,\%reserve);
179 my ($count2,@branches)=branches();
180 for (my $i=0;$i<$count2;$i++){
181 push @select_branch, $branches[$i]->{'branchcode'};#
182 $select_branches{$branches[$i]->{'branchcode'}} = $branches[$i]->{'branchname'};
184 my $CGIbranch=CGI::scrolling_list( -name => 'pickup',
185 -values => \@select_branch,
186 -labels => \%select_branches,
190 #get the time for the form name...
194 my ($template, $borrowernumber, $cookie)
195 = get_template_and_user({template_name => "request.tmpl",
198 authnotrequired => 0,
199 flagsrequired => {parameters => 1},
201 $template->param( optionloop =>\@optionloop,
202 CGIbranch => $CGIbranch,
203 reserveloop => \@reserveloop,
205 bibitemloop => \@bibitemloop,
208 title =>$dat->{title});
210 print $input->header(-expires=>'now'), $template->output;