From 684598813cf26004910452bf868257514c8f309c Mon Sep 17 00:00:00 2001 From: Eric Garcia Date: Tue, 3 Jun 2025 15:01:02 +0000 Subject: [PATCH] Bug 17473: Add void payment permission --- .../atomicupdate/bug_17473_add_permission.pl | 33 +++++++++++++++++++ .../data/mysql/mandatory/userpermissions.sql | 1 + .../prog/en/includes/permissions.inc | 3 ++ .../prog/en/modules/members/boraccount.tt | 2 +- 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100755 installer/data/mysql/atomicupdate/bug_17473_add_permission.pl diff --git a/installer/data/mysql/atomicupdate/bug_17473_add_permission.pl b/installer/data/mysql/atomicupdate/bug_17473_add_permission.pl new file mode 100755 index 0000000000..b00a266d1e --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_17473_add_permission.pl @@ -0,0 +1,33 @@ +use Modern::Perl; +use Koha::Installer::Output qw(say_warning say_success say_info); + +return { + bug_number => "17473", + description => "Add void_payment permission", + up => sub { + my ($args) = @_; + my ( $dbh, $out ) = @$args{qw(dbh out)}; + + $dbh->do( + q{ + INSERT IGNORE permissions (module_bit, code, description) VALUES + (10, 'void_payment', 'Voiding payments') + } + ); + + # permissions + say $out "Added new permission 'void_payment'"; + + $dbh->do( + q{ + INSERT IGNORE INTO user_permissions (borrowernumber, module_bit, code) + SELECT borrowernumber, 10, 'void_payment' FROM user_permissions WHERE code = 'remaining_permissions' + } + ); + + # Other information + say_success( $out, "Use green for success" ); + say_warning( $out, "Use yellow for warning/a call to action" ); + say_info( $out, "Use blue for further information" ); + }, +}; diff --git a/installer/data/mysql/mandatory/userpermissions.sql b/installer/data/mysql/mandatory/userpermissions.sql index d5121c91fd..4e3c5fc71d 100644 --- a/installer/data/mysql/mandatory/userpermissions.sql +++ b/installer/data/mysql/mandatory/userpermissions.sql @@ -68,6 +68,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES (10, 'refund', 'Perform account refund action'), (10, 'discount', 'Perform account discount action'), (10, 'writeoff', 'Write off fines and fees'), + (10, 'void_payment', 'Voiding payments'), (10, 'manual_credit', 'Add manual credits to a patron account'), (10, 'manual_invoice', 'Add manual invoices to a patron account'), (10, 'remaining_permissions', 'Remaining permissions for managing fines and fees'), diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc index a0e17a2d41..92b5f5e599 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc @@ -299,6 +299,9 @@ [%- CASE 'writeoff' -%] Write off fines and fees ([% name | html %]) + [%- CASE 'void_payment' -%] + Voiding payments + ([% name | html %] [%- CASE 'manual_invoice' -%] Add manual invoices to a patron account ([% name | html %]) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt index d4a337786e..f10d08f420 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt @@ -195,7 +195,7 @@ [% END %] - [% IF account.is_credit && account.status != 'VOID' %] + [% IF account.is_credit && account.status != 'VOID' && CAN_user_updatecharges_void_payment %]