Bugzilla – Attachment 75332 Details for
Bug 11844
Additional fields for order lines
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 11844: Use additional fields for order lines
Bug-11844-Use-additional-fields-for-order-lines.patch (text/plain), 27.69 KB, created by
Julian Maurice
on 2018-05-15 13:47:52 UTC
(
hide
)
Description:
Bug 11844: Use additional fields for order lines
Filename:
MIME Type:
Creator:
Julian Maurice
Created:
2018-05-15 13:47:52 UTC
Size:
27.69 KB
patch
obsolete
>From 7999ab565a0703165d554269600e20717355d8ea Mon Sep 17 00:00:00 2001 >From: Julian Maurice <julian.maurice@biblibre.com> >Date: Wed, 5 Feb 2014 11:12:21 +0100 >Subject: [PATCH] Bug 11844: Use additional fields for order lines > >This patch allows to create additional fields for order lines. >Once created, these fields can be filled during order line creation or >modification. > >If additional field is linked to a MARC field, there are two possible >scenario: >- MARC field mode = get: The field cannot be modified and its value is > retrieved from the bibliographic record (current behaviour) >- MARC field mode = set: The field can be modified and its value is > saved to the bibliographic record (new behaviour) > >If additional field is linked to an authorised value category, then >authorised values are used. If not directly linked to an authorised >value category, but linked to a MARC field, a search for an AV category >is made on MARC default framework. > >This patch doesn't display additional fields value anywhere (except in >order line creation/modification). Future patches will do that. > >Test plan: >1/ Go to Acquisitions home >2/ In the left menu, click on "Add order line fields" >3/ Click on "New field" button >4/ Give the field a name (unique), no AV category and no MARC field. >5/ Save. >6/ Create 5 other fields: > a/ no AV category, a MARC field not linked to AV category, MARC field > mode = get > b/ no AV category, a MARC field not linked to AV category, MARC field > mode = set > c/ no AV category, a MARC field linked to AV category, MARC field > mode = get > d/ no AV category, a MARC field linked to AV category, MARC field > mode = set > e/ an AV category, no MARC field >7/ Create everything you need to be able to create order lines > (supplier, basket, ...) >8/ Create an order line. At bottom of the page, you should see your > additional fields, with authorised values dropdrown list for fields > (c), (d) and (e). Fields (a) and (c) should be disabled. >9/ Fill these fields with some data and save order line >10/ check that data was correctly saved into biblio for fields (b) and > (d), but not for (a) and (c) >11/ modify the same order line, check that values you've filled are > correctly retrieved and that values for (a) and (c) were correctly > retrieved from the bibliographic record >12/ modify all values, save, and check biblio once again > >Signed-off-by: Harold Dramer <harold.dramer@nyls.edu> >--- > C4/Acquisition.pm | 21 +++++++--- > Koha/Acquisition/Order.pm | 2 +- > Koha/AdditionalField.pm | 19 +++++++++ > Koha/Object/Mixin/AdditionalFields.pm | 32 ++++++++++++++ > Koha/Schema/Result/Aqorder.pm | 16 +++++++ > acqui/addorder.pl | 15 +++++++ > acqui/neworderempty.pl | 24 +++++++++++ > admin/additional-fields.pl | 3 ++ > installer/data/mysql/atomicupdate/bug_11844.perl | 12 ++++++ > .../prog/en/includes/additional-fields-entry.inc | 49 ++++++++++------------ > .../en/includes/additional-fields-fieldset.inc | 6 +++ > .../prog/en/modules/acqui/basketheader.tt | 4 +- > .../prog/en/modules/acqui/histsearch.tt | 2 +- > .../prog/en/modules/acqui/neworderempty.tt | 6 +++ > .../prog/en/modules/admin/additional-fields.tt | 26 +++++++++++- > .../prog/en/modules/serials/serials-search.tt | 2 +- > .../prog/en/modules/serials/subscription-add.tt | 4 +- > serials/subscription-add.pl | 14 ------- > 18 files changed, 204 insertions(+), 53 deletions(-) > create mode 100644 installer/data/mysql/atomicupdate/bug_11844.perl > create mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/additional-fields-fieldset.inc > >diff --git a/C4/Acquisition.pm b/C4/Acquisition.pm >index 8bbd0ce310..d3d7651a4f 100644 >--- a/C4/Acquisition.pm >+++ b/C4/Acquisition.pm >@@ -31,6 +31,7 @@ use Koha::DateUtils qw( dt_from_string output_pref ); > use Koha::Acquisition::Baskets; > use Koha::Acquisition::Booksellers; > use Koha::Acquisition::Orders; >+use Koha::AdditionalFieldValue; > use Koha::Biblios; > use Koha::Items; > use Koha::Number::Price; >@@ -1961,7 +1962,7 @@ sub TransferOrder { > my $order = Koha::Acquisition::Orders->find( $ordernumber ) or return; > return if $order->datereceived; > >- $order = $order->unblessed; >+ my $orderhash = $order->unblessed; > > my $basket = GetBasket($basketno); > return unless $basket; >@@ -1977,11 +1978,12 @@ sub TransferOrder { > $sth = $dbh->prepare($query); > $rv = $sth->execute('cancelled', $ordernumber); > >- delete $order->{'ordernumber'}; >- delete $order->{parent_ordernumber}; >- $order->{'basketno'} = $basketno; >+ delete $orderhash->{ordernumber}; >+ delete $orderhash->{parent_ordernumber}; >+ $orderhash->{basketno} = $basketno; > >- my $newordernumber = Koha::Acquisition::Order->new($order)->store->ordernumber; >+ my $neworder = Koha::Acquisition::Order->new($orderhash); >+ my $newordernumber = $neworder->store->ordernumber; > > $query = q{ > UPDATE aqorders_items >@@ -1998,6 +2000,15 @@ sub TransferOrder { > $sth = $dbh->prepare($query); > $sth->execute($ordernumber, $newordernumber); > >+ # Copy additional fields values >+ foreach my $afv ($order->additional_field_values) { >+ Koha::AdditionalFieldValue->new({ >+ field_id => $afv->field_id, >+ record_id => $newordernumber, >+ value => $afv->value, >+ })->store; >+ } >+ > return $newordernumber; > } > >diff --git a/Koha/Acquisition/Order.pm b/Koha/Acquisition/Order.pm >index 79fb056802..3f126fb7fe 100644 >--- a/Koha/Acquisition/Order.pm >+++ b/Koha/Acquisition/Order.pm >@@ -23,7 +23,7 @@ use Koha::Acquisition::Baskets; > use Koha::Database; > use Koha::DateUtils qw( dt_from_string output_pref ); > >-use base qw(Koha::Object); >+use base qw(Koha::Object Koha::Object::Mixin::AdditionalFields); > > =head1 NAME > >diff --git a/Koha/AdditionalField.pm b/Koha/AdditionalField.pm >index 78de775d5e..1d32272281 100644 >--- a/Koha/AdditionalField.pm >+++ b/Koha/AdditionalField.pm >@@ -5,6 +5,25 @@ use Modern::Perl; > use base qw(Koha::Object); > > use C4::Context; >+use Koha::MarcSubfieldStructures; >+ >+sub effective_authorised_value_category { >+ my ($self) = @_; >+ >+ my $category = $self->authorised_value_category; >+ unless ($category) { >+ if ($self->marcfield) { >+ my ($tag, $subfield) = split /\$/, $self->marcfield; >+ >+ my $mss = Koha::MarcSubfieldStructures->find('', $tag, $subfield); >+ if ($mss) { >+ $category = $mss->authorised_value; >+ } >+ } >+ } >+ >+ return $category; >+} > > sub _type { 'AdditionalField' } > >diff --git a/Koha/Object/Mixin/AdditionalFields.pm b/Koha/Object/Mixin/AdditionalFields.pm >index 090e2824c2..4b3ce6a1cb 100644 >--- a/Koha/Object/Mixin/AdditionalFields.pm >+++ b/Koha/Object/Mixin/AdditionalFields.pm >@@ -45,18 +45,50 @@ sub set_additional_fields { > > my $rs = Koha::Database->new->schema->resultset('AdditionalFieldValue'); > >+ my $biblionumber; >+ my $record; >+ my $record_updated; >+ if ($self->_result->has_column('biblionumber')) { >+ $biblionumber = $self->biblionumber; >+ } >+ > foreach my $additional_field (@$additional_fields) { > my $field_value = $rs->find_or_new({ > field_id => $additional_field->{id}, > record_id => $self->id, > }); >+ my $field = $field_value->field; > my $value = $additional_field->{value}; >+ >+ if ($biblionumber and $field->marcfield) { >+ require C4::Biblio; >+ $record //= C4::Biblio::GetMarcBiblio({ biblionumber => $biblionumber }); >+ >+ my ($tag, $subfield) = split /\$/, $field->marcfield; >+ my $marc_field = $record->field($tag); >+ if ($field->marcfield_mode eq 'get') { >+ $value = $marc_field ? $marc_field->subfield($subfield) : ''; >+ } elsif ($field->marcfield_mode eq 'set') { >+ if ($marc_field) { >+ $marc_field->update($subfield => $value); >+ } else { >+ $marc_field = MARC::Field->new($tag, '', '', $subfield => $value); >+ $record->append_fields($marc_field); >+ } >+ $record_updated = 1; >+ } >+ } >+ > if (defined $value) { > $field_value->set_columns({ value => $value })->update_or_insert; > } elsif ($field_value->in_storage) { > $field_value->delete; > } > } >+ >+ if ($record_updated) { >+ C4::Biblio::ModBiblio($record, $biblionumber); >+ } > } > > sub additional_field_values { >diff --git a/Koha/Schema/Result/Aqorder.pm b/Koha/Schema/Result/Aqorder.pm >index bafbe91b7f..fa2e3a82e3 100644 >--- a/Koha/Schema/Result/Aqorder.pm >+++ b/Koha/Schema/Result/Aqorder.pm >@@ -628,6 +628,22 @@ __PACKAGE__->many_to_many("borrowernumbers", "aqorder_users", "borrowernumber"); > # Created by DBIx::Class::Schema::Loader v0.07042 @ 2018-02-16 17:54:53 > # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:K0GnMGYtZUQ1WCesHKIxHw > >+__PACKAGE__->has_many( >+ "additional_field_values", >+ "Koha::Schema::Result::AdditionalFieldValue", >+ sub { >+ my ($args) = @_; >+ >+ return { >+ "$args->{foreign_alias}.record_id" => { -ident => "$args->{self_alias}.ordernumber" }, >+ >+ # TODO Add column additional_field_values.tablename to avoid subquery ? >+ "$args->{foreign_alias}.field_id" => >+ { -in => \'(SELECT id FROM additional_fields WHERE tablename = "aqorders")' }, >+ }; >+ }, >+ { cascade_copy => 0, cascade_delete => 0 }, >+); > > # You can replace this text with custom code or comments, and it will be preserved on regeneration > 1; >diff --git a/acqui/addorder.pl b/acqui/addorder.pl >index 17b50e6185..e2687b9d26 100755 >--- a/acqui/addorder.pl >+++ b/acqui/addorder.pl >@@ -132,6 +132,8 @@ use Koha::Acquisition::Currencies; > use Koha::Acquisition::Orders; > use C4::Barcodes; > >+use Koha::AdditionalFields; >+ > ### "-------------------- addorder.pl ----------" > > # FIXME: This needs to do actual error checking and possibly return user to the same form, >@@ -299,6 +301,19 @@ if ( $basket->{is_standing} || $orderinfo->{quantity} ne '0' ) { > $order->store; > } > >+ # Retrieve and save additional fields values >+ my @additional_fields = Koha::AdditionalFields->search({ tablename => 'aqorders' }); >+ my @additional_field_values; >+ foreach my $af (@additional_fields) { >+ my $id = $af->id; >+ my $value = $input->param("additional_field_$id"); >+ push @additional_field_values, { >+ id => $id, >+ value => $value, >+ }; >+ } >+ $order->set_additional_fields(\@additional_field_values); >+ > # now, add items if applicable > if ($basket->effective_create_items eq 'ordering') { > >diff --git a/acqui/neworderempty.pl b/acqui/neworderempty.pl >index 6326eaf39b..9af9c90301 100755 >--- a/acqui/neworderempty.pl >+++ b/acqui/neworderempty.pl >@@ -94,6 +94,7 @@ use Koha::MarcSubfieldStructures; > use Koha::ItemTypes; > use Koha::Patrons; > use Koha::RecordProcessor; >+use Koha::AdditionalFields; > > our $input = new CGI; > my $booksellerid = $input->param('booksellerid'); # FIXME: else ERROR! >@@ -388,6 +389,29 @@ if ( defined $from_subscriptionid ) { > # Find the items.barcode subfield for barcode validations > my (undef, $barcode_subfield) = GetMarcFromKohaField('items.barcode', ''); > >+# Get additional fields >+my $record; >+my @additional_fields = Koha::AdditionalFields->search({ tablename => 'aqorders' }); >+my %additional_field_values; >+if ($ordernumber) { >+ my $order = Koha::Acquisition::Orders->find($ordernumber); >+ foreach my $value ($order->additional_field_values) { >+ $additional_field_values{$value->field_id} = $value->value; >+ } >+} elsif ( $biblionumber ) { >+ foreach my $af (@additional_fields) { >+ if ($af->marcfield) { >+ $record //= GetMarcBiblio({ biblionumber => $biblionumber }); >+ my ($field, $subfield) = split /\$/, $af->marcfield; >+ $additional_field_values{$af->id} = $record->subfield($field, $subfield); >+ } >+ } >+} >+$template->param( >+ additional_fields => \@additional_fields, >+ additional_field_values => \%additional_field_values, >+); >+ > # fill template > $template->param( > close => $close, >diff --git a/admin/additional-fields.pl b/admin/additional-fields.pl >index 5bc722c09d..c573fc863a 100755 >--- a/admin/additional-fields.pl >+++ b/admin/additional-fields.pl >@@ -46,6 +46,7 @@ if ( $op eq 'add' ) { > my $name = $input->param('name') // q{}; > my $authorised_value_category = $input->param('authorised_value_category') // q{}; > my $marcfield = $input->param('marcfield') // q{}; >+ my $marcfield_mode = $input->param('marcfield_mode') // 'get'; > my $searchable = $input->param('searchable') ? 1 : 0; > if ( $field_id and $name ) { > my $updated = 0; >@@ -55,6 +56,7 @@ if ( $op eq 'add' ) { > name => $name, > authorised_value_category => $authorised_value_category, > marcfield => $marcfield, >+ marcfield_mode => $marcfield_mode, > searchable => $searchable, > }); > $updated = $af->store ? 1 : 0; >@@ -71,6 +73,7 @@ if ( $op eq 'add' ) { > name => $name, > authorised_value_category => $authorised_value_category, > marcfield => $marcfield, >+ marcfield_mode => $marcfield_mode, > searchable => $searchable, > }); > $inserted = $af->store ? 1 : 0; >diff --git a/installer/data/mysql/atomicupdate/bug_11844.perl b/installer/data/mysql/atomicupdate/bug_11844.perl >new file mode 100644 >index 0000000000..dc92c1cb32 >--- /dev/null >+++ b/installer/data/mysql/atomicupdate/bug_11844.perl >@@ -0,0 +1,12 @@ >+$DBversion = 'XXX'; >+if( CheckVersion( $DBversion ) ) { >+ if( !column_exists( 'additional_fields', 'marcfield_mode' ) ) { >+ $dbh->do(q{ >+ ALTER TABLE additional_fields >+ ADD COLUMN marcfield_mode ENUM('get', 'set') NOT NULL DEFAULT 'get' AFTER marcfield >+ }); >+ } >+ >+ SetVersion( $DBversion ); >+ print "Upgrade to $DBversion done (Bug 11844 - Add column additional_fields.marcfield_mode)\n"; >+} >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/additional-fields-entry.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/additional-fields-entry.inc >index c8cbd83bcd..52646a245d 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/includes/additional-fields-entry.inc >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/additional-fields-entry.inc >@@ -1,34 +1,27 @@ > [% USE AuthorisedValues %] >-[% IF wrap_fieldset != 0 %] >-<fieldset class="rows"> >- <legend>Additional fields</legend> >- <ol> >-[% END %] >- [% FOR field IN available %] >- <li> >- <label for="additional_field_[% field.id %]"> [% field.name %]: </label> >- [% IF field.authorised_value_category %] >- <select name="additional_field_[% field.id %]" id="additional_field_[% field.id %]"> >- <option value="">All</option> >- [% FOREACH av IN AuthorisedValues.GetAuthValueDropbox( field.authorised_value_category ) %] >- [% IF av.authorised_value == values.${field.id} %] >- <option value="[% av.authorised_value %]" selected="selected">[% av.lib %]</option> >- [% ELSE %] >- <option value="[% av.authorised_value %]">[% av.lib %]</option> >- [% END %] >- [% END %] >- </select> (Authorised values for [% field.authorised_value_category %]) >- [% ELSE %] >- [% IF field.marcfield %] >- <input type="text" value="[% values.${field.id} %]" id="additional_field_[% field.id %]" name="additional_field_[% field.id %]" readonly="readonly" /> >- This value will be filled with the [% field.marcfield %] subfield of the selected biblio. >+[% FOR field IN available %] >+ [% disabled = (field.marcfield && field.marcfield_mode == 'get') ? 'disabled' : '' %] >+ [% authorised_value_category = field.effective_authorised_value_category %] >+ <li> >+ <label for="additional_field_[% field.id %]"> [% field.name %]: </label> >+ [% IF authorised_value_category %] >+ <select name="additional_field_[% field.id %]" id="additional_field_[% field.id %]" [% disabled %]> >+ <option value=""></option> >+ [% FOREACH av IN AuthorisedValues.GetAuthValueDropbox( authorised_value_category ) %] >+ [% IF av.authorised_value == values.${field.id} %] >+ <option value="[% av.authorised_value %]" selected="selected">[% av.lib %]</option> > [% ELSE %] >- <input type="text" value="[% values.${field.id} %]" id="additional_field_[% field.id %]" name="additional_field_[% field.id %]" /> >+ <option value="[% av.authorised_value %]">[% av.lib %]</option> > [% END %] > [% END %] >- </li> >+ </select> (Authorised values for [% authorised_value_category %]) >+ [% ELSE %] >+ <input type="text" value="[% values.${field.id} %]" id="additional_field_[% field.id %]" name="additional_field_[% field.id %]" [% disabled %]> >+ [% END %] >+ [% IF field.marcfield && field.marcfield_mode == 'get' %] >+ This value will be filled with the [% field.marcfield %] subfield of the selected biblio. >+ [% ELSIF field.marcfield && field.marcfield_mode == 'set' %] >+ This value will be saved to the [% field.marcfield %] subfield of the selected biblio. > [% END %] >-[% IF wrap_fieldset != 0 %] >- </ol> >-</fieldset> >+ </li> > [% END %] >diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/additional-fields-fieldset.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/additional-fields-fieldset.inc >new file mode 100644 >index 0000000000..1e205418ca >--- /dev/null >+++ b/koha-tmpl/intranet-tmpl/prog/en/includes/additional-fields-fieldset.inc >@@ -0,0 +1,6 @@ >+<fieldset class="rows"> >+ <legend>Additional fields</legend> >+ <ol> >+ [% content %] >+ </ol> >+</fieldset> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basketheader.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basketheader.tt >index 43f6a33119..3114821ce1 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basketheader.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basketheader.tt >@@ -128,7 +128,9 @@ > </fieldset> > > [% IF available_additional_fields %] >- [% INCLUDE 'additional-fields-entry.inc' available=available_additional_fields values=additional_field_values %] >+ [% WRAPPER 'additional-fields-fieldset.inc' %] >+ [% INCLUDE 'additional-fields-entry.inc' available=available_additional_fields values=additional_field_values %] >+ [% END %] > [% END %] > > <fieldset class="action"> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt >index 1d89ad2820..6c59b44335 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt >@@ -44,7 +44,7 @@ > <input type="text" name="basketgroupname" id="basketgroupname" value="[% basketgroupname %]" /> > </li> > >- [% INCLUDE 'additional-fields-entry.inc' available=available_additional_fields values=additional_field_filters wrap_fieldset=0 %] >+ [% INCLUDE 'additional-fields-entry.inc' available=available_additional_fields values=additional_field_filters %] > > <li> > <label for="ordernumber">Order line:</label> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt >index 1a10af9f2c..adfa6fd18b 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt >@@ -1,6 +1,7 @@ > [% USE Asset %] > [% USE Koha %] > [% USE KohaDates %] >+[% USE AuthorisedValues %] > [% SET footerjs = 1 %] > [% INCLUDE 'doc-head-open.inc' %] > <title>Koha › Acquisitions › Basket [% basketno %] › [% IF ( ordernumber ) %]Modify order details (line #[% ordernumber %])[% ELSE %]New order[% END %]</title> >@@ -474,6 +475,11 @@ > </li> > </ol> > </fieldset> >+ >+ [% WRAPPER 'additional-fields-fieldset.inc' %] >+ [% INCLUDE 'additional-fields-entry.inc' available = additional_fields values = additional_field_values %] >+ [% END %] >+ > <fieldset class="action"> > <input type="hidden" name="subscriptionid" value="[% subscriptionid %]" /> > <input type="submit" value="Save" /> >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/additional-fields.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/additional-fields.tt >index bdd6984be5..1883c4c7da 100755 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/additional-fields.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/additional-fields.tt >@@ -12,7 +12,7 @@ > [% Asset.css('css/datatables.css') %] > </head> > >-[% marcfield_tables = ['subscription'] %] >+[% marcfield_tables = ['subscription', 'aqorders'] %] > [% show_marcfield = marcfield_tables.grep('^' _ tablename _ '$').size ? 1 : 0 %] > > <body id="ser_add_fields" class="ser"> >@@ -70,6 +70,7 @@ > [% END %] > <ul> > [% WRAPPER table_option value="aqbasket" %]Order baskets[% END %] >+ [% WRAPPER table_option value="aqorders" %]Order lines[% END %] > [% WRAPPER table_option value="subscription" %]Subscriptions[% END %] > </ul> > [% ELSIF op == 'list' %] >@@ -82,6 +83,7 @@ > <th>Authorised value category</th> > [% IF show_marcfield %] > <th>MARC field</th> >+ <th>MARC field mode</th> > [% END %] > <th>Searchable</th> > <th>Actions</th> >@@ -94,6 +96,12 @@ > <td>[% field.authorised_value_category %]</td> > [% IF show_marcfield %] > <td>[% field.marcfield %]</td> >+ <td> >+ [% SWITCH field.marcfield_mode %] >+ [% CASE 'get' %]Get value from MARC record >+ [% CASE 'set' %]Save value to MARC record >+ [% END %] >+ </td> > [% END %] > <td> > [% IF field.searchable %]Yes[% ELSE %]No[% END %] >@@ -139,6 +147,22 @@ > <label for="marcfield">MARC field: </label> > <input type="text" name="marcfield" id="marcfield" value="[% field.marcfield %]" /> > </li> >+ <li> >+ <label for="marcfield_mode">MARC field mode: </label> >+ <select id="marcfield_mode" name="marcfield_mode"> >+ [% IF field.marcfield_mode == 'get' %] >+ <option value="get" selected>Get value from MARC record (not modifiable)</option> >+ [% ELSE %] >+ <option value="get">Get value from MARC record (not modifiable)</option> >+ [% END %] >+ >+ [% IF field.marcfield_mode == 'set' %] >+ <option value="set" selected>Save value to MARC record</option> >+ [% ELSE %] >+ <option value="set">Save value to MARC record</option> >+ [% END %] >+ </select> >+ </li> > [% END %] > <li> > <label for="searchable">Searchable: </label> >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 8a37128168..7cff2813b4 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 >@@ -256,7 +256,7 @@ > <label for="to">Expires before:</label> > <input type="text" id="to" name="expiration_date_filter" value="[% expiration_date_filter | $KohaDates %]" size="10" maxlength="10" class="datepickerto" /> > </li> >- [% 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 %] > </ol> > <input type="hidden" name="searched" value="1" /> > <fieldset class="action"> >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 39c1a0b05f..b9b1d34408 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 >@@ -438,7 +438,9 @@ fieldset.rows li.radio { width: 100%; } /* override staff-global.css */ > > [% IF additional_fields_for_subscription %] > <div id="subscription_additional_fields"> >- [% INCLUDE 'additional-fields-entry.inc' available=additional_fields_for_subscription values=additional_fields %] >+ [% WRAPPER 'additional-fields-fieldset.inc' %] >+ [% INCLUDE 'additional-fields-entry.inc' available=additional_fields_for_subscription values=additional_fields %] >+ [% END %] > </div> > [% END %] > >diff --git a/serials/subscription-add.pl b/serials/subscription-add.pl >index 1c10528777..628304b231 100755 >--- a/serials/subscription-add.pl >+++ b/serials/subscription-add.pl >@@ -340,15 +340,8 @@ sub redirect_add_subscription { > ); > > my @additional_fields; >- my $record = GetMarcBiblio({ biblionumber => $biblionumber, embed_items => 1 }); > for my $field (Koha::AdditionalFields->search({ tablename => 'subscription' })) { > my $value = $query->param('additional_field_' . $field->id); >- if ($field->marcfield) { >- my ($field, $subfield) = split /\$/, $field->marcfield; >- if ( $record and $field and $subfield ) { >- $value = $record->subfield( $field, $subfield ); >- } >- } > push @additional_fields, { > id => $field->id, > value => $value, >@@ -438,15 +431,8 @@ sub redirect_mod_subscription { > ); > > my @additional_fields; >- my $record = GetMarcBiblio({ biblionumber => $biblionumber, embed_items => 1 }); > for my $field (Koha::AdditionalFields->search({ tablename => 'subscription' })) { > my $value = $query->param('additional_field_' . $field->id); >- if ($field->marcfield) { >- my ($field, $subfield) = split /\$/, $field->marcfield; >- if ( $record and $field and $subfield ) { >- $value = $record->subfield( $field, $subfield ); >- } >- } > push @additional_fields, { > id => $field->id, > value => $value, >-- >2.14.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 11844
:
25632
|
25638
|
41859
|
41860
|
45674
|
45675
|
45676
|
45758
|
45915
|
45916
|
45917
|
53614
|
53615
|
53616
|
53618
|
53619
|
55529
|
75332
|
75362
|
141116
|
145517
|
145535
|
145536
|
145540
|
146497
|
146500
|
146501
|
146502
|
146503
|
146504
|
146505
|
146506
|
148889
|
148895
|
148897
|
149081
|
149082
|
149083
|
149084
|
149085
|
149086
|
149087
|
149088
|
149089
|
149090
|
149091
|
149682
|
149683
|
149684
|
149685
|
149686
|
149687
|
149688
|
149689
|
149690
|
149691
|
149692
|
150537
|
150538
|
150539
|
150540
|
150541
|
150542
|
150543
|
150544
|
150545
|
150546
|
150547
|
150548
|
151220
|
151221
|
151222
|
151223
|
151224
|
151225
|
151226
|
151227
|
151228
|
151229
|
151230
|
151366