+=back
+
+=cut
+
+my $query = new CGI;
+my $basketno = $query->param('basketno');
+my $booksellerid = $query->param('supplierid');
+
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+ {
+ template_name => "acqui/basket.tmpl",
+ query => $query,
+ type => "intranet",
+ authnotrequired => 0,
+ flagsrequired => { acquisition => 'order_manage' },
+ debug => 1,
+ }
+);
+
+my $basket = GetBasket($basketno);
+
+# FIXME : what about the "discount" percentage?
+# FIXME : the query->param('supplierid') below is probably useless. The bookseller is always known from the basket
+# if no booksellerid in parameter, get it from basket
+# warn "=>".$basket->{booksellerid};
+$booksellerid = $basket->{booksellerid} unless $booksellerid;
+my ($bookseller) = GetBookSellerFromId($booksellerid);
+my $op = $query->param('op');
+
+if ( $op eq 'delete_confirm' ) {
+ my $basketno = $query->param('basketno');
+ DelBasket($basketno);
+ $template->param( delete_confirmed => 1 );
+} elsif ( !$bookseller ) {
+ $template->param( NO_BOOKSELLER => 1 );
+} elsif ( $op eq 'del_basket') {
+ $template->param( delete_confirm => 1 );
+ if ( C4::Context->preference("IndependantBranches") ) {
+ my $userenv = C4::Context->userenv;
+ unless ( $userenv->{flags} == 1 ) {
+ my $validtest = ( $basket->{creationdate} eq '' )
+ || ( $userenv->{branch} eq $basket->{branch} )
+ || ( $userenv->{branch} eq '' )
+ || ( $basket->{branch} eq '' );
+ unless ($validtest) {
+ print $query->redirect("../mainpage.pl");
+ exit 1;
+ }
+ }
+ }
+ $basket->{creationdate} = "" unless ( $basket->{creationdate} );
+ $basket->{authorisedby} = $loggedinuser unless ( $basket->{authorisedby} );
+ my $contract = &GetContract($basket->{contractnumber});
+ my $count = scalar GetOrders( $basketno);
+ $template->param(
+ basketno => $basketno,
+ basketname => $basket->{'basketname'},
+ basketnote => $basket->{note},
+ basketbooksellernote => $basket->{booksellernote},
+ basketcontractno => $basket->{contractnumber},
+ basketcontractname => $contract->{contractname},
+ creationdate => format_date( $basket->{creationdate} ),
+ authorisedby => $basket->{authorisedby},
+ authorisedbyname => $basket->{authorisedbyname},
+ closedate => format_date( $basket->{closedate} ),
+ active => $bookseller->{'active'},
+ booksellerid => $bookseller->{'id'},
+ name => $bookseller->{'name'},
+ address1 => $bookseller->{'address1'},
+ address2 => $bookseller->{'address2'},
+ address3 => $bookseller->{'address3'},
+ address4 => $bookseller->{'address4'},
+ count => $count,
+ );
+} elsif ($op eq 'attachbasket' && $template->{'param_map'}->{'CAN_user_acquisition_group_manage'} == 1) {
+ print $query->redirect('/cgi-bin/koha/acqui/basketgroup.pl?basketno=' . $basket->{'basketno'} . '&op=attachbasket&booksellerid=' . $booksellerid);
+ # check if we have to "close" a basket before building page
+} elsif ($op eq 'export') {
+ print $query->header(
+ -type => 'text/csv',
+ -attachment => 'basket' . $basket->{'basketno'} . '.csv',
+ );
+ print GetBasketAsCSV($query->param('basketno'));
+ exit;
+} elsif ($op eq 'close') {
+ my $confirm = $query->param('confirm');
+ if ($confirm) {
+ my $basketno = $query->param('basketno');
+ my $booksellerid = $query->param('booksellerid');
+ $basketno =~ /^\d+$/ and CloseBasket($basketno);
+ # if requested, create basket group, close it and attach the basket
+ if ($query->param('createbasketgroup')) {
+ my $basketgroupid = NewBasketgroup( { name => $basket->{basketname},
+ booksellerid => $booksellerid,
+ closed => 1,
+ });
+ ModBasket( { basketno => $basketno,
+ basketgroupid => $basketgroupid } );
+ print $query->redirect('/cgi-bin/koha/acqui/basketgroup.pl?booksellerid='.$booksellerid);
+ } else {
+ print $query->redirect('/cgi-bin/koha/acqui/basketgroup.pl?basketno='.$basketno.'&op=attachbasket&booksellerid=' . $booksellerid);
+ }
+ exit;
+ } else {
+ $template->param(confirm_close => "1",
+ booksellerid => $booksellerid,
+ basketno => $basket->{'basketno'},
+ basketname => $basket->{'basketname'},
+ basketgroupname => $basket->{'basketname'});
+
+ }
+} elsif ($query->param('op') eq 'reopen') {
+ my $basket;
+ $basket->{basketno} = $query->param('basketno');
+ $basket->{closedate} = undef;
+ ModBasket($basket);
+ print $query->redirect('/cgi-bin/koha/acqui/basket.pl?basketno='.$basket->{'basketno'})