From 968b4f37dbdd67df247005b8b657e2991c24beaa Mon Sep 17 00:00:00 2001 From: Martin Renvoize <martin.renvoize@ptfs-europe.com> Date: Thu, 23 Jan 2020 15:52:25 +0000 Subject: [PATCH] Bug 24082: Add `anonymous_refund` permission to `cash_management` This patch adds the new `anonymous_refund` permission to the `cash_management` flag and binds it to the visability of the register details page. --- installer/data/mysql/atomicupdate/bug_24082.perl | 12 ++++++++++++ installer/data/mysql/userpermissions.sql | 1 + .../intranet-tmpl/prog/en/includes/permissions.inc | 5 +++++ .../intranet-tmpl/prog/en/includes/pos-menu.inc | 2 +- .../intranet-tmpl/prog/en/modules/pos/register.tt | 2 ++ pos/register.pl | 2 +- 6 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_24082.perl diff --git a/installer/data/mysql/atomicupdate/bug_24082.perl b/installer/data/mysql/atomicupdate/bug_24082.perl new file mode 100644 index 0000000000..be66c07777 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_24082.perl @@ -0,0 +1,12 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if ( CheckVersion($DBversion) ) { + + $dbh->do(qq{ + INSERT IGNORE permissions (module_bit, code, description) + VALUES + (25, 'anonymous_refund', 'Perform refund actions from cash registers') + }); + + SetVersion($DBversion); + print "Upgrade to $DBversion done (Bug 23442 - Add a refund option to the point of sale system)\n"; +} diff --git a/installer/data/mysql/userpermissions.sql b/installer/data/mysql/userpermissions.sql index ebf869641f..2b41fa24b1 100644 --- a/installer/data/mysql/userpermissions.sql +++ b/installer/data/mysql/userpermissions.sql @@ -121,6 +121,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES (23, 'self_checkout_module', 'Perform self checkout at the OPAC. It should be used for the patron matching the AutoSelfCheckID'), (24, 'manage_rotas', 'Create, edit and delete rotas'), (24, 'manage_rota_items', 'Add and remove items from rotas'), + (25, 'anonymous_refund', 'Perform refund actions from cash registers'), (25, 'cashup', 'Perform cash register cashup action'), (25, 'takepayment', 'Access the point of sale page and take payments') ; diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc index 25943655fd..942fd5b6f6 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc @@ -701,5 +701,10 @@ Perform cash register cashup action </span> <span class="permissioncode">([% name | html %])</span> + [%- CASE 'anonymous_refund' -%] + <span class="sub_permission anonymous_refund_subpermission"> + Perform anonymous refund actions + </span> + <span class="permissioncode">([% name | html %])</span> [%- END -%] [%- END -%] diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/pos-menu.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/pos-menu.inc index c9579b5492..c2ad730e5a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/includes/pos-menu.inc +++ b/koha-tmpl/intranet-tmpl/prog/en/includes/pos-menu.inc @@ -1,6 +1,6 @@ <div id="navmenu"> <div id="navmenulist"> - [% IF ( CAN_user_cash_management_cashup ) %] + [% IF ( CAN_user_cash_management_cashup || CAN_user_cash_management_anonymous_refund ) %] <h5>Point of sale</h5> <ul> <li><a href="/cgi-bin/koha/pos/register.pl">Register details</a></li> diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt index 8a4b09f4e0..dc3685e9f2 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/pos/register.tt @@ -27,9 +27,11 @@ </div> [% ELSE %] + [% IF ( CAN_user_cash_management_cashup ) %] <div id="toolbar" class="btn-toolbar"> <a id="cashup" href="/cgi-bin/koha/pos/register.pl?op=cashup" class="btn btn-default"><i class="fa fa-money"></i> Record cashup</a> </div> + [% END %] <h1>Register transaction details for [% register.name | html %]</h1> diff --git a/pos/register.pl b/pos/register.pl index 8ad143a5b7..a7fde86ce2 100755 --- a/pos/register.pl +++ b/pos/register.pl @@ -35,7 +35,7 @@ my ( $template, $loggedinuser, $cookie, $user_flags ) = get_template_and_user( query => $input, type => 'intranet', authnotrequired => 0, - flagsrequired => { cash_management => 'cashup' }, + flagsrequired => { cash_management => [ 'cashup', 'anonymous_refund' ] }, } ); my $logged_in_user = Koha::Patrons->find($loggedinuser) or die "Not logged in"; -- 2.20.1