use strict;
use CGI;
use C4::Context;
-use C4::Catalogue;
-use C4::Search;
+use C4::Input;
+use C4::Database;
use C4::Auth;
+use C4::Acquisition;
+use C4::Suggestions;
+use C4::Biblio;
+use C4::Search;
use C4::Output;
+use C4::Input;
+use C4::Koha;
use C4::Interface::CGI::Output;
-use C4::Database;
use HTML::Template;
my $input=new CGI;
-my $id=$input->param('id');
+my $booksellerid=$input->param('booksellerid');
my $title=$input->param('title');
my $author=$input->param('author');
my $copyright=$input->param('copyright');
-my ($count,@booksellers)=bookseller($id);
+my ($count,@booksellers)=bookseller($booksellerid);
my $ordnum=$input->param('ordnum');
my $biblio=$input->param('biblio');
-my $basket=$input->param('basket');
+my $basketno=$input->param('basketno');
+my $suggestionid = $input->param('suggestionid');
+my $close= $input->param('close');
my $data;
my $new;
my $dbh = C4::Context->dbh;
-if ($ordnum eq ''){
+if ($ordnum eq ''){ # create order
$new='yes';
- $ordnum=newordernum;
- if ($biblio) {
+# $ordnum=newordernum;
+ if ($biblio && !$suggestionid) {
+ $data=bibdata($biblio);
+ }
+ # get suggestion fields if applicable. If it's a subscription renewal, then the biblio already exists
+ # otherwise, retrieve suggestion information.
+ if ($suggestionid) {
+ if ($biblio) {
$data=bibdata($biblio);
+ } else {
+ $data = getsuggestion($suggestionid);
+ }
}
if ($data->{'title'} eq ''){
$data->{'title'}=$title;
$data->{'author'}=$author;
$data->{'copyrightdate'}=$copyright;
}
-}else {
+}else { #modify order
$data=getsingleorder($ordnum);
$biblio=$data->{'biblionumber'};
}
debug => 1,
});
-#my ($count2,$currencies)=getcurrencies;
+
+# get currencies (for change rates calcs if needed
my ($count,$rates)=getcurrencies();
my @loop_currency = ();
for (my $i=0;$i<$count;$i++){
push @loop_currency, \%line;
}
-my $query="Select itemtype,description from itemtypes order by description";
-my $sth=$dbh->prepare($query);
+# build itemtype list
+my $sth=$dbh->prepare("Select itemtype,description from itemtypes order by description");
$sth->execute;
my @itemtype;
my %itemtypes;
-push @itemtype, "";
-$itemtypes{''} = "Please choose";
while (my ($value,$lib) = $sth->fetchrow_array) {
push @itemtype, $value;
$itemtypes{$value}=$lib;
}
-
my $CGIitemtype=CGI::scrolling_list( -name => 'format',
-values => \@itemtype,
-default => $data->{'itemtype'},
-multiple => 0 );
$sth->finish;
-my @branches;
-my @select_branch;
-my %select_branches;
-my ($count2,@branches)=branches();
-for (my $i=0;$i<$count2;$i++){
- push @select_branch, $branches[$i]->{'branchcode'};#
- $select_branches{$branches[$i]->{'branchcode'}} = $branches[$i]->{'branchname'};
+# build branches list
+my $branches = getbranches;
+my @branchloop;
+foreach my $thisbranch (sort keys %$branches) {
+ my %row =(value => $thisbranch,
+ branchname => $branches->{$thisbranch}->{'branchname'},
+ );
+ push @branchloop, \%row;
}
-my $CGIbranch=CGI::scrolling_list( -name => 'branch',
- -values => \@select_branch,
- -default => $data->{'branchcode'},
- -labels => \%select_branches,
- -size => 1,
- -multiple => 0 );
+$template->param(branchloop =>\@branchloop);
-my $auto_barcode = C4::Context->boolean_preference("autoBarcode") || 0;
- # See whether barcodes should be automatically allocated.
- # Defaults to 0, meaning "no".
-my $barcode;
-if ($auto_barcode eq '1') {
- $sth=$dbh->prepare("Select max(barcode) from items");
- $sth->execute;
- my $data=$sth->fetchrow_hashref;
- $barcode = $data->{'barcode'}+1;
- $sth->finish;
-}
+# build bookfund list
+my $sthtemp = $dbh->prepare("Select flags, branchcode from borrowers where borrowernumber = ?");
+$sthtemp->execute($loggedinuser);
+my ($flags, $homebranch)=$sthtemp->fetchrow;
+my $count2;
my @bookfund;
my @select_bookfund;
my %select_bookfunds;
-($count2,@bookfund)=bookfunds();
+($count2,@bookfund)=bookfunds($homebranch);
for (my $i=0;$i<$count2;$i++){
push @select_bookfund, $bookfund[$i]->{'bookfundid'};
$select_bookfunds{$bookfund[$i]->{'bookfundid'}} = $bookfund[$i]->{'bookfundname'}
-labels => \%select_bookfunds,
-size => 1,
-multiple => 0 );
+my $bookfundname;
+my $bookfundid;
+if ($close){
+ $bookfundid=$data->{'bookfundid'};
+ $bookfundname= $select_bookfunds{$bookfundid};
+}
+
+#Build sort lists
+my $CGIsort1 = buildCGIsort("Asort1","sort1",$data->{'sort1'});
+if ($CGIsort1) {
+ $template->param(CGIsort1 => $CGIsort1);
+} else {
+ $template->param( sort1 => $data->{'sort1'});
+}
+
+my $CGIsort2 = buildCGIsort("Asort2","sort2",$data->{'sort2'});
+if ($CGIsort2) {
+ $template->param(CGIsort2 =>$CGIsort2);
+} else {
+ $template->param( sort2 => $data->{'sort2'});
+}
+
+# fill template
+$template->param( close=> $close, bookfundid=>$bookfundid, bookfundname=>$bookfundname) if ($close);
+
$template->param( existing => $biblio,
title => $title,
ordnum => $ordnum,
- basket => $basket,
- id => $id,
+ basketno => $basketno,
+ booksellerid => $booksellerid,
+ suggestionid => $suggestionid,
biblio => $biblio,
biblioitemnumber => $data->{'biblioitemnumber'},
itemtype => $data->{'itemtype'},
discount => $booksellers[0]->{'discount'},
- listincgst => $booksellers[0]->{'listincgst'},
+ listincgst => $booksellers[0]->{'listincgst'},
listprice => $booksellers[0]->{'listprice'},
gstreg => $booksellers[0]->{'gstreg'},
+ invoiceinc => $booksellers[0]->{'invoiceincgst'},
+ invoicedisc => $booksellers[0]->{'invoicedisc'},
+ nocalc => $booksellers[0]->{'nocalc'},
name => $booksellers[0]->{'name'},
currency => $booksellers[0]->{'listprice'},
gstrate => C4::Context->preference("gist") ,
author => $data->{'author'},
copyrightdate => $data->{'copyrightdate'},
CGIitemtype => $CGIitemtype,
- CGIbranch => $CGIbranch,
CGIbookfund => $CGIbookfund,
isbn => $data->{'isbn'},
seriestitle => $data->{'seriestitle'},
quantity => $data->{'quantity'},
listprice => $data->{'listprice'},
rrp => $data->{'rrp'},
+ invoice => $data->{'booksellerinvoicenumber'},
ecost => $data->{'ecost'},
notes => $data->{'notes'},
- barcode => $data->{'barcode'},);
+ publishercode => $data->{'publishercode'});
output_html_with_http_headers $input, $cookie, $template->output;
-