X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Freport_generator.pl;h=112116d697c99e309fad2fed53326757f07ed146;hb=8365e092eb2088a8c2ebba604783555a13dc2a57;hp=6c766789b18925adaf78b37ceae6c73922e4792d;hpb=a939b72794643b5ad273886ff6d66b782eecb601;p=kivitendo-erp.git diff --git a/bin/mozilla/report_generator.pl b/bin/mozilla/report_generator.pl index 6c766789b..112116d69 100644 --- a/bin/mozilla/report_generator.pl +++ b/bin/mozilla/report_generator.pl @@ -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;