use C4::Items;
use C4::Suggestions;
use Koha::Biblios;
+use Koha::Acquisition::Baskets;
use Koha::Acquisition::Booksellers;
+use Koha::Acquisition::Orders;
use Koha::Libraries;
use C4::Letters qw/SendAlerts/;
use Date::Calc qw/Add_Delta_Days/;
use Koha::CsvProfiles;
use Koha::Patrons;
+use Koha::AdditionalFields;
+
=head1 NAME
basket.pl
foreach my $myorder (@orders){
my $biblionumber = $myorder->{'biblionumber'};
my $biblio = Koha::Biblios->find( $biblionumber );
- my $countbiblio = CountBiblioInOrders($biblionumber);
+ my $countbiblio = $biblio->active_orders->count;
my $ordernumber = $myorder->{'ordernumber'};
my $cnt_subscriptions = $biblio->subscriptions->count;
my $itemcount = $biblio->items->count;
$template->param( uncertainprices => 1 );
}
- $line->{tax_rate} = $line->{tax_rate_on_ordering};
- $line->{tax_value} = $line->{tax_value_on_ordering};
+ $line->{tax_rate} = $line->{tax_rate_on_ordering} // 0;
+ $line->{tax_value} = $line->{tax_value_on_ordering} // 0;
push @books_loop, $line;
$foot{$$line{tax_rate}}{tax_rate} = $$line{tax_rate};
- $foot{$$line{tax_rate}}{tax_value} += $$line{tax_value};
+ $foot{$$line{tax_rate}}{tax_value} += get_rounded_price($$line{tax_value});
$total_tax_value += $$line{tax_value};
- $foot{$$line{tax_rate}}{quantity} += $$line{quantity};
+ $foot{$$line{tax_rate}}{quantity} += get_rounded_price($$line{quantity});
$total_quantity += $$line{quantity};
$foot{$$line{tax_rate}}{total_tax_excluded} += $$line{total_tax_excluded};
$total_tax_excluded += $$line{total_tax_excluded};
has_budgets => $has_budgets,
duplinbatch => $duplinbatch,
csv_profiles => [ Koha::CsvProfiles->search({ type => 'sql', used_for => 'export_basket' }) ],
+ available_additional_fields => [ Koha::AdditionalFields->search( { tablename => 'aqbasket' } ) ],
+ additional_field_values => { map {
+ $_->field->name => $_->value
+ } Koha::Acquisition::Baskets->find($basketno)->additional_field_values->as_list },
);
}
$line{basketno} = $basketno;
$line{budget_name} = $budget->{budget_name};
- $line{total_tax_included} = $line{ecost_tax_included} * $line{quantity};
- $line{total_tax_excluded} = $line{ecost_tax_excluded} * $line{quantity};
+ # If we have an actual cost that should be the total, otherwise use the ecost
+ my $cost_tax_included = $line{unitprice_tax_included} || $line{ecost_tax_included};
+ my $cost_tax_excluded = $line{unitprice_tax_excluded} || $line{ecost_tax_excluded};
+ $line{total_tax_included} = get_rounded_price($cost_tax_included) * $line{quantity};
+ $line{total_tax_excluded} = get_rounded_price($cost_tax_excluded) * $line{quantity};
$line{tax_value} = $line{tax_value_on_ordering};
$line{tax_rate} = $line{tax_rate_on_ordering};
- if ( $line{uncertainprice} ) {
- $line{rrp_tax_excluded} .= ' (Uncertain)';
- }
if ( $line{'title'} ) {
my $volume = $order->{'volume'};
my $seriestitle = $order->{'seriestitle'};
my $biblionumber = $order->{'biblionumber'};
if ( $biblionumber ) { # The biblio still exists
my $biblio = Koha::Biblios->find( $biblionumber );
- my $countbiblio = CountBiblioInOrders($biblionumber);
+ my $countbiblio = $biblio->active_orders->count;
+
my $ordernumber = $order->{'ordernumber'};
my $cnt_subscriptions = $biblio->subscriptions->count;
my $itemcount = $biblio->items->count;
my $holds_count = $biblio->holds->count;
- my @items = GetItemnumbersFromOrder( $ordernumber );
- my $itemholds = $biblio->holds->search({ itemnumber => { -in => \@items } })->count;
+ my $order = Koha::Acquisition::Orders->find($ordernumber); # FIXME We should certainly do that at the beginning of this sub
+ my $items = $order->items;
+ my $itemholds = $biblio->holds->search({ itemnumber => { -in => [ $items->get_column('itemnumber') ] } })->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 && !($cnt_subscriptions) && !($holds_count);
- $line{items} = ($itemcount) - (scalar @items);
+ $line{can_del_bib} = 1 if $countbiblio <= 1 && $itemcount == $items->count && !($cnt_subscriptions) && !($holds_count);
+ $line{items} = $itemcount - $items->count;
$line{left_item} = 1 if $line{items} >= 1;
$line{left_biblio} = 1 if $countbiblio > 1;
$line{biblios} = $countbiblio - 1;