diff --git a/Koha/Account/CreditType.pm b/Koha/Account/CreditType.pm index faf65cfce4..6eb41c8e76 100644 --- a/Koha/Account/CreditType.pm +++ b/Koha/Account/CreditType.pm @@ -22,7 +22,7 @@ use Modern::Perl; use Koha::Database; use Koha::Exceptions; -use base qw(Koha::Object Koha::Object::Limit::Library); +use base qw(Koha::Object::Mixin::AdditionalFields Koha::Object Koha::Object::Limit::Library); =head1 NAME diff --git a/Koha/Account/CreditTypes.pm b/Koha/Account/CreditTypes.pm index 27b43e6d92..40c0ce7ae5 100644 --- a/Koha/Account/CreditTypes.pm +++ b/Koha/Account/CreditTypes.pm @@ -22,7 +22,7 @@ use Modern::Perl; use Koha::Database; use Koha::Account::CreditType; -use base qw(Koha::Objects Koha::Objects::Limit::Library); +use base qw(Koha::Objects::Mixin::AdditionalFields Koha::Objects Koha::Objects::Limit::Library); =head1 NAME diff --git a/admin/credit_types.pl b/admin/credit_types.pl index a0eb1bfb6f..962e533bab 100755 --- a/admin/credit_types.pl +++ b/admin/credit_types.pl @@ -27,6 +27,7 @@ use C4::Output qw( output_html_with_http_headers ); use Koha::Account::CreditType; use Koha::Account::CreditTypes; +use Koha::AdditionalFields; my $input = CGI->new; my $code = $input->param('code'); @@ -42,6 +43,9 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user( } ); +my @additional_fields = Koha::AdditionalFields->search( { tablename => 'account_credit_types' } )->as_list; +$template->param( additional_fields => \@additional_fields, ); + my $credit_type; if ($code) { $credit_type = Koha::Account::CreditTypes->find($code); @@ -66,9 +70,12 @@ if ( $op eq 'add_form' ) { }; } + my @additional_field_values = $credit_type ? $credit_type->get_additional_field_values_for_template : (); + $template->param( - credit_type => $credit_type, - branches_loop => \@branches_loop + credit_type => $credit_type, + branches_loop => \@branches_loop, + additional_field_values => @additional_field_values, ); } elsif ( $op eq 'cud-add_validate' ) { my $description = $input->param('description'); @@ -90,6 +97,10 @@ if ( $op eq 'add_form' ) { unless ( $credit_type->is_system ) { $credit_type->replace_library_limits( \@branches ); } + + my @additional_fields = $credit_type->prepare_cgi_additional_field_values( $input, 'account_credit_types' ); + $credit_type->set_additional_fields( \@additional_fields ); + push @messages, { type => 'message', code => 'success_on_saving' }; } catch { push @messages, { type => 'error', code => 'error_on_saving' }; 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 a9d3233508..e8c76a2f3b 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 @@ -155,6 +155,7 @@ [% WRAPPER table_option value="accountlines:debit" %]Account lines (debit)[% END %] [% END %] [% IF ( CAN_user_parameters_manage_accounts ) %] + [% WRAPPER table_option value="account_credit_types" %]Account credit types[% END %] [% WRAPPER table_option value="account_debit_types" %]Account debit types[% END %] [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/credit_types.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/credit_types.tt index c74933db75..0c9a16afb7 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/credit_types.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/credit_types.tt @@ -143,7 +143,9 @@ - + [% IF additional_fields.size %] + [% INCLUDE 'additional-fields-entry.inc' available=additional_fields values=additional_field_values wrap_fieldset=1 %] + [% END %]
Cancel @@ -165,6 +167,9 @@ System Code Description + [% IF additional_fields.size %] + Additional fields + [% END %] Available for Credit number enabled Library limitations @@ -177,6 +182,17 @@ [% credit_type.is_system | html %] [% credit_type.code | html %] [%- PROCESS credit_type_description credit_type = credit_type -%] + [% IF additional_fields.size %] + + [% IF credit_type.additional_field_values.count > 0 %] + [% FOREACH additional_field IN credit_type.additional_field_values %] +
[% additional_field.field.name | html %]: [% additional_field.value | html %]
+ [% END %] + [% ELSE %] + No additional fields + [% END %] + + [% END %] [% IF credit_type.can_be_added_manually %]Manual credit[% END %] [% IF credit_type.credit_number_enabled %]Yes[% ELSE %]No[% END %] @@ -236,6 +252,7 @@ [% MACRO jsinclude BLOCK %] [% Asset.js("js/admin-menu.js") | $raw %] + [% Asset.js("js/additional-fields-entry.js") | $raw %] [% INCLUDE 'datatables.inc' %]