UPDATE aqorders
SET quantity = ?,
orderstatus = 'partial'|;
- $query .= q|, order_internalnote = ?| if defined $order->{order_internalnote};
$query .= q| WHERE ordernumber = ?|;
my $sth = $dbh->prepare($query);
$sth->execute(
( $is_standing ? 1 : ($order->{quantity} - $quantrec) ),
- ( defined $order->{order_internalnote} ? $order->{order_internalnote} : () ),
$order->{ordernumber}
);
+ if ( not $order->{subscriptionid} && defined $order->{order_internalnote} ) {
+ $dbh->do(q|UPDATE aqorders
+ SET order_internalnote = ?|, {}, $order->{order_internalnote});
+ }
+
# Recalculate tax_value
$dbh->do(q|
UPDATE aqorders
option => $_ + 0.0
}, split( '\|', C4::Context->preference("gist") );
+my $order_internalnote = $order->{order_internalnote};
+my $order_vendornote = $order->{order_vendornote};
if ( $order->{subscriptionid} ) {
# Order from a subscription, we will display an history of what has been received
my $orders = Koha::Acquisition::Orders->search(
ordernumber => { '!=' => $order->{ordernumber} }
}
);
- $template->param( orders => $orders );
+ if ( $order->{parent_ordernumber} != $order->{ordernumber} ) {
+ my $parent_order = Koha::Acquisition::Orders->find($order->{parent_ordernumber});
+ $order_internalnote = $parent_order->{order_internalnote};
+ $order_vendornote = $parent_order->{order_vendornote};
+ }
+ $template->param(
+ orders => $orders,
+ );
}
$template->param(
invoiceid => $invoice->{invoiceid},
invoice => $invoice->{invoicenumber},
datereceived => $datereceived,
- order_internalnote => $order->{order_internalnote},
- order_vendornote => $order->{order_vendornote},
+ order_internalnote => $order_internalnote,
+ order_vendornote => $order_vendornote,
suggestionid => $suggestion->{suggestionid},
surnamesuggestedby => $suggestion->{surnamesuggestedby},
firstnamesuggestedby => $suggestion->{firstnamesuggestedby},
use POSIX qw(strftime);
-use Test::More tests => 72;
+use Test::More tests => 73;
use t::lib::Mocks;
use Koha::Database;
is ($received_order->{replacementprice},'16.120000',"Replacement price set if none passed in");
};
+subtest 'ModReceiveOrder and subscription' => sub {
+ plan tests => 2;
+
+ my $builder = t::lib::TestBuilder->new;
+ my $first_note = 'first note';
+ my $second_note = 'second note';
+ my $subscription = $builder->build_object( { class => 'Koha::Subscriptions' } );
+ my $order = $builder->build_object(
+ {
+ class => 'Koha::Acquisition::Orders',
+ value => {
+ subscriptionid => $subscription->subscriptionid,
+ order_internalnote => $first_note,
+ quantity => 5,
+ quantityreceived => 0,
+ }
+ }
+ );
+ my $order_info = $order->unblessed;
+ # We do not want the note from the original note to be modified
+ # Keeping it will permit to display it for future receptions
+ $order_info->{order_internalnote} = $second_note;
+ my ( undef, my $received_ordernumber ) = ModReceiveOrder(
+ {
+ biblionumber => $order->biblionumber,
+ order => $order_info,
+ invoice => $order->{invoiceid},
+ quantityreceived => 1,
+ budget_id => $order->budget_id,
+ }
+ );
+ my $received_order = Koha::Acquisition::Orders->find($received_ordernumber);
+ is( $received_order->order_internalnote,
+ $second_note, "No price set if none passed in" );
+
+ $order->get_from_storage;
+ is( $order->get_from_storage->order_internalnote, $first_note );
+};
+
$schema->storage->txn_rollback();