1 #=====================================================================
 
   4 # Based on SQL-Ledger Version 2.1.9
 
   5 # Web http://www.lx-office.org
 
   6 ######################################################################
 
   8 # Stuff that can be used from other modules
 
  10 ######################################################################
 
  12 use List::Util qw(max);
 
  17 use SL::ReportGenerator;
 
  19 sub report_generator_export_as_pdf {
 
  20   $lxdebug->enter_sub();
 
  22   if ($form->{report_generator_pdf_options_set}) {
 
  23     my $saved_form = save_form();
 
  25     report_generator_do('PDF');
 
  27     if ($form->{report_generator_printed}) {
 
  28       restore_form($saved_form);
 
  29       $form->{MESSAGE} = $locale->text('The list has been printed.');
 
  30       report_generator_do('HTML');
 
  33     $lxdebug->leave_sub();
 
  38   map { push @form_values, { 'key' => $_, 'value' => $form->{$_} } } keys %{ $form };
 
  40   $form->get_lists('printers' => 'ALL_PRINTERS');
 
  41   map { $_->{selected} = $myconfig{default_printer_id} == $_->{id} } @{ $form->{ALL_PRINTERS} };
 
  43   $form->{copies} = max $myconfig{copies} * 1, 1;
 
  45   $form->{title} = $locale->text('PDF export -- options');
 
  47   print $form->parse_html_template('report_generator/pdf_export_options',
 
  48                                    { 'HIDDEN'         => \@form_values,
 
  49                                      'default_margin' => $form->format_amount(\%myconfig, 1.5),
 
  50                                      'SHOW_PRINTERS'  => scalar @{ $form->{ALL_PRINTERS} },
 
  53   $lxdebug->leave_sub();
 
  56 sub report_generator_export_as_csv {
 
  57   $lxdebug->enter_sub();
 
  59   if ($form->{report_generator_csv_options_set}) {
 
  60     report_generator_do('CSV');
 
  61     $lxdebug->leave_sub();
 
  66   map { push @form_values, { 'key' => $_, 'value' => $form->{$_} } } keys %{ $form };
 
  68   $form->{title} = $locale->text('CSV export -- options');
 
  70   print $form->parse_html_template('report_generator/csv_export_options', { 'HIDDEN' => \@form_values });
 
  72   $lxdebug->leave_sub();
 
  75 sub report_generator_back {
 
  76   $lxdebug->enter_sub();
 
  78   report_generator_do('HTML');
 
  80   $lxdebug->leave_sub();
 
  83 sub report_generator_do {
 
  84   $lxdebug->enter_sub();
 
  88   my $nextsub = $form->{report_generator_nextsub};
 
  90     $form->error($locale->text('report_generator_nextsub is not defined.'));
 
  93   foreach my $key (split m/ +/, $form->{report_generator_variable_list}) {
 
  94     $form->{$key} = $form->{"report_generator_hidden_${key}"};
 
  97   $form->{report_generator_output_format} = $format;
 
  99   delete @{$form}{map { "report_generator_$_" } qw(nextsub variable_list)};
 
 103   $lxdebug->leave_sub();
 
 106 sub report_generator_dispatcher {
 
 107   $lxdebug->enter_sub();
 
 109   my $nextsub = $form->{report_generator_dispatch_to};
 
 111     $form->error($locale->text('report_generator_dispatch_to is not defined.'));
 
 114   delete $form->{report_generator_dispatch_to};
 
 118   $lxdebug->leave_sub();