@@ -, +, @@
The note should be visible on the Mod Order Details screen,
but it isn't there.
The note is visible on the Mod Order Details screen.
---
C4/Acquisition.pm | 26 +++++++++++---------
acqui/finishreceive.pl | 3 ++-
.../prog/en/modules/acqui/orderreceive.tt | 2 +-
t/db_dependent/Acquisition.t | 13 +++++++---
4 files changed, 27 insertions(+), 17 deletions(-)
--- a/C4/Acquisition.pm
+++ a/C4/Acquisition.pm
@@ -1438,7 +1438,7 @@ C<$ordernumber>.
sub ModReceiveOrder {
my (
$biblionumber, $ordernumber, $quantrec, $user, $cost, $ecost,
- $invoiceid, $rrp, $budget_id, $datereceived, $received_items
+ $invoiceid, $rrp, $budget_id, $datereceived, $received_items, $notes
)
= @_;
@@ -1466,14 +1466,15 @@ q{SELECT * FROM aqorders WHERE biblionumber=? AND aqorders.ordernumber=?},
# 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'} );
@@ -1494,11 +1495,14 @@ q{SELECT * FROM aqorders WHERE biblionumber=? AND aqorders.ordernumber=?},
}
}
} 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);
}
--- a/acqui/finishreceive.pl
+++ a/acqui/finishreceive.pl
@@ -53,7 +53,7 @@ my $booksellerid = $input->param('booksellerid');
my $cnt = 0;
my $ecost = $input->param('ecost');
my $rrp = $input->param('rrp');
-my $note = $input->param("note");
+my $notes = $input->param("notes");
my $bookfund = $input->param("bookfund");
my $order = GetOrder($ordernumber);
my $new_ordernumber = $ordernumber;
@@ -112,6 +112,7 @@ if ($quantityrec > $origquantityrec ) {
$bookfund,
$datereceived,
\@received_items,
+ $notes,
);
}
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt
@@ -329,7 +329,7 @@
[% ELSE %]
[% END %]
-
+
--- a/t/db_dependent/Acquisition.t
+++ a/t/db_dependent/Acquisition.t
@@ -8,7 +8,7 @@ use POSIX qw(strftime);
use C4::Bookseller qw( GetBookSellerFromId );
-use Test::More tests => 68;
+use Test::More tests => 71;
BEGIN {
use_ok('C4::Acquisition');
@@ -793,13 +793,15 @@ is(
( $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' );
@@ -816,7 +818,7 @@ my $budgetid2 = C4::Budgets::AddBudget(
( $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'},
@@ -824,6 +826,8 @@ 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' );
@@ -833,12 +837,13 @@ is( $neworder->{'budget_id'}, $budgetid2, 'Budget on new order is changed' );
( $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' );
--