diff --git a/Koha/Account/CreditType.pm b/Koha/Account/CreditType.pm new file mode 100644 index 0000000000..075f39fe17 --- /dev/null +++ b/Koha/Account/CreditType.pm @@ -0,0 +1,74 @@ +package Koha::Account::CreditType; + +# Copyright PTFS Europe 2019 +# +# 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, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +use Modern::Perl; +use List::Util qw/any/; + +use Koha::Database; +use Koha::Exceptions; + +use base qw(Koha::Object Koha::Object::Limit::Library); + +=head1 NAME + +Koha::Account::CreditType - Koha Account credit type Object class + +=head1 API + +=head2 Class Methods + +=cut + +=head3 delete + +Overridden delete method to prevent system default deletions + +=cut + +sub delete { + my ($self) = @_; + + Koha::Exceptions::CannotDeleteDefault->throw if $self->is_system; + + return $self->SUPER::delete; +} + +=head3 _library_limits + +Configurable library limits + +=cut + +sub _library_limits { + return { + class => "AccountCreditTypesBranch", + id => "credit_type_code", + library => "branchcode", + }; +} + +=head3 type + +=cut + +sub _type { + return 'AccountCreditType'; +} + +1; diff --git a/Koha/Account/CreditTypes.pm b/Koha/Account/CreditTypes.pm new file mode 100644 index 0000000000..a63eda7f64 --- /dev/null +++ b/Koha/Account/CreditTypes.pm @@ -0,0 +1,71 @@ +package Koha::Account::CreditTypes; + +# Copyright PTFS Europe 2019 +# +# 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, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +use Modern::Perl; +use List::Util qw/any/; + +use Koha::Database; +use Koha::Account::CreditType; + +use base qw(Koha::Objects Koha::Objects::Limit::Library); + +=head1 NAME + +Koha::Account::CreditTypes - Koha Account credit types Object set class + +=head1 API + +=head2 Class Methods + +=head3 delete + +Overridden delete method to prevent system default deletions + +=cut + +sub delete { + my ($self) = @_; + + my @set = $self->as_list; + for my $type (@set) { + if ( $type->is_system ) { + Koha::Exceptions::CannotDeleteDefault->throw; + } + } + + return $self->SUPER::delete; +} + +=head3 type + +=cut + +sub _type { + return 'AccountCreditType'; +} + +=head3 object_class + +=cut + +sub object_class { + return 'Koha::Account::CreditType'; +} + +1; diff --git a/Koha/Schema/Result/AccountCreditType.pm b/Koha/Schema/Result/AccountCreditType.pm index 015fd3c0ec..c81d27f6ec 100644 --- a/Koha/Schema/Result/AccountCreditType.pm +++ b/Koha/Schema/Result/AccountCreditType.pm @@ -108,6 +108,15 @@ __PACKAGE__->has_many( # Created by DBIx::Class::Schema::Loader v0.07046 @ 2019-10-14 09:59:52 # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:Uycu/23b681kWHNX+/gNiw +__PACKAGE__->add_columns( + '+is_system' => { is_boolean => 1 } +); + +sub koha_objects_class { + 'Koha::Account::CreditTypes'; +} +sub koha_object_class { + 'Koha::Account::CreditType'; +} -# You can replace this text with custom code or comments, and it will be preserved on regeneration 1; diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/mancredit.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/mancredit.tt index 5a74f115a9..997ff495f5 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/mancredit.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/mancredit.tt @@ -12,45 +12,56 @@ [% INCLUDE 'header.inc' %] [% INCLUDE 'patron-search.inc' %] -
+