# end of main
sub _may_view_or_edit_this_invoice {
- return 1 if $::auth->assert('invoice_edit', 1); # may edit all invoices
- return 0 if !$::form->{id}; # creating new invoices isn't allowed without invoice_edit
- return 0 if !$::form->{globalproject_id}; # existing records without a project ID are not allowed
+ return 1 if $::auth->assert('invoice_edit', 1); # may edit all invoices
+ return 0 if !$::form->{id}; # creating new invoices isn't allowed without invoice_edit
+ return 1 if $::auth->assert('sales_invoice_view', 1); # viewing is allowed with this right
+ return 0 if !$::form->{globalproject_id}; # existing records without a project ID are not allowed
return SL::DB::Project->new(id => $::form->{globalproject_id})->load->may_employee_view_project_invoices(SL::DB::Manager::Employee->current);
}
disabled => !$may_edit_create ? t8('You must not change this invoice.')
: !$form->{id} ? t8('This invoice has not been posted yet.')
: undef,
- only_if => $::instance_conf->get_is_show_mark_as_paid && $form->{type} ne "invoice_for_advance_payment",
+ only_if => ($::instance_conf->get_is_show_mark_as_paid && $form->{type} ne "invoice_for_advance_payment") || $form->{type} eq 'final_invoice',
],
], # end of combobox "Post"
my @current_taxaccounts = (split(/ /, $form->{taxaccounts}));
$form->error($locale->text('Cannot post invoice for advance payment with more than one tax'))
if (scalar @current_taxaccounts > 1);
+ $form->error($locale->text('Cannot post invoice for advance payment with taxincluded'))
+ if ($form->{taxincluded});
}
for my $i (1 .. $form->{paidaccounts}) {