Letter: Nur Druckoptionen anzeigen, die momentan unterstützt werden.
[kivitendo-erp.git] / SL / Controller / Letter.pm
index f1109d7..8e588d9 100644 (file)
@@ -11,6 +11,7 @@ use SL::DB::LetterDraft;
 use SL::DB::Employee;
 use SL::Helper::Flash qw(flash);
 use SL::Helper::CreatePDF;
+use SL::Helper::PrintOptions;
 use SL::Locale::String qw(t8);
 use SL::IS;
 use SL::ReportGenerator;
@@ -200,17 +201,24 @@ sub action_print_letter {
   $::form->get_employee_data('prefix' => 'employee', 'id' => $letter->{employee_id});
   $::form->get_employee_data('prefix' => 'salesman', 'id' => $letter->{salesman_id});
 
+  my ($template_file, @template_files) = SL::Helper::CreatePDF->find_template(
+    name        => 'letter',
+    printer_id  => $::form->{printer_id},
+    language_id => $::form->{language_id},
+    formname    => 'letter',
+    format      => 'pdf',
+  );
+
+  if (!defined $template_file) {
+    $::form->error($::locale->text('Cannot find matching template for this print request. Please contact your template maintainer. I tried these: #1.', join ', ', map { "'$_'"} @template_files));
+  }
+
   my %create_params = (
-    template  => scalar(SL::Helper::CreatePDF->find_template(
-      name        => 'letter',
-      printer_id  => $::form->{printer_id},
-      language_id => $::form->{language_id},
-      formname    => 'letter',
-      format      => 'pdf',
-    )),
+    template  => $template_file,
     variables => $::form,
     return    => 'file_name',
   );
+
   my $pdf_file_name;
   eval {
     $pdf_file_name = SL::Helper::CreatePDF->create_pdf(%create_params);
@@ -295,8 +303,6 @@ sub _display {
 
   my $letter = $self->letter;
 
-  require 'bin/mozilla/io.pl';
-
  $params{title} ||= t8('Edit Letter');
 
   $::form->{type}             = 'letter';   # needed for print_options
@@ -313,7 +319,12 @@ sub _display {
     PCF           => [ map { key => $_, value => t8(ucfirst $_) }, PAGE_CREATED_FOR_VALUES() ],
     letter        => $letter,
     employees     => $self->all_employees,
-    print_options => print_options(inline => 1),
+    print_options => SL::Helper::PrintOptions->get_print_options (
+      options => { no_postscript   => 1,
+                   no_opendocument => 1,
+                   no_html         => 1,
+                   no_queue        => 1 }),
+
   );
 }