diff --git a/C4/Serials.pm b/C4/Serials.pm
index 3298b06cd9..0c60da5e3f 100644
--- a/C4/Serials.pm
+++ b/C4/Serials.pm
@@ -645,6 +645,8 @@ sub SearchSubscriptions {
$subscription->{additional_fields} = { map { $_->field->name => $_->value }
$subscription_object->additional_field_values->as_list };
+ #FIXME: The above $subscription->{additional_fields} may be redundant. Remove if so.
+ $subscription->{additional_field_values} = $subscription_object->get_additional_field_values_for_template;
}
return wantarray ? @{$results} : { results => $results, total => $total_results };
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-advsearch.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/serials-advsearch.inc
index 4a685642d4..e25dabb998 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/serials-advsearch.inc
+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/serials-advsearch.inc
@@ -58,7 +58,7 @@
[% END %]
- [% INCLUDE 'additional-fields-entry.inc' available=additional_fields_for_subscription values=additional_field_filters wrap_fieldset=0 %]
+ [% INCLUDE 'additional-fields-entry.inc' available=additional_fields_for_subscription values=additional_field_filters wrap_fieldset=0 search_form=1 %]
[% IF ( mana ) %]
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt
index 798644d3c2..8b98eebc7e 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/claims.tt
@@ -167,13 +167,7 @@
[% missingissue.claimdate | $KohaDates %]
|
- [% FOR field IN additional_fields_for_subscription %]
- [% IF field.authorised_value_category %]
- [% AuthorisedValues.GetByCode( field.authorised_value_category, missingissue.additional_fields.${field.name} ) | html %] |
- [% ELSE %]
- [% missingissue.additional_fields.${field.name} | html %] |
- [% END %]
- [% END %]
+ [% INCLUDE 'additional-fields-display.inc' available=additional_fields_for_subscription values=missingissue.additional_field_values value_only=1 is_table_cell=1 %]
[% END # /FOREACH missingissue %]
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt
index 6463a4043e..b7b3cc62ca 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt
@@ -122,13 +122,7 @@
[% END %]
- [% FOR field IN additional_fields_for_subscription %]
- [% IF field.authorised_value_category %]
- [% AuthorisedValues.GetByCode( field.authorised_value_category, subscription.additional_fields.${field.name} ) | html %] |
- [% ELSE %]
- [% subscription.additional_fields.${field.name} | html %] |
- [% END %]
- [% END %]
+ [% INCLUDE 'additional-fields-display.inc' available=additional_fields_for_subscription values=subscription.additional_field_values value_only=1 is_table_cell=1 %]
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 d69cf8df4f..f169a58274 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
@@ -594,6 +594,7 @@ fieldset.rows table { clear: none; margin: 0; }
[% Asset.js("js/subscription-add.js") | $raw %]
[% Asset.js("js/showpredictionpattern.js") | $raw %]
+ [% Asset.js("js/additional-fields-entry.js") | $raw %]
[% END %]
[% INCLUDE 'intranet-bottom.inc' %]
diff --git a/serials/claims.pl b/serials/claims.pl
index 5b5479f749..363541fedf 100755
--- a/serials/claims.pl
+++ b/serials/claims.pl
@@ -86,6 +86,9 @@ if ($supplierid) {
foreach my $issue (@missingissues) {
$issue->{cannot_claim} = 1
unless C4::Serials::can_claim_subscription($issue);
+
+ $issue->{additional_field_values} =
+ Koha::Subscriptions->find( $issue->{subscriptionid} )->get_additional_field_values_for_template;
}
$template->param( suppliername => $supplier->name );
}
diff --git a/serials/subscription-add.pl b/serials/subscription-add.pl
index 13a57ecb91..b9c66eae22 100755
--- a/serials/subscription-add.pl
+++ b/serials/subscription-add.pl
@@ -132,17 +132,12 @@ $template->param(
);
my @additional_fields = Koha::AdditionalFields->search({ tablename => 'subscription' })->as_list;
-my %additional_field_values;
-if ($subscriptionid) {
- my $subscription = Koha::Subscriptions->find($subscriptionid);
- foreach my $value ($subscription->additional_field_values->as_list) {
- $additional_field_values{$value->field_id} = $value->value;
- }
-}
+my @additional_field_values;
+@additional_field_values = Koha::Subscriptions->find($subscriptionid)->get_additional_field_values_for_template if $subscriptionid;
$template->param(
- additional_fields => \@additional_fields,
- additional_field_values => \%additional_field_values,
+ additional_fields => \@additional_fields,
+ additional_field_values => @additional_field_values,
);
my $typeloop = { map { $_->{itemtype} => $_ } @{ Koha::ItemTypes->search_with_localization->unblessed } };
@@ -368,11 +363,13 @@ sub redirect_add_subscription {
my $biblio = Koha::Biblios->find($biblionumber);
my $subscription_fields = Koha::AdditionalFields->search({ tablename => 'subscription' });
while ( my $field = $subscription_fields->next ) {
- my $value = $query->param('additional_field_' . $field->id);
- push @additional_fields, {
- id => $field->id,
- value => $value,
- };
+ my @field_values = $query->param( 'additional_field_' . $field->id );
+ foreach my $value (@field_values) {
+ push @additional_fields, {
+ id => $field->id,
+ value => $value,
+ } if $value;
+ }
}
Koha::Subscriptions->find($subscriptionid)->set_additional_fields(\@additional_fields);
@@ -482,11 +479,13 @@ sub redirect_mod_subscription {
my $biblio = Koha::Biblios->find($biblionumber);
my $subscription_fields = Koha::AdditionalFields->search({ tablename => 'subscription' });
while ( my $field = $subscription_fields->next ) {
- my $value = $query->param('additional_field_' . $field->id);
- push @additional_fields, {
- id => $field->id,
- value => $value,
- };
+ my @field_values = $query->param( 'additional_field_' . $field->id );
+ foreach my $value (@field_values) {
+ push @additional_fields, {
+ id => $field->id,
+ value => $value,
+ } if $value;
+ }
}
Koha::Subscriptions->find($subscriptionid)->set_additional_fields(\@additional_fields);
diff --git a/serials/subscription-detail.pl b/serials/subscription-detail.pl
index 55c7a65ae4..8140feb8c2 100755
--- a/serials/subscription-detail.pl
+++ b/serials/subscription-detail.pl
@@ -125,7 +125,7 @@ my $subscription = Koha::Subscriptions->find( $subscriptionid );
$template->param(
available_additional_fields => Koha::AdditionalFields->search( { tablename => 'subscription' } ),
- additional_field_values => { map { $_->field->name => $_->value } $subscription->additional_field_values->as_list },
+ additional_field_values => $subscription->get_additional_field_values_for_template,
);
# FIXME Do we want to hide canceled orders?
|