X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Frp.pl;h=f6db5e2e4c65e99693bcbef0882ce2f36e02a4f9;hb=8d183681663edcecdc49b9389b3869559b9b180d;hp=a4ba678e6948bc4a78ab74464c644240b2533258;hpb=46b5ee69606969a990eaae920bda522a56374c0e;p=kivitendo-erp.git diff --git a/bin/mozilla/rp.pl b/bin/mozilla/rp.pl index a4ba678e6..f6db5e2e4 100644 --- a/bin/mozilla/rp.pl +++ b/bin/mozilla/rp.pl @@ -43,6 +43,8 @@ use SL::DB::Project; use SL::DB::Customer; use SL::RP; use SL::Iconv; +use SL::Locale::String qw(t8); +use SL::Presenter::Tag; use SL::ReportGenerator; use Data::Dumper; use List::MoreUtils qw(any); @@ -142,7 +144,7 @@ sub report { ); $::form->{title} = $title{$::form->{report}}; - $::request->{layout}->add_javascripts('autocomplete_customer.js'); + $::request->{layout}->add_javascripts('kivi.CustomerVendor.js'); $::request->{layout}->add_javascripts('autocomplete_project.js'); $::form->{fromdate} = DateTime->today->truncate(to => 'year')->to_kivitendo; $::form->{todate} = DateTime->today->truncate(to => 'year')->add(years => 1)->add(days => -1)->to_kivitendo; @@ -164,6 +166,7 @@ sub report { my $is_trial_balance = $::form->{report} eq "trial_balance"; my $is_aging = $::form->{report} =~ /^a[rp]_aging$/; my $is_payments = $::form->{report} =~ /(receipts|payments)$/; + my $format = 'html'; my ($label, $nextsub, $vc); if ($is_aging) { @@ -174,6 +177,8 @@ sub report { $nextsub = "generate_$::form->{report}"; $vc = qq|{vc} size=35 class="initial_focus">|; + + $format = 'pdf'; } my ($selection, $paymentaccounts); @@ -189,6 +194,8 @@ sub report { } } + setup_rp_report_action_bar(); + $::form->header; print $::form->parse_html_template('rp/report', { paymentaccounts => $paymentaccounts, @@ -206,6 +213,7 @@ sub report { is_income_statement => $is_income_statement, is_erfolgsrechnung => $is_erfolgsrechnung, is_projects => $is_projects, + format => $format, }); $::lxdebug->leave_sub; @@ -622,7 +630,7 @@ sub generate_trial_balance { my $attachment_basename = $locale->text('trial_balance'); my $report = SL::ReportGenerator->new(\%myconfig, $form); - my @hidden_variables = qw(fromdate todate year method); + my @hidden_variables = qw(fromdate todate year method department_id); my $href = build_std_url('action=generate_trial_balance', grep { $form->{$_} } @hidden_variables); @@ -1001,7 +1009,7 @@ sub aging { my @columns = qw(statement ct invnumber transdate duedate amount open); my %column_defs = ( - 'statement' => { 'text' => '', 'visible' => $form->{ct} eq 'customer' ? 'HTML' : 0, }, + 'statement' => { raw_header_data => SL::Presenter::Tag::checkbox_tag("checkall", checkall => '[name^=statement_]'), 'visible' => $form->{ct} eq 'customer' ? 'HTML' : 0, align => "center" }, 'ct' => { 'text' => $form->{ct} eq 'customer' ? $locale->text('Customer') : $locale->text('Vendor'), }, 'invnumber' => { 'text' => $locale->text('Invoice'), }, 'transdate' => { 'text' => $locale->text('Date'), }, @@ -1016,8 +1024,7 @@ sub aging { $report->set_options('std_column_visibility' => 1); $report->set_columns(%column_defs); $report->set_column_order(@columns); - - my @hidden_variables = qw(todate customer vendor arap title ct fordate reporttype department); + my @hidden_variables = qw(todate customer vendor arap title ct fordate reporttype department fromdate); $report->set_export_options('generate_' . ($form->{arap} eq 'ar' ? 'ar' : 'ap') . '_aging', @hidden_variables); my @options; @@ -1112,62 +1119,12 @@ sub aging { 'raw_bottom_info_text' => $raw_bottom_info_text); } + setup_rp_aging_action_bar(arap => $form->{arap}); $report->generate_with_headers(); $main::lxdebug->leave_sub(); } -sub select_all { - $main::lxdebug->enter_sub(); - - my $form = $main::form; - my %myconfig = %main::myconfig; - my $locale = $main::locale; - - RP->aging(\%myconfig, \%$form); - - map { $_->{checked} = "checked" } @{ $form->{AG} }; - - &aging; - - $main::lxdebug->leave_sub(); -} - -sub e_mail { - $::lxdebug->enter_sub; - $::auth->assert('general_ledger'); - - # get name and email addresses - my $selected = 0; - for my $i (1 .. $::form->{rowcount}) { - next unless $::form->{"statement_$i"}; - $::form->{"$::form->{ct}_id"} = $::form->{"$::form->{ct}_id_$i"}; - RP->get_customer(\%::myconfig, $::form); - $selected = 1; - last; - } - - $::form->error($::locale->text('Nothing selected!')) unless $selected; - - $::form->{media} = "email"; - - # save all other variables - my @hidden_values; - for my $key (keys %$::form) { - next if any { $key eq $_ } qw(login password action email cc bcc subject message type sendmode format header); - next unless '' eq ref $::form->{$key}; - push @hidden_values, $key; - } - - $::form->header; - print $::form->parse_html_template('rp/e_mail', { - print_options => print_options(inline => 1), - hidden_values => \@hidden_values, - }); - - $::lxdebug->leave_sub; -} - sub send_email { $main::lxdebug->enter_sub(); @@ -1182,8 +1139,11 @@ sub send_email { RP->aging(\%myconfig, \%$form); - $form->{"statement_1"} = 1; + my $email_form = delete $form->{email_form}; + my %field_names = (to => 'email'); + + $form->{ $field_names{$_} // $_ } = $email_form->{$_} for keys %{ $email_form }; $form->{media} = 'email'; print_form(); @@ -1910,4 +1870,42 @@ sub hotfix_reformat_date { $main::lxdebug->leave_sub(); } + +sub setup_rp_aging_action_bar { + my %params = @_; + + return unless $params{arap} eq 'ar'; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + combobox => [ + action => [ + t8('Print'), + call => [ 'kivi.SalesPurchase.show_print_dialog' ], + checks => [ [ 'kivi.check_if_entries_selected', '[name^=statement_]' ] ], + ], + action => [ + t8('E Mail'), + call => [ 'kivi.SalesPurchase.show_email_dialog', 'send_email' ], + checks => [ [ 'kivi.check_if_entries_selected', '[name^=statement_]' ] ], + ], + ], + ); + } +} + +sub setup_rp_report_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Continue'), + submit => [ '#form', { action => 'continue' } ], + accesskey => 'enter', + ], + ); + } +} + 1;