Langtext-Dialog: Größe prozentual zum Hauptfenster einstellbar pro Benutzer
[kivitendo-erp.git] / bin / mozilla / is.pl
index 0be63a5..d0e2506 100644 (file)
@@ -35,6 +35,7 @@
 use SL::FU;
 use SL::IS;
 use SL::OE;
+use SL::Helper::UserPreferences::DisplayPreferences;
 use SL::MoreCommon qw(restore_form save_form);
 use SL::RecordLinks;
 
@@ -62,9 +63,10 @@ use strict;
 # 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);
 }
 
@@ -385,7 +387,7 @@ sub setup_is_action_bar {
           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"
 
@@ -624,11 +626,12 @@ sub form_header {
     $form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
   }
 
-  $TMPL_VAR{is_type_invoice_for_advance_payment} = $form->{type} eq "invoice_for_advance_payment";
-  $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_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{longdescription_dialog_size_percentage} = SL::Helper::UserPreferences::DisplayPreferences->new()->get_longdescription_dialog_size_percentage();
 
   # hiddens
   $TMPL_VAR{HIDDENS} = [qw(
@@ -768,7 +771,7 @@ sub form_footer {
   }
 
   print $form->parse_html_template('is/form_footer', {
-    is_type_invoice_for_advance_payment => ($form->{type} eq "invoice_for_advance_payment"),
+    is_type_normal_invoice              => ($form->{type} eq "invoice"),
     is_type_credit_note                 => ($form->{type} eq "credit_note"),
     totalpaid                           => $totalpaid,
     paid_missing                        => $form->{invtotal} - $totalpaid,
@@ -1048,6 +1051,8 @@ sub 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}) {