@@ -, +, @@
- Remove the new permission "edit_invoices" for a given patron,
- Create an invoice, edit it (click "detail")
- Add the permission
---
acqui/invoice.pl | 6 +-
installer/data/mysql/atomicupdate/bug_24157.perl | 8 +-
installer/data/mysql/userpermissions.sql | 1 +
.../intranet-tmpl/prog/en/includes/permissions.inc | 5 +
.../intranet-tmpl/prog/en/modules/acqui/invoice.tt | 285 ++++++++++++---------
.../prog/en/modules/acqui/invoices.tt | 8 +-
6 files changed, 194 insertions(+), 119 deletions(-)
--- a/acqui/invoice.pl
+++ a/acqui/invoice.pl
@@ -53,10 +53,13 @@ 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');
+output_and_exit( $input, $cookie, $template, 'insufficient_permission' )
+ if $op
+ && not $logged_in_patron->has_permission( { acquisition => 'edit_invoices' } );
+
my $invoice_files;
if ( C4::Context->preference('AcqEnableFiles') ) {
$invoice_files = Koha::Misc::Files->new(
@@ -242,6 +245,7 @@ $template->param(
invoiceincgst => $bookseller->invoiceincgst,
currency => Koha::Acquisition::Currencies->get_active,
budgets => $budget_loop,
+ budget => GetBudget( $shipmentcost_budgetid ),
);
defined( $invoice_files ) && $template->param( files => $invoice_files->GetFilesInfo() );
--- a/installer/data/mysql/atomicupdate/bug_24157.perl
+++ a/installer/data/mysql/atomicupdate/bug_24157.perl
@@ -5,6 +5,12 @@ if( CheckVersion( $DBversion ) ) {
(11, 'reopen_closed_invoices', 'Reopen closed invoices')
|);
+ $dbh->do(q|
+ INSERT IGNORE INTO permissions (module_bit, code, description) VALUES
+ (11, 'edit_invoices', 'Edit invoices')
+ |);
+
+
SetVersion( $DBversion );
- print "Upgrade to $DBversion done (Bug 24157: Add new permission reopen_closed_invoices)\n";
+ print "Upgrade to $DBversion done (Bug 24157: Add new permissions reopen_closed_invoices, edit_invoices)\n";
}
--- a/installer/data/mysql/userpermissions.sql
+++ a/installer/data/mysql/userpermissions.sql
@@ -66,6 +66,7 @@ INSERT INTO permissions (module_bit, code, description) VALUES
(11, 'budget_manage_all', 'Manage all funds'),
(11, 'edi_manage', 'Manage EDIFACT transmissions'),
(11, 'reopen_closed_invoices', 'Reopen closed invoices'),
+ (11, 'edit_invoices', 'Edit 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/permissions.inc
+++ a/koha-tmpl/intranet-tmpl/prog/en/includes/permissions.inc
@@ -695,6 +695,11 @@
Reopen closed invoices
([% name | html %])
+ [%- CASE 'edit_invoices' -%]
+
+ Edit 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
@@ -36,42 +36,63 @@
@@ -120,128 +143,160 @@
Note |
Fund |
Encumber while invoice open |
-   |
+ [% UNLESS readonly %]  | [% END %]
[% total_adj = 0 %]
[% FOREACH adjustment IN adjustments %]
[% total_adj = total_adj + adjustment.adjustment %]
[% adjustment.adjustment_id | html %] |
- |
- [% reasons = AuthorisedValues.Get("ADJ_REASON") %]
- [% IF reasons.0 %]
- |
+
+ [% IF readonly %]
+ [% AuthorisedValues.GetByCode('ADJ_REASON', adjustment.reason) | html %]
+ [% ELSE %]
+ [% reasons = AuthorisedValues.Get("ADJ_REASON") %]
+ [% IF reasons.0 %]
+
+
+ [% ELSE %]
+ None
+
+ [% END %]
+ [% END %]
+ |
+
+ [% IF readonly %]
+ [% adjustment.note | html %]
[% ELSE %]
- None
-
- [% END %]
+
+ [% END %]
|
- |
-
+ [% END %]
|
[% IF adjustment.encumber_open %]
+ [% IF readonly %]
+
+ [% ELSE %]
+ [% END %]
|
[% ELSE %]
+ [% IF readonly %]
+
+ [% ELSE %]
+ [% END %]
+ |
+ [% END %]
+ [% UNLESS readonly %]
+
+ Delete
|
[% END %]
-
- Delete
- |
[% END %]
[% END %]
-
- Add an adjustment
-
+ [% UNLESS readonly %]
+
+ Add an adjustment
+
-
- Add an adjustment
-
-
- -
-
-
-
- [% reasons = AuthorisedValues.Get("ADJ_REASON") %]
- [% IF reasons.0 %]
+
+ Add an adjustment
+
+
-
-
-
-
- [% FOREACH reason IN reasons %]
-
+ [% reasons = AuthorisedValues.Get("ADJ_REASON") %]
+ [% IF reasons.0 %]
+ -
+
+
+
+ [% FOREACH reason IN reasons %]
+
+ [% END %]
+
+
+ [% ELSE %]
+ -
+ Reason:
+ None
+
Define values in authorised value category ADJ_REASON to enable
+
+ [% END %]
+ -
+
+
+
+ -
+
+
+
+ [% FOREACH budget IN budgets %]
+
[% END %]
- [% ELSE %]
-
- Reason:
- None
-
Define values in authorised value category ADJ_REASON to enable
+
+
+
- [% END %]
- -
-
-
-
- -
-
-
-
- [% FOREACH budget IN budgets %]
-
- [% END %]
-
-
- -
-
-
-
-
- -
-
- Cancel
-
-
-
-
-
-
-
+ -
+
+ Cancel
+
+
+
+
+
+
+
+ [% END %]
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoices.tt
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/invoices.tt
@@ -85,10 +85,14 @@
Reopen
[% END %]
[% ELSE %]
- Close
+ [% IF CAN_user_acquisition_edit_invoices %]
+ Close
+ [% END %]
[% END %]
[% UNLESS invoice.receivedbiblios || invoice.receiveditems %]
- Delete
+ [% IF CAN_user_acquisition_edit_invoices %]
+ Delete
+ [% END %]
[% END %]
--