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();