# 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"
}
$TMPL_VAR{is_type_normal_invoice} = $form->{type} eq "invoice";
- $TMPL_VAR{is_type_credit_note} = $form->{type} eq "credit_note";
- $TMPL_VAR{is_format_html} = $form->{format} eq 'html';
- $TMPL_VAR{dateformat} = $myconfig{dateformat};
- $TMPL_VAR{numberformat} = $myconfig{numberformat};
+ $TMPL_VAR{is_type_credit_note} = $form->{type} eq "credit_note";
+ $TMPL_VAR{is_format_html} = $form->{format} eq 'html';
+ $TMPL_VAR{dateformat} = $myconfig{dateformat};
+ $TMPL_VAR{numberformat} = $myconfig{numberformat};
# hiddens
$TMPL_VAR{HIDDENS} = [qw(
}
print $form->parse_html_template('is/form_footer', {
- is_type_normal_invoice => ($form->{type} eq "invoice"),
+ is_type_normal_invoice => ($form->{type} eq "invoice"),
is_type_credit_note => ($form->{type} eq "credit_note"),
totalpaid => $totalpaid,
paid_missing => $form->{invtotal} - $totalpaid,
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}) {