</div>
</div>
- [% IF orders.count %]
+ [% IF orders_grouped.size %]
<div id="acquisition_details">
<h2>Acquisition details</h2>
<table id="orders">
</tr>
</thead>
<tbody>
- [% FOR order IN orders %]
- [% IF order.parent_ordernumber != order.ordernumber %]
- <tr data-tt-id="[% order.ordernumber | html %]" data-tt-parent-id="[% order.parent_ordernumber | html %]">
- [% ELSE %]
- <tr data-tt-id="[% order.parent_ordernumber | html %]">
- [% END %]
+ [% FOR ordernumber IN orders_grouped.keys %]
+ [% SET parent_tree_id = loop.count %]
+ [% SET parent_order = orders_grouped.$ordernumber %]
+ <tr data-tt-id="[% parent_tree_id | html %]" class="highlighted-row">
+ <td></td> [%# invoice %]
+ <td>
+ [% IF CAN_user_acquisition_order_manage %]
+ <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% order.basket.basketno | uri %]">[% parent_order.basket.basketname | html %] ([% parent_order.basket.basketno | html %])</a>
+ [% ELSE %]
+ [% parent_order.basket.basketname | html %] ([% parent_order.basket.basketno | html %])
+ [% END %]
+ </td>
+ <td></td> [%# ordernumber %]
+ <td>[% parent_order.basket.creationdate | $KohaDates %]</td>
+ <td>[% parent_order.datereceived | $KohaDates %]</td>
+ <td>
+ [% SWITCH parent_order.orderstatus %]
+ [% CASE 'new' %]<span title="status_1">New</span>
+ [% CASE 'ordered' %]<span title="status_2">Ordered</span>
+ [% CASE 'partial' %]<span title="status_3">Partial</span>
+ [% CASE 'complete' %]<span title="status_4">Complete</span>
+ [% CASE 'cancelled' %]<span title="status_5">Cancelled</span>
+ [% END %]
+ </td>
+ <td></td> [%# internalnote %]
+ <td></td> [%# vendornote %]
+ <td></td> [%# fund %]
+ <td>[% parent_order.quantity | html %]</td>
+ <td>[% parent_order.ecost_tax_excluded | $Price %] / [% parent_order.ecost_tax_included | $Price %]</td>
+ <td>[% parent_order.unitprice_tax_excluded | $Price %] / [% parent_order.unitprice_tax_included | $Price %]</td>
+ </tr>
+ [% FOR order IN parent_order.orders %]
+ <tr data-tt-id="0" data-tt-parent-id="[% parent_tree_id | html %]">
<td>
[% IF order.invoice %]
[% IF CAN_user_acquisition %]
[% END %]
[% END %]
</td>
- <td>[% IF CAN_user_acquisition_order_manage %]
- <a href="/cgi-bin/koha/acqui/basket.pl?basketno=[% order.basketno | uri %]">[% order.basket.basketname | html %] ([% order.basketno | html %])</a>
- [% ELSE %]
- [% order.basket.basketname | html %] ([% order.basketno | html %])
- [% END %]</td>
+ <td></td> [%# basket %]
<td>[% order.ordernumber | html %]</td>
<td><span title="[% order.basket.creationdate | uri %]">[% order.basket.creationdate | $KohaDates%]</span></td>
<td>[% IF order.datereceived %]<span title="[% order.datereceived | uri %]">[% order.datereceived | $KohaDates %]</span>[% END %]</td>
[% END %]
</td>
</tr>
+ [% END %]
[% END %]
</tbody>
</table>
$template->param( additional_fields_for_subscription => $additional_fields );
# FIXME Do we want to hide canceled orders?
-my $orders = Koha::Acquisition::Orders->search( { subscriptionid => $subscriptionid }, { order_by => { -desc => 'parent_ordernumber' } } );
+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;
+}
$template->param(
subscriptionid => $subscriptionid,
intranetcolorstylesheet => C4::Context->preference('intranetcolorstylesheet'),
irregular_issues => scalar @irregular_issues,
default_bib_view => $default_bib_view,
- orders => $orders,
+ orders_grouped => $orders_grouped,
(uc(C4::Context->preference("marcflavour"))) => 1,
);