use Date::Calc qw/Add_Delta_Days/;
use Koha::Database;
use Koha::EDI qw( create_edi_order get_edifact_ean );
+use Koha::CsvProfiles;
=head1 NAME
=cut
-my $query = new CGI;
+our $query = new CGI;
our $basketno = $query->param('basketno');
-my $ean = $query->param('ean');
-my $booksellerid = $query->param('booksellerid');
+our $ean = $query->param('ean');
+our $booksellerid = $query->param('booksellerid');
my $duplinbatch = $query->param('duplinbatch');
-my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user(
+our ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user(
{
template_name => "acqui/basket.tt",
query => $query,
}
);
-my $basket = GetBasket($basketno);
+our $basket = GetBasket($basketno);
$booksellerid = $basket->{booksellerid} unless $booksellerid;
my $bookseller = Koha::Acquisition::Booksellers->find( $booksellerid );
my $schema = Koha::Database->new()->schema();
# warn "=>".$basket->{booksellerid};
my $op = $query->param('op') // 'list';
-my $confirm_pref= C4::Context->preference("BasketConfirmations") || '1';
+our $confirm_pref= C4::Context->preference("BasketConfirmations") || '1';
$template->param( skip_confirm_reopen => 1) if $confirm_pref eq '2';
my @messages;
my @cannotdelbiblios ;
foreach my $myorder (@orders){
my $biblionumber = $myorder->{'biblionumber'};
+ my $biblio = Koha::Biblios->find( $biblionumber );
my $countbiblio = CountBiblioInOrders($biblionumber);
my $ordernumber = $myorder->{'ordernumber'};
my $subscriptions = scalar GetSubscriptionsId ($biblionumber);
- my $itemcount = GetItemsCount($biblionumber);
+ my $itemcount = $biblio->items->count;
my $error;
if ($countbiblio == 0 && $itemcount == 0 && $subscriptions == 0) {
$error = DelBiblio($myorder->{biblionumber}) }
}
# delete the basket
DelBasket($basketno,);
- $template->param( delete_confirmed => 1 );
+ $template->param(
+ delete_confirmed => 1,
+ name => $bookseller->name,
+ booksellerid => $booksellerid,
+ );
} elsif ( !$bookseller ) {
$template->param( NO_BOOKSELLER => 1 );
} elsif ($op eq 'export') {
-type => 'text/csv',
-attachment => 'basket' . $basket->{'basketno'} . '.csv',
);
- print GetBasketAsCSV($query->param('basketno'), $query);
+ if ( $query->param('csv_profile') eq 'default'){
+ print GetBasketAsCSV($query->param('basketno'), $query);
+ } else {
+ my $csv_profile_id = $query->param('csv_profile');
+ print GetBasketAsCSV($query->param('basketno'), $query, $csv_profile_id);
+ }
exit;
} elsif ($op eq 'email') {
my $err = eval {
unclosable => @orders ? $basket->{is_standing} : 1,
has_budgets => $has_budgets,
duplinbatch => $duplinbatch,
+ csv_profiles => [ Koha::CsvProfiles->search({ type => 'sql', used_for => 'export_basket' }) ],
);
}
}
my $biblionumber = $order->{'biblionumber'};
- my $biblio = Koha::Biblios->find( $biblionumber );
- my $countbiblio = CountBiblioInOrders($biblionumber);
- my $ordernumber = $order->{'ordernumber'};
- my @subscriptions = GetSubscriptionsId ($biblionumber);
- my $itemcount = GetItemsCount($biblionumber);
- my $holds_count = $biblio->holds->count;
- my @items = GetItemnumbersFromOrder( $ordernumber );
- my $itemholds;
- foreach my $item (@items){
- my $nb = GetItemHolds($biblionumber, $item);
- if ($nb){
- $itemholds += $nb;
- }
+ if ( $biblionumber ) { # The biblio still exists
+ my $biblio = Koha::Biblios->find( $biblionumber );
+ my $countbiblio = CountBiblioInOrders($biblionumber);
+ my $ordernumber = $order->{'ordernumber'};
+ my @subscriptions = GetSubscriptionsId ($biblionumber);
+ my $itemcount = $biblio->items->count;
+ my $holds_count = $biblio->holds->count;
+ my @items = GetItemnumbersFromOrder( $ordernumber );
+ my $itemholds = $biblio->holds->search({ itemnumber => { -in => \@items } })->count;
+
+ # if the biblio is not in other orders and if there is no items elsewhere and no subscriptions and no holds we can then show the link "Delete order and Biblio" see bug 5680
+ $line{can_del_bib} = 1 if $countbiblio <= 1 && $itemcount == scalar @items && !(@subscriptions) && !($holds_count);
+ $line{items} = ($itemcount) - (scalar @items);
+ $line{left_item} = 1 if $line{items} >= 1;
+ $line{left_biblio} = 1 if $countbiblio > 1;
+ $line{biblios} = $countbiblio - 1;
+ $line{left_subscription} = 1 if scalar @subscriptions >= 1;
+ $line{subscriptions} = scalar @subscriptions;
+ ($holds_count >= 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_count;
+ $line{holds_on_order} = $itemholds?$itemholds:$holds_count if $line{left_holds_on_order};
}
- # if the biblio is not in other orders and if there is no items elsewhere and no subscriptions and no holds we can then show the link "Delete order and Biblio" see bug 5680
- $line{can_del_bib} = 1 if $countbiblio <= 1 && $itemcount == scalar @items && !(@subscriptions) && !($holds_count);
- $line{items} = ($itemcount) - (scalar @items);
- $line{left_item} = 1 if $line{items} >= 1;
- $line{left_biblio} = 1 if $countbiblio > 1;
- $line{biblios} = $countbiblio - 1;
- $line{left_subscription} = 1 if scalar @subscriptions >= 1;
- $line{subscriptions} = scalar @subscriptions;
- ($holds_count >= 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_count;
- $line{holds_on_order} = $itemholds?$itemholds:$holds_count if $line{left_holds_on_order};
my $suggestion = GetSuggestionInfoFromBiblionumber($line{biblionumber});