X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Frp.pl;h=87f84b21770afae6f1854c2b7dfc070698cec83e;hb=14d71a6d1215e4fc67136c060fd21cd6c59602af;hp=87fae36ba56d0eba07ada9ce2a7e173a2dfea291;hpb=71d1fccd416499c24500f33d04651ac83a8d232c;p=kivitendo-erp.git diff --git a/bin/mozilla/rp.pl b/bin/mozilla/rp.pl index 87fae36ba..87f84b217 100644 --- a/bin/mozilla/rp.pl +++ b/bin/mozilla/rp.pl @@ -39,6 +39,7 @@ use POSIX qw(strftime); use SL::DB::Default; use SL::DB::Project; +use SL::DB::Customer; use SL::PE; use SL::RP; use SL::Iconv; @@ -100,15 +101,16 @@ use strict; # $form->parse_html_template('rp/html_report_susa') my $rp_access_map = { - 'projects' => 'report', - 'ar_aging' => 'general_ledger', - 'ap_aging' => 'general_ledger', - 'receipts' => 'cash', - 'payments' => 'cash', - 'trial_balance' => 'report', - 'income_statement' => 'report', - 'bwa' => 'report', - 'balance_sheet' => 'report', + 'projects' => 'report', + 'ar_aging' => 'general_ledger', + 'ap_aging' => 'general_ledger', + 'receipts' => 'cash', + 'payments' => 'cash', + 'trial_balance' => 'report', + 'income_statement' => 'report', + 'erfolgsrechnung' => 'report', + 'bwa' => 'report', + 'balance_sheet' => 'report', }; sub check_rp_access { @@ -128,6 +130,7 @@ sub report { my %title = ( balance_sheet => $::locale->text('Balance Sheet'), income_statement => $::locale->text('Income Statement'), + erfolgsrechnung => $::locale->text('Erfolgsrechnung'), trial_balance => $::locale->text('Trial Balance'), ar_aging => $::locale->text('Search AR Aging'), ap_aging => $::locale->text('Search AP Aging'), @@ -140,6 +143,9 @@ sub report { ); $::form->{title} = $title{$::form->{report}}; + $::request->{layout}->add_javascripts('autocomplete_customer.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; # get departments $::form->all_departments(\%::myconfig); @@ -150,13 +156,14 @@ sub report { $::form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 1 }); - my $is_projects = $::form->{report} eq "projects"; - my $is_income_statement = $::form->{report} eq "income_statement"; - my $is_bwa = $::form->{report} eq "bwa"; - my $is_balance_sheet = $::form->{report} eq "balance_sheet"; - 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 $is_projects = $::form->{report} eq "projects"; + my $is_income_statement = $::form->{report} eq "income_statement"; + my $is_erfolgsrechnung = $::form->{report} eq "erfolgsrechnung"; + my $is_bwa = $::form->{report} eq "bwa"; + my $is_balance_sheet = $::form->{report} eq "balance_sheet"; + 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 ($label, $nextsub, $vc); if ($is_aging) { @@ -189,22 +196,21 @@ sub report { $::form->header; print $::form->parse_html_template('rp/report', { - paymentaccounts => $paymentaccounts, - selection => $selection, - is_aging => $is_aging, - vc => $vc, - label => $label, - year => DateTime->today->year, - today => DateTime->today, - nextsub => $nextsub, - accrual => $::instance_conf->get_accounting_method ne 'cash', - cash => $::instance_conf->get_accounting_method eq 'cash', - is_payments => $is_payments, - is_trial_balance => $is_trial_balance, - is_balance_sheet => $is_balance_sheet, - is_bwa => $is_bwa, - is_income_statement => $is_income_statement, - is_projects => $is_projects, + paymentaccounts => $paymentaccounts, + selection => $selection, + is_aging => $is_aging, + vc => $vc, + label => $label, + year => DateTime->today->year, + today => DateTime->today, + nextsub => $nextsub, + is_payments => $is_payments, + is_trial_balance => $is_trial_balance, + is_balance_sheet => $is_balance_sheet, + is_bwa => $is_bwa, + is_income_statement => $is_income_statement, + is_erfolgsrechnung => $is_erfolgsrechnung, + is_projects => $is_projects, }); $::lxdebug->leave_sub; @@ -221,10 +227,6 @@ sub generate_income_statement { my %myconfig = %main::myconfig; my $locale = $main::locale; - my $defaults = SL::DB::Default->get; - $form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates; - $form->{templates} = $defaults->templates; - $form->{padding} = "  "; $form->{bold} = ""; $form->{endbold} = ""; @@ -376,11 +378,11 @@ sub generate_income_statement { } if ( $::instance_conf->get_profit_determination eq 'balance' ) { - $form->{income_statement_title} = $locale->text('Income Statement'); + $form->{title} = $locale->text('Income Statement'); } elsif ( $::instance_conf->get_profit_determination eq 'income' ) { - $form->{income_statement_title} = $locale->text('Net Income Statement'); + $form->{title} = $locale->text('Net Income Statement'); } else { - $form->{income_statement_title} = ""; + $form->{title} = ""; }; if ( $form->{method} eq 'cash' ) { @@ -391,22 +393,37 @@ sub generate_income_statement { $form->{accounting_method} = ""; }; - $::form->{report_date} = $locale->text('Report date') . ": " . $::form->current_date; - - $form->{IN} = "income_statement.html"; + $form->{report_date} = $locale->text('Report date') . ": " . $form->current_date; - $form->parse_template; + $form->header; + print $form->parse_html_template('rp/income_statement'); $main::lxdebug->leave_sub(); } +sub generate_erfolgsrechnung { + $::lxdebug->enter_sub; + $::auth->assert('report'); + + $::form->{decimalplaces} = $::form->{decimalplaces} * 1 || 2; + $::form->{padding} = " "; + $::form->{bold} = ""; + $::form->{endbold} = ""; + $::form->{br} = "
"; + + my $data = RP->erfolgsrechnung(\%::myconfig, $::form); + + $::form->header(); + print $::form->parse_html_template('rp/erfolgsrechnung', $data); + + $::lxdebug->leave_sub; +} + + sub generate_balance_sheet { $::lxdebug->enter_sub; $::auth->assert('report'); - my $defaults = SL::DB::Default->get; - $::form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates; - $::form->{templates} = $defaults->templates; $::form->{decimalplaces} = $::form->{decimalplaces} * 1 || 2; $::form->{padding} = "  "; $::form->{bold} = ""; @@ -638,6 +655,11 @@ sub generate_trial_balance { $form->{company} = $locale->text('Company') . " " . $defaults->company; push (@options, $form->{company}); + if ($::form->{customer_id}) { + my $customer = SL::DB::Manager::Customer->find_by(id => $::form->{customer_id}); + push @options, $::locale->text('Customer') . ' ' . $customer->displayable_name; + } + $form->{template_to} = $locale->date(\%myconfig, $form->{todate}, 0); @@ -1132,7 +1154,6 @@ sub e_mail { $::form->header; print $::form->parse_html_template('rp/e_mail', { - show_bcc => $::auth->assert('email_bcc', 'may fail'), print_options => print_options(inline => 1), hidden_values => \@hidden_values, }); @@ -1631,8 +1652,6 @@ sub print_options { $::form->{SM}{ $::form->{sendmode} } = "selected"; my $output = $::form->parse_html_template('rp/print_options', { - got_printer => $::myconfig{printer}, - show_latex => $::lx_office_conf{print_templates}->{latex}, is_email => $::form->{media} eq 'email', }); @@ -1652,10 +1671,6 @@ sub generate_bwa { my %myconfig = %main::myconfig; my $locale = $main::locale; - my $defaults = SL::DB::Default->get; - $form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates; - $form->{templates} = $defaults->templates; - $form->{padding} = "  "; $form->{bold} = ""; $form->{endbold} = ""; @@ -1801,8 +1816,7 @@ sub generate_bwa { # if (defined ($form->{fromdate|todate}=='..')) # immer wahr if ($form->{fromdate}){ - my ($yy, $mm, $dd) = $locale->parse_date(\%myconfig, $form->{fromdate}); - my $datetime = $locale->parse_date_to_object(\%myconfig, $form->{fromdate}); + my $datetime = $locale->parse_date_to_object($form->{fromdate}); $datetime->set( month => 1, day => 1); $form->{comparefromdate} = $locale->format_date(\%::myconfig, $datetime); @@ -1843,9 +1857,21 @@ sub generate_bwa { . qq| $longtodate|; } - $form->{IN} = "bwa.html"; + $form->{report_date} = $locale->text('Report date') . ": " . $form->current_date; + + if ( $form->{method} eq 'cash' ) { + $form->{accounting_method} = $locale->text('Cash accounting'); + } elsif ( $form->{method} eq 'accrual' ) { + $form->{accounting_method} = $locale->text('Accrual accounting'); + } else { + $form->{accounting_method} = ""; + }; + + $form->{title} = $locale->text('BWA'); - $form->parse_template; + $::request->layout->add_stylesheets('bwa.css'); + $form->header; + print $form->parse_html_template('rp/bwa'); $main::lxdebug->leave_sub(); }