Bug 19030: Preserve link between order and subscription when editing an order
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 16 Apr 2018 20:41:42 +0000 (17:41 -0300)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 20 Apr 2018 15:23:52 +0000 (12:23 -0300)
The aqorders.subscriptionid info is not sent to the template when the
order is edited. Which means we lose this link.

Test plan:
Create an order from a subscription
Edit the order
=> Without this patch, the aqorders.subscriptionid value is set to NULL
and items are created when receiving serial.

=> With this patch applied the link is preserved and expected behaviors
are preserved during all the acquisition workflow

You should also try and create several orders from the same subscription

Sponsored-by: BULAC - http://www.bulac.fr/

Signed-off-by: Séverine QUEUNE <severine.queune@bulac.fr>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

acqui/neworderempty.pl
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/newordersubscription.tt

index 54feb36..6326eaf 100755 (executable)
@@ -108,7 +108,7 @@ my $suggestionid    = $input->param('suggestionid');
 my $close           = $input->param('close');
 my $uncertainprice  = $input->param('uncertainprice');
 my $import_batch_id = $input->param('import_batch_id'); # if this is filled, we come from a staged file, and we will return here after saving the order !
-my $subscriptionid  = $input->param('subscriptionid');
+my $from_subscriptionid  = $input->param('from_subscriptionid');
 my $data;
 my $new = 'no';
 
@@ -262,6 +262,10 @@ else {    #modify order
     $biblionumber = $data->{'biblionumber'};
     $budget_id = $data->{'budget_id'};
 
+    $template->param(
+        subscriptionid => $data->{subscriptionid},
+    );
+
     $basket   = GetBasket( $data->{'basketno'} );
     $basketno = $basket->{'basketno'};
 
@@ -358,8 +362,8 @@ if ($basketobj->effective_create_items eq 'ordering' && !$ordernumber) {
 my @itemtypes;
 @itemtypes = Koha::ItemTypes->search unless C4::Context->preference('item-level_itypes');
 
-if ( defined $subscriptionid ) {
-    my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $subscriptionid;
+if ( defined $from_subscriptionid ) {
+    my $lastOrderReceived = GetLastOrderReceivedFromSubscriptionid $from_subscriptionid;
     if ( defined $lastOrderReceived ) {
         $budget_id              = $lastOrderReceived->{budgetid};
         $data->{listprice}      = $lastOrderReceived->{listprice};
@@ -377,6 +381,8 @@ if ( defined $subscriptionid ) {
 
         $basket = GetBasket( $input->param('basketno') );
     }
+
+    $template->param( subscriptionid => $from_subscriptionid );
 }
 
 # Find the items.barcode subfield for barcode validations
@@ -457,7 +463,6 @@ $template->param(
     publishercode    => $data->{'publishercode'},
     barcode_subfield => $barcode_subfield,
     import_batch_id  => $import_batch_id,
-    subscriptionid   => $subscriptionid,
     acqcreate        => $basketobj->effective_create_items eq "ordering" ? 1 : "",
     users_ids        => join(':', @order_user_ids),
     users            => \@order_users,
index fd225b9..aad7d34 100644 (file)
@@ -70,7 +70,7 @@
                                     [% IF (sub.alreadyOnOrder) %]
                                         Outstanding order (only one order per subscription is allowed)
                                     [% ELSIF not sub.aqbooksellerid || booksellerid == sub.aqbooksellerid%]
-                                        <a href="/cgi-bin/koha/acqui/neworderempty.pl?booksellerid=[% booksellerid %]&amp;basketno=[% basketno %]&amp;biblionumber=[% sub.biblionumber %]&amp;subscriptionid=[% sub.subscriptionid %]" title="Order this one">
+                                        <a href="/cgi-bin/koha/acqui/neworderempty.pl?booksellerid=[% booksellerid %]&amp;basketno=[% basketno %]&amp;biblionumber=[% sub.biblionumber %]&amp;from_subscriptionid=[% sub.subscriptionid %]" title="Order this one">
                                             Order
                                         </a>
                                     [% ELSE %]