@@ -, +, @@ - Remove the new permission "reopen_closed_invoices" for a given patron, - Create an invoice, close it - Add the permission --- acqui/invoice.pl | 8 +++++++- .../data/mysql/atomicupdate/bug_24157.perl | 10 ++++++++++ installer/data/mysql/userpermissions.sql | 1 + .../prog/en/includes/blocking_errors.inc | 2 ++ .../prog/en/includes/permissions.inc | 5 +++++ .../prog/en/modules/acqui/invoice.tt | 19 ++++++++++++++++--- .../prog/en/modules/acqui/invoices.tt | 4 +++- .../prog/en/modules/acqui/parcel.tt | 4 +++- 8 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_24157.perl --- a/acqui/invoice.pl +++ a/acqui/invoice.pl @@ -52,6 +52,8 @@ my ( $template, $loggedinuser, $cookie, $flags ) = get_template_and_user( } ); +my $logged_in_patron = Koha::Patrons->find( $loggedinuser ); + my $invoiceid = $input->param('invoiceid'); my $op = $input->param('op'); @@ -70,6 +72,9 @@ if ( $op && $op eq 'close' ) { } } elsif ( $op && $op eq 'reopen' ) { + output_and_exit( $input, $cookie, $template, 'insufficient_permission' ) + unless $logged_in_patron->has_permission( { acquisition => 'reopen_closed_invoices' } ); + ReopenInvoice($invoiceid); my $referer = $input->param('referer'); if ($referer) { @@ -90,7 +95,8 @@ elsif ( $op && $op eq 'mod' ) { shipmentcost_budgetid => $shipment_budget_id ); if ($input->param('reopen')) { - ReopenInvoice($invoiceid); + ReopenInvoice($invoiceid) + if $logged_in_patron->has_permission( { acquisition => 'reopen_closed_invoices' } ); } elsif ($input->param('close')) { CloseInvoice($invoiceid); } elsif ($input->param('merge')) { --- a/installer/data/mysql/atomicupdate/bug_24157.perl +++ a/installer/data/mysql/atomicupdate/bug_24157.perl @@ -0,0 +1,10 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + $dbh->do(q| + INSERT IGNORE INTO permissions (module_bit, code, description) VALUES + (11, 'reopen_closed_invoices', 'Reopen closed invoices') + |); + + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 24157: Add new permission reopen_closed_invoices)\n"; +} --- a/installer/data/mysql/userpermissions.sql +++ a/installer/data/mysql/userpermissions.sql @@ -62,6 +62,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES (11, 'budget_add_del', 'Add and delete funds (but can''t modify funds)'), (11, 'budget_manage_all', 'Manage all funds'), (11, 'edi_manage', 'Manage EDIFACT transmissions'), + (11, 'reopen_closed_invoices', 'Reopen closed invoices'), (12, 'suggestions_manage', 'Manage purchase suggestions'), (13, 'edit_news', 'Write news for the OPAC and staff interfaces'), (13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'), --- a/koha-tmpl/intranet-tmpl/prog/en/includes/blocking_errors.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/blocking_errors.inc @@ -17,6 +17,8 @@
The form submission failed (Wrong CSRF token). Try to come back, refresh the page, then try again.
[% CASE 'budget_is_locked' %]
The budget is locked, fund creation is not possible.
+ [% CASE 'insufficient_permission' %] +
You do not have sufficient permission to continue.
[% CASE %][% blocking_error | html %] [% END %] --- a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc +++ a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc @@ -667,6 +667,11 @@ Manage EDIFACT transmissions ([% name | html %]) + [%- CASE 'reopen_closed_invoices' -%] + + Reopen closed invoices + + ([% name | html %]) [%# self_check %] [%- CASE 'self_checkin_module' -%] --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoice.tt @@ -15,6 +15,8 @@ [% INCLUDE 'header.inc' %] [% INCLUDE 'acquisitions-search.inc' %] +[% SET readonly = NOT CAN_user_acquisition_edit_invoices %] +
@@ -35,8 +37,12 @@
  1. - - Required + [% IF readonly %] + [% invoicenumber | html %] + [% ELSE %] + + Required + [% END %]
  2. @@ -71,7 +77,14 @@
  3. Status: Closed on [% invoiceclosedate | $KohaDates %]
  4. -
  5. +
  6. + + [% IF CAN_user_acquisition_reopen_closed_invoices %] + + [% ELSE %] + + [% END %] +
  7. [% ELSE %]
  8. Status: Open
  9. --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoices.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoices.tt @@ -81,7 +81,9 @@