@@ -, +, @@ --- Koha/Account/CreditType.pm | 74 ++++++++++++++++ Koha/Account/CreditTypes.pm | 71 +++++++++++++++ Koha/Schema/Result/AccountCreditType.pm | 11 ++- .../prog/en/modules/members/mancredit.tt | 87 ++++++++++-------- members/mancredit.pl | 88 ++++++++++++------- 5 files changed, 258 insertions(+), 73 deletions(-) create mode 100644 Koha/Account/CreditType.pm create mode 100644 Koha/Account/CreditTypes.pm --- a/Koha/Account/CreditType.pm +++ a/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; --- a/Koha/Account/CreditTypes.pm +++ a/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; --- a/Koha/Schema/Result/AccountCreditType.pm +++ a/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; --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/mancredit.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/members/mancredit.tt @@ -12,56 +12,67 @@ [% INCLUDE 'header.inc' %] [% INCLUDE 'patron-search.inc' %] -
+