-my ( $order, $bookseller, $tmpl_infos );
-# FIXME = see http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=5335#c52
-#if ( defined $subscriptionid ) {
-# my $lastOrderNotReceived = GetLastOrderNotReceivedFromSubscriptionid $subscriptionid;
-# my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $subscriptionid;
-# if ( defined $lastOrderNotReceived ) {
-# my $basket = GetBasket $lastOrderNotReceived->{basketno};
-# my $bookseller = GetBookSellerFromId $basket->{booksellerid};
-# ( $tmpl_infos->{valuegsti_ordered}, $tmpl_infos->{valuegste_ordered} ) = get_value_with_gst_params ( $lastOrderNotReceived->{ecost}, $lastOrderNotReceived->{gstrate}, $bookseller );
-# $tmpl_infos->{valuegsti_ordered} = sprintf( "%.2f", $tmpl_infos->{valuegsti_ordered} );
-# $tmpl_infos->{valuegste_ordered} = sprintf( "%.2f", $tmpl_infos->{valuegste_ordered} );
-# $tmpl_infos->{budget_name_ordered} = GetBudgetName $lastOrderNotReceived->{budget_id};
-# $tmpl_infos->{basketno} = $lastOrderNotReceived->{basketno};
-# $tmpl_infos->{ordered_exists} = 1;
-# }
-# if ( defined $lastOrderReceived ) {
-# my $basket = GetBasket $lastOrderReceived->{basketno};
-# my $bookseller = GetBookSellerFromId $basket->{booksellerid};
-# ( $tmpl_infos->{valuegsti_spent}, $tmpl_infos->{valuegste_spent} ) = get_value_with_gst_params ( $lastOrderReceived->{unitprice}, $lastOrderReceived->{gstrate}, $bookseller );
-# $tmpl_infos->{valuegsti_spent} = sprintf( "%.2f", $tmpl_infos->{valuegsti_spent} );
-# $tmpl_infos->{valuegste_spent} = sprintf( "%.2f", $tmpl_infos->{valuegste_spent} );
-# $tmpl_infos->{budget_name_spent} = GetBudgetName $lastOrderReceived->{budget_id};
-# $tmpl_infos->{invoicenumber} = $lastOrderReceived->{booksellerinvoicenumber};
-# $tmpl_infos->{spent_exists} = 1;
-# }
-#}
+my $subscription_object = Koha::Subscriptions->find( $subscriptionid );
+$template->param(
+ available_additional_fields => [ Koha::AdditionalFields->search( { tablename => 'subscription' } ) ],
+ additional_field_values => {
+ map { $_->field->name => $_->value }
+ $subscription_object->additional_field_values->as_list
+ },
+);
+
+# FIXME Do we want to hide canceled orders?
+my $orders = Koha::Acquisition::Orders->search( { subscriptionid => $subscriptionid }, { order_by => [ { -desc => 'timestamp' }, \[ "field(orderstatus, 'ordered', 'partial', 'complete')" ] ] } );
+my $orders_grouped;
+while ( my $o = $orders->next ) {
+ if ( $o->ordernumber == $o->parent_ordernumber ) {
+ $orders_grouped->{$o->parent_ordernumber}->{datereceived} = $o->datereceived;
+ $orders_grouped->{$o->parent_ordernumber}->{orderstatus} = $o->orderstatus;
+ $orders_grouped->{$o->parent_ordernumber}->{basket} = $o->basket;
+ }
+ $orders_grouped->{$o->parent_ordernumber}->{quantity} += $o->quantity;
+ $orders_grouped->{$o->parent_ordernumber}->{ecost_tax_excluded} += sprintf('%.2f', $o->ecost_tax_excluded * $o->quantity);
+ $orders_grouped->{$o->parent_ordernumber}->{ecost_tax_included} += sprintf('%.2f', $o->ecost_tax_included * $o->quantity);
+ $orders_grouped->{$o->parent_ordernumber}->{unitprice_tax_excluded} += sprintf('%.2f', $o->unitprice_tax_excluded * $o->quantity);
+ $orders_grouped->{$o->parent_ordernumber}->{unitprice_tax_included} += sprintf('%.2f', $o->unitprice_tax_included * $o->quantity);
+ push @{$orders_grouped->{$o->parent_ordernumber}->{orders}}, $o;
+}