From b7b015b8c41f6a4509732fa5a07f49903a679437 Mon Sep 17 00:00:00 2001
From: Jonathan Druart <jonathan.druart@biblibre.com>
Date: Wed, 5 Mar 2014 13:23:07 +0100
Subject: [PATCH] [SIGNED OFF] Bug 11699: ModReceiveOrder should take a
hashref in parameter
Test plan:
prove t/db_dependent/Acquisition.t
prove t/db_dependent/Acquisition/Invoices.t
prove t/db_dependent/Acquisition/OrderFromSubscription.t
all should return green.
NOTE: Any error messages are the same between master and this
patch, and are unrelated to the added/revised tests.
Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
---
C4/Acquisition.pm | 34 +++++++--
acqui/finishreceive.pl | 28 +++----
t/db_dependent/Acquisition.t | 80 ++++++++++----------
t/db_dependent/Acquisition/Invoices.t | 66 ++++++++--------
t/db_dependent/Acquisition/OrderFromSubscription.t | 13 +++-
5 files changed, 124 insertions(+), 97 deletions(-)
diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm
index c79529b..c9cb5b7 100644
--- a/C4/Acquisition.pm
+++ b/C4/Acquisition.pm
@@ -1417,8 +1417,20 @@ sub GetCancelledOrders {
=head3 ModReceiveOrder
- &ModReceiveOrder($biblionumber, $ordernumber, $quantityreceived, $user,
- $cost, $ecost, $invoiceid, rrp, budget_id, datereceived, \@received_itemnumbers);
+ &ModReceiveOrder({
+ biblionumber => $biblionumber,
+ ordernumber => $ordernumber,
+ quantityreceived => $quantityreceived,
+ user => $user,
+ cost => $cost,
+ ecost => $ecost,
+ invoiceid => $invoiceid,
+ rrp => rrp,
+ budget_id => budget_id,
+ datereceived => datereceived,
+ received_itemnumbers => \@received_itemnumbers,
+ notes => $notes,
+ );
Updates an order, to reflect the fact that it was received, at least
in part. All arguments not mentioned below update the fields with the
@@ -1433,11 +1445,19 @@ C<$ordernumber>.
sub ModReceiveOrder {
- my (
- $biblionumber, $ordernumber, $quantrec, $user, $cost, $ecost,
- $invoiceid, $rrp, $budget_id, $datereceived, $received_items, $notes
- )
- = @_;
+ my ( $params ) = @_;
+ my $biblionumber = $params->{biblionumber};
+ my $ordernumber = $params->{ordernumber};
+ my $quantrec = $params->{quantityreceived};
+ my $user = $params->{user};
+ my $cost = $params->{cost};
+ my $ecost = $params->{ecost};
+ my $invoiceid = $params->{invoiceid};
+ my $rrp = $params->{rrp};
+ my $budget_id = $params->{budget_id};
+ my $datereceived = $params->{datereceived};
+ my $received_items = $params->{received_items};
+ my $notes = $params->{notes};
my $dbh = C4::Context->dbh;
$datereceived = C4::Dates->output('iso') unless $datereceived;
diff --git a/acqui/finishreceive.pl b/acqui/finishreceive.pl
index f1f9a09..6887094 100755
--- a/acqui/finishreceive.pl
+++ b/acqui/finishreceive.pl
@@ -100,20 +100,20 @@ if ($quantityrec > $origquantityrec ) {
# save the quantity received.
if ( $quantityrec > 0 ) {
- ($datereceived, $new_ordernumber) = ModReceiveOrder(
- $biblionumber,
- $ordernumber,
- $quantityrec,
- $user,
- $order->{unitprice},
- $order->{ecost},
- $invoiceid,
- $order->{rrp},
- $bookfund,
- $datereceived,
- \@received_items,
- $notes,
- );
+ ($datereceived, $new_ordernumber) = ModReceiveOrder({
+ biblionumber => $biblionumber,
+ ordernumber => $ordernumber,
+ quantityreceived => $quantityrec,
+ user => $user,
+ cost => $order->{unitprice},
+ ecost => $order->{ecost},
+ invoiceid => $invoiceid,
+ rrp => $order->{rrp},
+ budget_id => $bookfund,
+ datereceived => $datereceived,
+ received_items => \@received_items,
+ notes => $notes,
+ } );
}
# now, add items if applicable
diff --git a/t/db_dependent/Acquisition.t b/t/db_dependent/Acquisition.t
index 1d5e503..76739d4 100755
--- a/t/db_dependent/Acquisition.t
+++ b/t/db_dependent/Acquisition.t
@@ -158,20 +158,18 @@ my $invoiceid = AddInvoice(
unknown => "unknown"
);
-my ($datereceived, $new_ordernumber) = ModReceiveOrder(
- $biblionumber2,
- $ordernumber2,
- 2,
- undef,
- 12,
- 12,
- $invoiceid,
- 42,
- undef,
- undef,
- undef,
- "my notes",
- );
+my ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
+ {
+ biblionumber => $biblionumber2,
+ ordernumber => $ordernumber2,
+ quantityreceived => 2,
+ cost => 12,
+ ecost => 12,
+ invoiceid => $invoiceid,
+ rrp => 42,
+ notes => "my notes",
+ }
+);
my $order2 = GetOrder( $ordernumber2 );
is($order2->{'quantityreceived'}, 0, 'Splitting up order did not receive any on original order');
is($order2->{'quantity'}, 40, '40 items on original order');
@@ -190,20 +188,19 @@ my $budgetid2 = C4::Budgets::AddBudget(
}
);
-($datereceived, $new_ordernumber) = ModReceiveOrder(
- $biblionumber2,
- $ordernumber3,
- 2,
- undef,
- 12,
- 12,
- $invoiceid,
- 42,
- $budgetid2,
- undef,
- undef,
- "my other notes",
- );
+( $datereceived, $new_ordernumber ) = ModReceiveOrder(
+ {
+ biblionumber => $biblionumber2,
+ ordernumber => $ordernumber3,
+ quantityreceived => 2,
+ cost => 12,
+ ecost => 12,
+ invoiceid => $invoiceid,
+ rrp => 42,
+ budget_id => $budgetid2,
+ notes => "my other notes",
+ }
+);
my $order3 = GetOrder( $ordernumber3 );
is($order3->{'quantityreceived'}, 0, 'Splitting up order did not receive any on original order');
@@ -216,20 +213,19 @@ is($neworder->{'quantity'}, 2, '2 items on new order');
is($neworder->{'quantityreceived'}, 2, 'Splitting up order received items on new order');
is($neworder->{'budget_id'}, $budgetid2, 'Budget on new order is changed');
-($datereceived, $new_ordernumber) = ModReceiveOrder(
- $biblionumber2,
- $ordernumber3,
- 2,
- undef,
- 12,
- 12,
- $invoiceid,
- 42,
- $budgetid2,
- undef,
- undef,
- "my third notes",
- );
+( $datereceived, $new_ordernumber ) = ModReceiveOrder(
+ {
+ biblionumber => $biblionumber2,
+ ordernumber => $ordernumber3,
+ quantityreceived => 2,
+ cost => 12,
+ ecost => 12,
+ invoiceid => $invoiceid,
+ rrp => 42,
+ budget_id => $budgetid2,
+ notes => "my third notes",
+ }
+);
$order3 = GetOrder( $ordernumber3 );
is($order3->{'quantityreceived'}, 2, 'Order not split up');
diff --git a/t/db_dependent/Acquisition/Invoices.t b/t/db_dependent/Acquisition/Invoices.t
index 78b7cfb..3b86a54 100644
--- a/t/db_dependent/Acquisition/Invoices.t
+++ b/t/db_dependent/Acquisition/Invoices.t
@@ -87,39 +87,41 @@ my $invoiceid2 = AddInvoice(invoicenumber => 'invoice2', booksellerid => $bookse
shipmentdate => '2012-12-24',
);
-my ($datereceived, $new_ordernumber) = ModReceiveOrder(
- $biblionumber1,
- $ordernumber1,
- 2,
- undef,
- 12,
- 12,
- $invoiceid1,
- 42
- );
-
-($datereceived, $new_ordernumber) = ModReceiveOrder(
- $biblionumber2,
- $ordernumber2,
- 1,
- undef,
- 5,
- 5,
- $invoiceid2,
- 42
- );
-
-($datereceived, $new_ordernumber) = ModReceiveOrder(
- $biblionumber3,
- $ordernumber3,
- 1,
- undef,
- 12,
- 12,
- $invoiceid2,
- 42
- );
+my ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
+ {
+ biblionumber => $biblionumber1,
+ ordernumber => $ordernumber1,
+ quantityreceived => 2,
+ cost => 12,
+ ecost => 12,
+ invoiceid => $invoiceid1,
+ rrp => 42
+ }
+);
+
+( $datereceived, $new_ordernumber ) = ModReceiveOrder(
+ {
+ biblionumber => $biblionumber2,
+ ordernumber => $ordernumber2,
+ quantityreceived => 1,
+ cost => 5,
+ ecost => 5,
+ invoiceid => $invoiceid2,
+ rrp => 42
+ }
+);
+( $datereceived, $new_ordernumber ) = ModReceiveOrder(
+ {
+ biblionumber => $biblionumber3,
+ ordernumber => $ordernumber3,
+ quantityreceived => 1,
+ cost => 12,
+ ecost => 12,
+ invoiceid => $invoiceid2,
+ rrp => 42
+ }
+);
my $invoice1 = GetInvoiceDetails($invoiceid1);
my $invoice2 = GetInvoiceDetails($invoiceid2);
diff --git a/t/db_dependent/Acquisition/OrderFromSubscription.t b/t/db_dependent/Acquisition/OrderFromSubscription.t
index 60b1d3a..12ca9a4 100644
--- a/t/db_dependent/Acquisition/OrderFromSubscription.t
+++ b/t/db_dependent/Acquisition/OrderFromSubscription.t
@@ -83,8 +83,17 @@ is ( $order->{subscriptionid}, $subscription->{subscriptionid}, "test subscripti
ok( $order->{ecost} == $cost, "test cost for the last order not received");
my ( $datereceived, $new_ordernumber ) = ModReceiveOrder(
- $biblionumber, $ordernumber, 1, undef, $cost, $cost,
- undef, $cost, $budget_id, '02-01-2013', undef);
+ {
+ biblionumber => $biblionumber,
+ ordernumber => $ordernumber,
+ quantityreceived => 1,
+ cost => $cost,
+ ecost => $cost,
+ rrp => $cost,
+ budget_id => $budget_id,
+ datereceived => '02-01-2013'
+ }
+);
$order = GetLastOrderReceivedFromSubscriptionid( $subscription->{subscriptionid} );
is ( $order->{subscriptionid}, $subscription->{subscriptionid}, "test subscriptionid for the last order received");
--
1.7.9.5