3 #script to show display basket of orders
4 #written by chris@katipo.co.nz 24/2/2000
6 # Copyright 2000-2002 Katipo Communications
8 # This file is part of Koha.
10 # Koha is free software; you can redistribute it and/or modify it under the
11 # terms of the GNU General Public License as published by the Free Software
12 # Foundation; either version 2 of the License, or (at your option) any later
15 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
16 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
17 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License along with
20 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
21 # Suite 330, Boston, MA 02111-1307 USA
29 this script allows to create a new record to order it. This record shouldn't exist
37 the bookseller the librarian has to buy a new book.
40 the title of this new record.
43 the author of this new record.
46 the copyright of this new record.
49 the number of this order.
54 the basket number for this new order.
57 if this order comes from a suggestion.
79 use C4::Interface::CGI::Output;
80 use C4::Branch; # GetBranches
84 my $booksellerid = $input->param('booksellerid');
85 my $title = $input->param('title');
86 my $author = $input->param('author');
87 my $copyright = $input->param('copyright');
88 my @booksellers = GetBookSeller($booksellerid);
89 my $count = scalar @booksellers;
90 my $ordnum = $input->param('ordnum');
91 my $biblionumber = $input->param('biblionumber');
92 my $basketno = $input->param('basketno');
93 my $suggestionid = $input->param('suggestionid');
94 # my $donation = $input->param('donation');
95 my $close = $input->param('close');
98 my $dbh = C4::Context->dbh;
100 if ( $ordnum eq '' ) { # create order
103 # $ordnum=newordernum;
104 if ( $biblionumber && !$suggestionid ) {
105 $data = GetBiblioData($biblionumber);
108 # get suggestion fields if applicable. If it's a subscription renewal, then the biblio already exists
109 # otherwise, retrieve suggestion information.
112 $data = GetBiblioData($biblionumber);
115 $data = GetSuggestion($suggestionid);
120 $data = GetOrder($ordnum);
121 $biblionumber = $data->{'biblionumber'};
122 #get basketno and suppleirno. too!
123 my $data2 = GetBasket( $data->{'basketno'} );
124 $basketno = $data2->{'basketno'};
125 $booksellerid = $data2->{'booksellerid'};
128 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
130 template_name => "acqui/neworderempty.tmpl",
133 authnotrequired => 0,
134 flagsrequired => { acquisition => 1 },
139 # get currencies (for change rates calcs if needed)
140 my @rates = GetCurrencies();
141 $count = scalar @rates;
143 my @loop_currency = ();
144 for ( my $i = 0 ; $i < $count ; $i++ ) {
146 $line{currency} = $rates[$i]->{'currency'};
147 $line{rate} = $rates[$i]->{'rate'};
148 push @loop_currency, \%line;
151 # build itemtype list
152 my $itemtypes = GetItemTypes;
156 foreach my $thisitemtype (sort keys %$itemtypes) {
157 push @itemtypesloop, $itemtypes->{$thisitemtype}->{'itemtype'};
158 $itemtypesloop{$itemtypes->{$thisitemtype}->{'itemtype'}} = $itemtypes->{$thisitemtype}->{'description'};
161 my $CGIitemtype = CGI::scrolling_list(
163 -values => \@itemtypesloop,
164 -default => $data->{'itemtype'},
165 -labels => \%itemtypesloop,
171 # build branches list
172 my $onlymine=C4::Context->preference('IndependantBranches') &&
173 C4::Context->userenv &&
174 C4::Context->userenv->{flags}!=1 &&
175 C4::Context->userenv->{branch};
176 my $branches = GetBranches($onlymine);
178 foreach my $thisbranch ( sort keys %$branches ) {
180 value => $thisbranch,
181 branchname => $branches->{$thisbranch}->{'branchname'},
183 push @branchloop, \%row;
185 $template->param( branchloop => \@branchloop );
187 # build bookfund list
188 my $borrower= GetBorrower($loggedinuser);
189 my ( $flags, $homebranch )= ($borrower->{'flags'},$borrower->{'branchcode'});
194 my %select_bookfunds;
196 @bookfund = GetBookFunds($homebranch);
197 $count2 = scalar @bookfund;
199 for ( my $i = 0 ; $i < $count2 ; $i++ ) {
200 push @select_bookfund, $bookfund[$i]->{'bookfundid'};
201 $select_bookfunds{ $bookfund[$i]->{'bookfundid'} } =
202 $bookfund[$i]->{'bookfundname'};
204 my $CGIbookfund = CGI::scrolling_list(
206 -values => \@select_bookfund,
207 -default => $data->{'bookfundid'},
208 -labels => \%select_bookfunds,
217 $bookfundid = $data->{'bookfundid'};
218 $bookfundname = $select_bookfunds{$bookfundid};
222 my $CGIsort1 = buildCGIsort( "Asort1", "sort1", $data->{'sort1'} );
224 $template->param( CGIsort1 => $CGIsort1 );
227 $template->param( sort1 => $data->{'sort1'} );
230 my $CGIsort2 = buildCGIsort( "Asort2", "sort2", $data->{'sort2'} );
232 $template->param( CGIsort2 => $CGIsort2 );
235 $template->param( sort2 => $data->{'sort2'} );
240 #do a biblioitems lookup on bib
241 my @bibitems = GetBiblioItemByBiblioNumber($biblionumber);
242 my $bibitemscount = scalar @bibitems;
244 if ( $bibitemscount > 0 ) {
245 # warn "NEWBIBLIO: bibitems for $biblio exists\n";
249 for ( my $i = 0 ; $i < $bibitemscount ; $i++ ) {
251 $line{biblioitemnumber} = $bibitems[$i]->{'biblioitemnumber'};
252 $line{isbn} = $bibitems[$i]->{'isbn'};
253 $line{itemtype} = $bibitems[$i]->{'itemtype'};
254 $line{volumeddesc} = $bibitems[$i]->{'volumeddesc'};
255 push( @bibitemloop, \%line );
257 $template->param( bibitemloop => \@bibitemloop );
259 $template->param( bibitemexists => "1" );
265 bookfundid => $bookfundid,
266 bookfundname => $bookfundname
271 existing => $biblionumber,
273 basketno => $basketno,
274 booksellerid => $booksellerid,
275 suggestionid => $suggestionid,
276 biblionumber => $biblionumber,
277 biblioitemnumber => $data->{'biblioitemnumber'},
278 itemtype => $data->{'itemtype'},
279 discount => $booksellers[0]->{'discount'},
280 listincgst => $booksellers[0]->{'listincgst'},
281 listprice => $booksellers[0]->{'listprice'},
282 gstreg => $booksellers[0]->{'gstreg'},
283 invoiceinc => $booksellers[0]->{'invoiceincgst'},
284 invoicedisc => $booksellers[0]->{'invoicedisc'},
285 nocalc => $booksellers[0]->{'nocalc'},
286 name => $booksellers[0]->{'name'},
287 currency => $booksellers[0]->{'listprice'},
288 gstrate => C4::Context->preference("gist"),
289 loop_currencies => \@loop_currency,
290 orderexists => ( $new eq 'yes' ) ? 0 : 1,
291 title => $data->{'title'},
292 author => $data->{'author'},
293 copyrightdate => $data->{'copyrightdate'},
294 CGIitemtype => $CGIitemtype,
295 CGIbookfund => $CGIbookfund,
296 isbn => $data->{'isbn'},
297 seriestitle => $data->{'seriestitle'},
298 quantity => $data->{'quantity'},
299 listprice => $data->{'listprice'},
300 rrp => $data->{'rrp'},
301 total => $data->{ecost}*$data->{quantity},
302 invoice => $data->{'booksellerinvoicenumber'},
303 ecost => $data->{'ecost'},
304 notes => $data->{'notes'},
305 publishercode => $data->{'publishercode'},
306 # donation => $donation
309 output_html_with_http_headers $input, $cookie, $template->output;