use C4::Acquisition;
use C4::Budgets;
use C4::Bookseller qw( GetBookSellerFromId);
-use C4::Dates qw/format_date/;
use C4::Debug;
use C4::Biblio;
use C4::Members qw/GetMember/; #needed for permissions checking for changing basketgroup of a basket
use C4::Items;
+use C4::Suggestions;
+use Date::Calc qw/Add_Delta_Days/;
+
=head1 NAME
basket.pl
The basket number.
-=item supplierid
+=item booksellerid
the supplier this script have to display the basket.
my $query = new CGI;
my $basketno = $query->param('basketno');
-my $booksellerid = $query->param('supplierid');
+my $booksellerid = $query->param('booksellerid');
-my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user(
{
template_name => "acqui/basket.tmpl",
query => $query,
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
+# 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;
basketbooksellernote => $basket->{booksellernote},
basketcontractno => $basket->{contractnumber},
basketcontractname => $contract->{contractname},
- creationdate => format_date( $basket->{creationdate} ),
+ creationdate => $basket->{creationdate},
authorisedby => $basket->{authorisedby},
authorisedbyname => $basket->{authorisedbyname},
- closedate => format_date( $basket->{closedate} ),
+ closedate => $basket->{closedate},
active => $bookseller->{'active'},
booksellerid => $bookseller->{'id'},
name => $bookseller->{'name'},
-type => 'text/csv',
-attachment => 'basket' . $basket->{'basketno'} . '.csv',
);
- print GetBasketAsCSV($query->param('basketno'));
+ print GetBasketAsCSV($query->param('basketno'), $query);
exit;
} elsif ($op eq 'close') {
my $confirm = $query->param('confirm') || $confirm_pref eq '2';
$basketno =~ /^\d+$/ and CloseBasket($basketno);
# if requested, create basket group, close it and attach the basket
if ($query->param('createbasketgroup')) {
+ my $branchcode;
+ if(C4::Context->userenv and C4::Context->userenv->{'branch'}
+ and C4::Context->userenv->{'branch'} ne "NO_LIBRARY_SET") {
+ $branchcode = C4::Context->userenv->{'branch'};
+ }
my $basketgroupid = NewBasketgroup( { name => $basket->{basketname},
booksellerid => $booksellerid,
+ deliveryplace => $branchcode,
+ billingplace => $branchcode,
closed => 1,
});
ModBasket( { basketno => $basketno,
basketgroupid => $basketgroupid } );
print $query->redirect('/cgi-bin/koha/acqui/basketgroup.pl?booksellerid='.$booksellerid.'&closed=1');
} else {
- print $query->redirect('/cgi-bin/koha/acqui/booksellers.pl?supplierid=' . $booksellerid);
+ print $query->redirect('/cgi-bin/koha/acqui/booksellers.pl?booksellerid=' . $booksellerid);
}
exit;
} else {
}
unshift( @$basketgroups, \%emptygroup );
}
+
+ # if the basket is closed, calculate estimated delivery date
+ my $estimateddeliverydate;
+ if( $basket->{closedate} ) {
+ my ($year, $month, $day) = ($basket->{closedate} =~ /(\d+)-(\d+)-(\d+)/);
+ ($year, $month, $day) = Add_Delta_Days($year, $month, $day, $bookseller->{deliverytime});
+ $estimateddeliverydate = "$year-$month-$day";
+ }
+
# if new basket, pre-fill infos
$basket->{creationdate} = "" unless ( $basket->{creationdate} );
$basket->{authorisedby} = $loggedinuser unless ( $basket->{authorisedby} );
my $gist = $bookseller->{gstrate} // C4::Context->preference("gist") // 0;
$gist = 0 if $gist == 0.0000;
my $discount = $bookseller->{'discount'} / 100;
- my $total_rrp; # RRP Total, its value will be assigned to $total_rrp_gsti or $total_rrp_gste depending of $bookseller->{'listincgst'}
- my $total_rrp_gsti; # RRP Total, GST included
- my $total_rrp_gste; # RRP Total, GST excluded
- my $gist_rrp;
- my $total_rrp_est;
-
+ my $total_rrp = 0; # RRP Total, its value will be assigned to $total_rrp_gsti or $total_rrp_gste depending of $bookseller->{'listincgst'}
+ my $total_rrp_gsti = 0; # RRP Total, GST included
+ my $total_rrp_gste = 0; # RRP Total, GST excluded
+ my $gist_rrp = 0;
+ my $total_rrp_est = 0;
+
my $qty_total;
my @books_loop;
+ my $suggestion;
for my $order ( @results ) {
my $rrp = $order->{'listprice'} || 0;
$line{biblios} = $countbiblio - 1;
$line{left_subscription} = 1 if scalar @subscriptions >= 1;
$line{subscriptions} = scalar @subscriptions;
- $line{left_holds} = 1 if $holds >= 1;
+ ($holds >= 1) ? $line{left_holds} = 1 : $line{left_holds} = 0;
$line{left_holds_on_order} = 1 if $line{left_holds}==1 && ($line{items} == 0 || $itemholds );
$line{holds} = $holds;
$line{holds_on_order} = $itemholds?$itemholds:$holds if $line{left_holds_on_order};
} else {
$line{'title'} = "Deleted bibliographic notice, can't find title.";
}
+
+ $suggestion = GetSuggestionInfoFromBiblionumber($line{biblionumber});
+ $line{suggestionid} = $suggestion->{suggestionid};
+ $line{surnamesuggestedby} = $suggestion->{surnamesuggestedby};
+ $line{firstnamesuggestedby} = $suggestion->{firstnamesuggestedby};
+
push @books_loop, \%line;
}
my @orders = GetOrders($basketno);
my $borrower= GetMember('borrowernumber' => $loggedinuser);
- my $budgets = GetBudgetHierarchy(q{},$borrower->{branchcode},$borrower->{borrowernumber});
+ my $budgets = GetBudgetHierarchy;
my $has_budgets = 0;
foreach my $r (@{$budgets}) {
if (!defined $r->{budget_amount} || $r->{budget_amount} == 0) {
next;
}
+ next unless (CanUserUseBudget($loggedinuser, $r, $userflags));
+
$has_budgets = 1;
last;
}
basketbooksellernote => $basket->{booksellernote},
basketcontractno => $basket->{contractnumber},
basketcontractname => $contract->{contractname},
- creationdate => C4::Dates->new($basket->{creationdate},'iso')->output,
+ creationdate => $basket->{creationdate},
authorisedby => $basket->{authorisedby},
authorisedbyname => $basket->{authorisedbyname},
- closedate => C4::Dates->new($basket->{closedate},'iso')->output,
+ closedate => $basket->{closedate},
+ estimateddeliverydate=> $estimateddeliverydate,
active => $bookseller->{'active'},
booksellerid => $bookseller->{'id'},
name => $bookseller->{'name'},
- entrydate => C4::Dates->new($results[0]->{'entrydate'},'iso')->output,
books_loop => \@books_loop,
cancelledorders_loop => \@cancelledorders,
gist_rate => sprintf( "%.2f", $gist * 100 ) . '%',