Die Berichte über offene Forderungen und offene Verbindlichkeiten auf die Verwendung...
[kivitendo-erp.git] / bin / mozilla / report_generator.pl
index 6c76678..112116d 100644 (file)
@@ -9,16 +9,27 @@
 #
 ######################################################################
 
+use List::Util qw(max);
+
 use SL::Form;
 use SL::Common;
 use SL::MoreCommon;
 use SL::ReportGenerator;
 
-sub export_as_pdf {
+sub report_generator_export_as_pdf {
   $lxdebug->enter_sub();
 
   if ($form->{report_generator_pdf_options_set}) {
+    my $saved_form = save_form();
+
     report_generator_do('PDF');
+
+    if ($form->{report_generator_printed}) {
+      restore_form($saved_form);
+      $form->{MESSAGE} = $locale->text('The list has been printed.');
+      report_generator_do('HTML');
+    }
+
     $lxdebug->leave_sub();
     return;
   }
@@ -26,16 +37,23 @@ sub export_as_pdf {
   my @form_values;
   map { push @form_values, { 'key' => $_, 'value' => $form->{$_} } } keys %{ $form };
 
+  $form->get_lists('printers' => 'ALL_PRINTERS');
+  map { $_->{selected} = $myconfig{default_printer_id} == $_->{id} } @{ $form->{ALL_PRINTERS} };
+
+  $form->{copies} = max $myconfig{copies} * 1, 1;
+
   $form->{title} = $locale->text('PDF export -- options');
   $form->header();
   print $form->parse_html_template('report_generator/pdf_export_options',
                                    { 'HIDDEN'         => \@form_values,
-                                     'default_margin' => $form->format_amount(\%myconfig, 1.5) });
+                                     'default_margin' => $form->format_amount(\%myconfig, 1.5),
+                                     'SHOW_PRINTERS'  => scalar @{ $form->{ALL_PRINTERS} },
+                                   });
 
   $lxdebug->leave_sub();
 }
 
-sub export_as_csv {
+sub report_generator_export_as_csv {
   $lxdebug->enter_sub();
 
   if ($form->{report_generator_csv_options_set}) {
@@ -54,6 +72,14 @@ sub export_as_csv {
   $lxdebug->leave_sub();
 }
 
+sub report_generator_back {
+  $lxdebug->enter_sub();
+
+  report_generator_do('HTML');
+
+  $lxdebug->leave_sub();
+}
+
 sub report_generator_do {
   $lxdebug->enter_sub();
 
@@ -77,4 +103,19 @@ sub report_generator_do {
   $lxdebug->leave_sub();
 }
 
+sub report_generator_dispatcher {
+  $lxdebug->enter_sub();
+
+  my $nextsub = $form->{report_generator_dispatch_to};
+  if (!$nextsub) {
+    $form->error($locale->text('report_generator_dispatch_to is not defined.'));
+  }
+
+  delete $form->{report_generator_dispatch_to};
+
+  call_sub($nextsub);
+
+  $lxdebug->leave_sub();
+}
+
 1;