@@ -, +, @@ - Bookseller - Location - Library - Item type - Public note - Nonpublic note - "Create item when receiving" flag - Expiration date + the additional fields defined in serials/add_fields.pl authorized value and one without) the table the others fields weren't --- .../prog/en/modules/serials/serials-search.tt | 29 +++- .../en/modules/serials/subscription-batchedit.tt | 153 +++++++++++++++++++++ serials/subscription-batchedit.pl | 107 ++++++++++++++ 3 files changed, 288 insertions(+), 1 deletion(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-batchedit.tt create mode 100755 serials/subscription-batchedit.pl --- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/serials-search.tt @@ -1,6 +1,7 @@ [% USE Asset %] [% USE AuthorisedValues %] [% USE Branches %] +[% USE CGI %] [% USE KohaDates %] [% SET footerjs = 1 %] [% INCLUDE 'doc-head-open.inc' %] @@ -18,9 +19,26 @@ [% BLOCK subscriptions_table %] - + + + [% url_params = [] %] + [% FOREACH param IN CGI.params.pairs %] + [% escaped_value = BLOCK %][% param.value | uri %][% END %] + [% url_params.push(param.key _ '=' _ escaped_value) %] + [% END %] + + +
+ Select all + | + Clear all + | + +
+
+ @@ -38,6 +56,7 @@ + @@ -57,6 +76,7 @@ [% FOREACH subscription IN subscriptions %] [% UNLESS subscription.cannotdisplay %] +
ISSN Title Notes
[% IF ( subscription.issn ) %][% subscription.issn %] [% END %] @@ -157,6 +177,7 @@ [% END %]
+ [% END %]
@@ -397,6 +418,12 @@ $("#reopensub").click(function(){ return confirm(_("Are you sure you want to reopen this subscription?")); }); + + $('.select-all, .clear-all').on('click', function(e) { + e.preventDefault(); + var checkboxes = $(this).parents('form').find('input[type="checkbox"]'); + checkboxes.prop('checked', $(this).hasClass('select-all')); + }); }); [% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-batchedit.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-batchedit.tt @@ -0,0 +1,153 @@ +[% USE AuthorisedValues %] +[% USE Branches %] +[% USE ItemTypes %] +[% USE KohaDates %] +[% INCLUDE 'doc-head-open.inc' %] + Koha › Serials › Batch edit + [% INCLUDE 'doc-head-close.inc' %] + [% INCLUDE 'calendar.inc' %] + + + [% INCLUDE 'header.inc' %] + [% INCLUDE 'serials-search.inc' %] + + + +
+
+
+
+

Subscription batch edit

+ +
+

You are about to edit the following subscriptions:

+ + + + + + + + + + + + + + [% FOREACH subscription IN subscriptions %] + + + + + + + + + + [% END %] + +
ISSNTitleNotesLibraryLocationCall numberExpiration date
[% subscription.biblio.biblioitem.issn %][% subscription.biblio.title %] (#[% subscription.subscriptionid %])[% subscription.notes %] [% IF subscription.internalnotes %]([% subscription.internalnotes %])[% END %][% Branches.GetName(subscription.branchcode) %][% AuthorisedValues.GetByCode('LOC', subscription.location) %][% subscription.callnumber %][% subscription.enddate | $KohaDates %]
+
+ +
+ [% FOREACH subscription IN subscriptions %] + + [% END %] + [% IF referrer %] + + [% END %] +
+
    +
  1. + + +
  2. +
  3. + + +
  4. +
  5. + + +
  6. +
  7. + + +
  8. +
  9. + + +
  10. +
  11. + + +
  12. +
  13. + + + +
  14. +
  15. + + +
  16. + [% FOREACH field IN additional_fields %] +
  17. + + [% IF field.authorised_value_category %] + + [% ELSE %] + + [% END %] +
  18. + [% END %] +
+
+ +
+ +
+
+
+
+
+ [% INCLUDE 'serials-menu.inc' %] +
+
+ + [% INCLUDE 'intranet-bottom.inc' %] --- a/serials/subscription-batchedit.pl +++ a/serials/subscription-batchedit.pl @@ -0,0 +1,107 @@ +#!/usr/bin/perl + +# Copyright 2017 BibLibre +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; + +use CGI qw( -utf8 ); + +use C4::Auth; +use C4::Output; +use Koha::Subscriptions; +use Koha::Acquisition::Booksellers; +use Koha::AdditionalField; +use Koha::DateUtils; + +my $cgi = new CGI; + +my ($template, $loggedinuser, $cookie) = get_template_and_user({ + template_name => 'serials/subscription-batchedit.tt', + query => $cgi, + type => 'intranet', + authnotrequired => 0, + flagsrequired => {serials => 'edit_subscription'}, +}); + +my @subscriptionids = $cgi->multi_param('subscriptionid'); + +my @subscriptions; +foreach my $subscriptionid (@subscriptionids) { + my $subscription = Koha::Subscriptions->find($subscriptionid); + + push @subscriptions, $subscription if $subscription; +} + +my $additional_fields = Koha::AdditionalField->all({tablename => 'subscription'}); + +my $batchedit = $cgi->param('batchedit'); +if ($batchedit) { + my %params = ( + aqbooksellerid => scalar $cgi->param('booksellerid'), + location => scalar $cgi->param('location'), + branchcode => scalar $cgi->param('branchcode'), + itemtype => scalar $cgi->param('itemtype'), + notes => scalar $cgi->param('notes'), + internalnotes => scalar $cgi->param('internalnotes'), + serialsadditems => scalar $cgi->param('serialsadditems'), + enddate => dt_from_string(scalar $cgi->param('enddate')), + ); + + my $field_values = {}; + foreach my $field (@$additional_fields) { + my $value = $cgi->param('field_' . $field->{id}); + $field_values->{$field->{id}} = $value; + } + + foreach my $subscription (@subscriptions) { + while (my ($key, $value) = each %params) { + if (defined $value and $value ne '') { + $subscription->$key($value); + } + } + + foreach my $field (@$additional_fields) { + my $value = $field_values->{$field->{id}}; + if (defined $value and $value ne '') { + $field->{values} //= {}; + $field->{values}->{$subscription->subscriptionid} = $value; + } + } + + $subscription->store; + } + + foreach my $field (@$additional_fields) { + if (defined $field->{values}) { + $field->insert_values(); + } + } + + my $redirect_url = $cgi->param('referrer') // '/cgi-bin/koha/serials/serials-home.pl'; + print $cgi->redirect($redirect_url); + exit; +} + +$template->param( + subscriptions => \@subscriptions, + booksellers => [ Koha::Acquisition::Booksellers->search() ], + additional_fields => $additional_fields, + referrer => scalar $cgi->param('referrer'), +); + +output_html_with_http_headers $cgi, $cookie, $template->output; --