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?