sub ModReceiveOrder {
my (
$biblionumber, $ordernumber, $quantrec, $user, $cost, $ecost,
- $invoiceid, $rrp, $budget_id, $datereceived, $received_items
+ $invoiceid, $rrp, $budget_id, $datereceived, $received_items, $notes
)
= @_;
# without received items (the quantity is decreased),
# the second part is a new order line with quantity=quantityrec
# (entirely received)
- my $sth=$dbh->prepare("
+ my $query = q|
UPDATE aqorders
SET quantity = ?,
- orderstatus = 'partial'
- WHERE ordernumber = ?
- ");
+ orderstatus = 'partial'|;
+ $query .= q|, notes = ?| if defined $notes;
+ $query .= q| WHERE ordernumber = ?|;
+ my $sth = $dbh->prepare($query);
- $sth->execute($order->{quantity} - $quantrec, $ordernumber);
+ $sth->execute($order->{quantity} - $quantrec, ( defined $notes ? $notes : () ), $ordernumber);
delete $order->{'ordernumber'};
$order->{'budget_id'} = ( $budget_id || $order->{'budget_id'} );
}
}
} else {
- my $sth=$dbh->prepare("update aqorders
- set quantityreceived=?,datereceived=?,invoiceid=?,
- unitprice=?,rrp=?,ecost=?,budget_id=?,orderstatus='complete'
- where biblionumber=? and ordernumber=?");
- $sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$budget_id,$biblionumber,$ordernumber);
+ my $query = q|
+ update aqorders
+ set quantityreceived=?,datereceived=?,invoiceid=?,
+ unitprice=?,rrp=?,ecost=?,budget_id=?,orderstatus='complete'|;
+ $query .= q|, notes = ?| if defined $notes;
+ $query .= q| where biblionumber=? and ordernumber=?|;
+ my $sth = $dbh->prepare( $query );
+ $sth->execute($quantrec,$datereceived,$invoiceid,$cost,$rrp,$ecost,$budget_id,( defined $notes ? $notes : () ),$biblionumber,$ordernumber);
}
return ($datereceived, $new_ordernumber);
}
use C4::Bookseller qw( GetBookSellerFromId );
-use Test::More tests => 68;
+use Test::More tests => 71;
BEGIN {
use_ok('C4::Acquisition');
( $datereceived, $new_ordernumber ) =
ModReceiveOrder( $biblionumber2, $ordernumbers[1], 2, undef, 12, 12,
- $invoiceid, 42, );
+ $invoiceid, 42, undef, undef, undef, "my notes");
my $order2 = GetOrder( $ordernumbers[1] );
is( $order2->{'quantityreceived'},
0, 'Splitting up order did not receive any on original order' );
is( $order2->{'quantity'}, 40, '40 items on original order' );
is( $order2->{'budget_id'}, $budgetid,
'Budget on original order is unchanged' );
+is( $order2->{notes}, "my notes",
+ 'ModReceiveOrder and GetOrder deal with notes' );
$neworder = GetOrder($new_ordernumber);
is( $neworder->{'quantity'}, 2, '2 items on new order' );
( $datereceived, $new_ordernumber ) =
ModReceiveOrder( $biblionumber2, $ordernumbers[2], 2, undef, 12, 12,
- $invoiceid, 42, $budgetid2 );
+ $invoiceid, 42, $budgetid2, undef, undef, "my other notes" );
my $order3 = GetOrder( $ordernumbers[2] );
is( $order3->{'quantityreceived'},
is( $order3->{'quantity'}, 2, '2 items on original order' );
is( $order3->{'budget_id'}, $budgetid,
'Budget on original order is unchanged' );
+is( $order3->{notes}, "my other notes",
+ 'ModReceiveOrder and GetOrder deal with notes' );
$neworder = GetOrder($new_ordernumber);
is( $neworder->{'quantity'}, 2, '2 items on new order' );
( $datereceived, $new_ordernumber ) =
ModReceiveOrder( $biblionumber2, $ordernumbers[2], 2, undef, 12, 12,
- $invoiceid, 42, $budgetid2 );
+ $invoiceid, 42, $budgetid2, undef, undef, "my third notes" );
$order3 = GetOrder( $ordernumbers[2] );
is( $order3->{'quantityreceived'}, 2, 'Order not split up' );
is( $order3->{'quantity'}, 2, '2 items on order' );
is( $order3->{'budget_id'}, $budgetid2, 'Budget has changed' );
+is( $order3->{notes}, "my third notes", 'ModReceiveOrder and GetOrder deal with notes' );
my $nonexistent_order = GetOrder();
is( $nonexistent_order, undef, 'GetOrder returns undef if no ordernumber is given' );