Bug 10028: fix how ModReceiveOrder() calls NewOrder()
authorJonathan Druart <jonathan.druart@biblibre.com>
Thu, 11 Apr 2013 10:00:45 +0000 (12:00 +0200)
committerGalen Charlton <gmc@esilibrary.com>
Fri, 16 Aug 2013 16:57:52 +0000 (16:57 +0000)
In C4::Acquisition::ModReceiveOrder, a call to NewOrder is badly used.

NewOrder returns ($basketno, $ordernumber) but in ModReceiveOrder the
ordernumber is got with
  my $ordernumber = NewOrder( $args );

It works because:
sub t{
    return ("a", "b");
}
my $a = t();
say $a;

Will display 'b'.

But it is not really clear.

Test plan:
Check that there is no regression for partial receives.

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
C4/Acquisition.pm

index 1a210b5..74aae85 100644 (file)
@@ -1355,7 +1355,8 @@ sub ModReceiveOrder {
         $order->{'rrp'} = $rrp;
         $order->{ecost} = $ecost;
         $order->{'orderstatus'} = 3;    # totally received
-        $new_ordernumber = NewOrder($order);
+        my $basketno;
+        ( $basketno, $new_ordernumber ) = NewOrder($order);
 
         if ($received_items) {
             foreach my $itemnumber (@$received_items) {