From 6a70ac7134125e64b5280d0b6a7f03cdaab0c6e0 Mon Sep 17 00:00:00 2001
From: Julian Maurice <julian.maurice@biblibre.com>
Date: Wed, 16 May 2018 09:30:42 +0200
Subject: [PATCH] Bug 15774: Show additional field values in edit form

---
 acqui/basketheader.pl                                  |  2 +-
 .../prog/en/modules/serials/subscription-add.tt        |  4 ++--
 serials/subscription-add.pl                            | 18 +++++++++++++++---
 3 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/acqui/basketheader.pl b/acqui/basketheader.pl
index da2129f..7b5b160 100755
--- a/acqui/basketheader.pl
+++ b/acqui/basketheader.pl
@@ -100,7 +100,7 @@ if ( $op eq 'add_form' ) {
         $template->param( is_an_edit => 1);
         $template->param(
             additional_field_values => { map {
-                $_->field->name => $_->value
+                $_->field->id => $_->value
             } Koha::Acquisition::Baskets->find($basketno)->additional_field_values },
         );
     } else {
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt
index 267a98c..10c6311 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-add.tt
@@ -437,9 +437,9 @@ fieldset.rows li.radio { width: 100%; } /* override staff-global.css */
                                 </ol>
                             </fieldset>
 
-                            [% IF additional_fields_for_subscription %]
+                            [% IF additional_fields %]
                                 <div id="subscription_additional_fields">
-                                    [% INCLUDE 'additional-fields-entry.inc' available=additional_fields_for_subscription values=additional_fields %]
+                                    [% INCLUDE 'additional-fields-entry.inc' available=additional_fields values=additional_field_values %]
                                 </div>
                             [% END %]
 
diff --git a/serials/subscription-add.pl b/serials/subscription-add.pl
index 1c10528..196c789 100755
--- a/serials/subscription-add.pl
+++ b/serials/subscription-add.pl
@@ -64,9 +64,9 @@ my $sub_on;
 my $subs;
 our $firstissuedate;
 
-if ($op eq 'modify' || $op eq 'dup' || $op eq 'modsubscription') {
+my $subscriptionid = $query->param('subscriptionid');
 
-    my $subscriptionid = $query->param('subscriptionid');
+if ($op eq 'modify' || $op eq 'dup' || $op eq 'modsubscription') {
     $subs = GetSubscription($subscriptionid);
 
     ## FIXME : Check rights to edit if mod. Could/Should display an error message.
@@ -134,7 +134,19 @@ $template->param(
     locations_loop=>$locations_loop,
 );
 
-$template->param( additional_fields_for_subscription => [ Koha::AdditionalFields->search( { tablename => 'subscription' } ) ] );
+my @additional_fields = Koha::AdditionalFields->search({ tablename => 'subscription' });
+my %additional_field_values;
+if ($subscriptionid) {
+    my $subscription = Koha::Subscriptions->find($subscriptionid);
+    foreach my $value ($subscription->additional_field_values) {
+        $additional_field_values{$value->field_id} = $value->value;
+    }
+}
+
+$template->param(
+    additional_fields => \@additional_fields,
+    additional_field_values => \%additional_field_values,
+);
 
 my $typeloop = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search_with_localization->unblessed } };
 
-- 
2.1.4