@@ -, +, @@ Koha::Acq::Orders->search equivalent - GetLastOrderReceivedFromSubscriptionid - GetLastOrderNotReceivedFromSubscriptionid --- acqui/neworderempty.pl | 15 +++++++++++++-- t/db_dependent/Acquisition/OrderFromSubscription.t | 17 +++++++++++++---- 2 files changed, 26 insertions(+), 6 deletions(-) --- a/acqui/neworderempty.pl +++ a/acqui/neworderempty.pl @@ -355,8 +355,19 @@ my @itemtypes; @itemtypes = Koha::ItemTypes->search unless C4::Context->preference('item-level_itypes'); if ( defined $from_subscriptionid ) { - my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $from_subscriptionid; - if ( defined $lastOrderReceived ) { + # Get the last received order for this subscription + my $lastOrderReceived = Koha::Acquisition::Orders->search( + { + subscriptionid => $from_subscriptionid, + datereceived => { '!=' => undef } + }, + { + order_by => + [ { -desc => 'datereceived' }, { -desc => 'ordernumber' } ] + } + ); + if ( $lastOrderReceived->count ) { + $lastOrderReceived = $lastOrderReceived->next->unblessed; # FIXME We should send the object to the template $budget_id = $lastOrderReceived->{budgetid}; $data->{listprice} = $lastOrderReceived->{listprice}; $data->{uncertainprice} = $lastOrderReceived->{uncertainprice}; --- a/t/db_dependent/Acquisition/OrderFromSubscription.t +++ a/t/db_dependent/Acquisition/OrderFromSubscription.t @@ -79,7 +79,7 @@ my $ordernumber = $order->ordernumber; my $is_currently_on_order = subscriptionCurrentlyOnOrder( $subscription->{subscriptionid} ); is ( $is_currently_on_order, 1, "The subscription is currently on order"); -$order = GetLastOrderNotReceivedFromSubscriptionid( $subscription->{subscriptionid} ); +$order = Koha::Acquisition::Orders->search({ subscriptionid => $subscription->{subscriptionid}, datereceived => undef })->next->unblessed; is ( $order->{subscriptionid}, $subscription->{subscriptionid}, "test subscriptionid for the last order not received"); ok( $order->{ecost} == $cost, "test cost for the last order not received"); @@ -99,12 +99,21 @@ my ( $datereceived, $new_ordernumber ) = ModReceiveOrder( } ); -$order = GetLastOrderReceivedFromSubscriptionid( $subscription->{subscriptionid} ); +$order = Koha::Acquisition::Orders->search( + { + subscriptionid => $subscriptionid, + datereceived => { '!=' => undef } + }, + { + order_by => [ { -desc => 'datereceived' }, { -desc => 'ordernumber' } ] + } +)->next->unblessed; + is ( $order->{subscriptionid}, $subscription->{subscriptionid}, "test subscriptionid for the last order received"); ok( $order->{ecost} == $cost, "test cost for the last order received"); -$order = GetLastOrderNotReceivedFromSubscriptionid( $subscription->{subscriptionid} ); -is ( $order, undef, "test no not received order for a received order"); +$order = Koha::Acquisition::Orders->search({ subscriptionid => $subscription->{subscriptionid}, datereceived => undef }); +is ( $order->count, 0, "test no not received order for a received order"); my @invoices = GetInvoices(); my @invoices_linked_to_subscriptions = grep { $_->{is_linked_to_subscriptions} } @invoices; --