-my ( $order, $bookseller, $tmpl_infos );
-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->{invoiceid} = $lastOrderReceived->{invoiceid};
- $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;