use CGI;
use C4::Acquisition;
use C4::Budgets;
+use C4::Branch;
use C4::Bookseller qw( GetBookSellerFromId);
use C4::Debug;
use C4::Biblio;
);
my $basket = GetBasket($basketno);
+$booksellerid = $basket->{booksellerid} unless $booksellerid;
+my ($bookseller) = GetBookSellerFromId($booksellerid);
+
+unless (CanUserManageBasket($loggedinuser, $basket, $userflags)) {
+ $template->param(
+ cannot_manage_basket => 1,
+ basketno => $basketno,
+ basketname => $basket->{basketname},
+ booksellerid => $booksellerid,
+ name => $bookseller->{name}
+ );
+ output_html_with_http_headers $query, $cookie, $template->output;
+ exit;
+}
# FIXME : what about the "discount" percentage?
# FIXME : the query->param('booksellerid') 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 (!defined $op) {
$op = q{};
}
exit;
} else {
- $template->param(confirm_close => "1",
- booksellerid => $booksellerid,
- basketno => $basket->{'basketno'},
- basketname => $basket->{'basketname'},
- basketgroupname => $basket->{'basketname'});
-
+ $template->param(
+ confirm_close => "1",
+ booksellerid => $booksellerid,
+ basketno => $basket->{'basketno'},
+ basketname => $basket->{'basketname'},
+ basketgroupname => $basket->{'basketname'},
+ );
}
} elsif ($op eq 'reopen') {
- my $basket;
- $basket->{basketno} = $query->param('basketno');
- $basket->{closedate} = undef;
- ModBasket($basket);
+ ReopenBasket($query->param('basketno'));
print $query->redirect('/cgi-bin/koha/acqui/basket.pl?basketno='.$basket->{'basketno'})
+} elsif ( $op eq 'mod_users' ) {
+ my $basketusers_ids = $query->param('basketusers_ids');
+ my @basketusers = split( /:/, $basketusers_ids );
+ ModBasketUsers($basketno, @basketusers);
+ print $query->redirect("/cgi-bin/koha/acqui/basket.pl?basketno=$basketno");
+ exit;
+} elsif ( $op eq 'mod_branch' ) {
+ my $branch = $query->param('branch');
+ $branch = undef if(defined $branch and $branch eq '');
+ ModBasket({
+ basketno => $basket->{basketno},
+ branch => $branch
+ });
+ print $query->redirect("/cgi-bin/koha/acqui/basket.pl?basketno=$basketno");
+ exit;
} else {
+ my @branches_loop;
# get librarian branch...
if ( C4::Context->preference("IndependentBranches") ) {
my $userenv = C4::Context->userenv;
exit 1;
}
}
+ if (!defined $basket->{branch} or $basket->{branch} eq $userenv->{branch}) {
+ push @branches_loop, {
+ branchcode => $userenv->{branch},
+ branchname => $userenv->{branchname},
+ selected => 1,
+ };
+ }
+ } else {
+ # get branches
+ my $branches = C4::Branch::GetBranches;
+ my @branchcodes = sort {
+ $branches->{$a}->{branchname} cmp $branches->{$b}->{branchname}
+ } keys %$branches;
+ foreach my $branch (@branchcodes) {
+ my $selected = 0;
+ if (defined $basket->{branch}) {
+ $selected = 1 if $branch eq $basket->{branch};
+ } else {
+ $selected = 1 if $branch eq C4::Context->userenv->{branch};
+ }
+ push @branches_loop, {
+ branchcode => $branch,
+ branchname => $branches->{$branch}->{branchname},
+ selected => $selected
+ };
+ }
}
+
#if the basket is closed,and the user has the permission to edit basketgroups, display a list of basketgroups
my ($basketgroup, $basketgroups);
- my $member = GetMember(borrowernumber => $loggedinuser);
- if ($basket->{closedate} && haspermission({ acquisition => 'group_manage'} )) {
+ my $staffuser = GetMember(borrowernumber => $loggedinuser);
+ if ($basket->{closedate} && haspermission($staffuser->{userid}, { acquisition => 'group_manage'} )) {
$basketgroups = GetBasketgroups($basket->{booksellerid});
for my $bg ( @{$basketgroups} ) {
if ($basket->{basketgroupid} && $basket->{basketgroupid} == $bg->{id}){
"loggedinuser: $loggedinuser; creationdate: %s; authorisedby: %s",
$basket->{creationdate}, $basket->{authorisedby};
+ my @basketusers_ids = GetBasketUsers($basketno);
+ my @basketusers;
+ foreach my $basketuser_id (@basketusers_ids) {
+ my $basketuser = GetMember(borrowernumber => $basketuser_id);
+ push @basketusers, $basketuser if $basketuser;
+ }
+
#to get active currency
my $cur = GetCurrency();
my @orders = GetOrders($basketno);
if ($basket->{basketgroupid}){
- my $basketgroup = GetBasketgroup($basket->{basketgroupid});
- for my $key (keys %$basketgroup ){
- $basketgroup->{"basketgroup$key"} = delete $basketgroup->{$key};
- }
- $basketgroup->{basketgroupdeliveryplace} = C4::Branch::GetBranchName( $basketgroup->{basketgroupdeliveryplace} );
- $basketgroup->{basketgroupbillingplace} = C4::Branch::GetBranchName( $basketgroup->{basketgroupbillingplace} );
- $template->param(%$basketgroup);
+ $basketgroup = GetBasketgroup($basket->{basketgroupid});
+ $basketgroup->{deliveryplacename} = C4::Branch::GetBranchName( $basketgroup->{deliveryplace} );
+ $basketgroup->{billingplacename} = C4::Branch::GetBranchName( $basketgroup->{billingplace} );
}
my $borrower= GetMember('borrowernumber' => $loggedinuser);
my $budgets = GetBudgetHierarchy;
last;
}
- my @cancelledorders = GetCancelledOrders($basketno);
- foreach (@cancelledorders) {
- $_->{'line_total'} = sprintf("%.2f", $_->{'ecost'} * $_->{'quantity'});
- }
-
$template->param(
basketno => $basketno,
basketname => $basket->{'basketname'},
+ basketbranchname => C4::Branch::GetBranchName($basket->{branch}),
basketnote => $basket->{note},
basketbooksellernote => $basket->{booksellernote},
basketcontractno => $basket->{contractnumber},
basketcontractname => $contract->{contractname},
+ branches_loop => \@branches_loop,
creationdate => $basket->{creationdate},
authorisedby => $basket->{authorisedby},
authorisedbyname => $basket->{authorisedbyname},
+ basketusers_ids => join(':', @basketusers_ids),
+ basketusers => \@basketusers,
closedate => $basket->{closedate},
estimateddeliverydate=> $estimateddeliverydate,
deliveryplace => C4::Branch::GetBranchName( $basket->{deliveryplace} ),
name => $bookseller->{'name'},
books_loop => \@books_loop,
book_foot_loop => \@book_foot_loop,
- cancelledorders_loop => \@cancelledorders,
+ cancelledorders_loop => \@cancelledorders_loop,
total_quantity => $total_quantity,
total_gste => sprintf( "%.2f", $total_gste ),
total_gsti => sprintf( "%.2f", $total_gsti ),
$line{surnamesuggestedby} = $$suggestion{surnamesuggestedby};
$line{firstnamesuggestedby} = $$suggestion{firstnamesuggestedby};
+ foreach my $key (qw(transferred_from transferred_to)) {
+ if ($line{$key}) {
+ my $order = GetOrder($line{$key});
+ my $basket = GetBasket($order->{basketno});
+ my $bookseller = GetBookSellerFromId($basket->{booksellerid});
+ $line{$key} = {
+ order => $order,
+ basket => $basket,
+ bookseller => $bookseller,
+ timestamp => $line{$key . '_timestamp'},
+ };
+ }
+ }
+
return \%line;
}