X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=inline;f=bin%2Fmozilla%2Frp.pl;h=e5b7060c945ff0dae15a8e0ee734ccfb925eeac0;hb=16f131c37eac3667c2e789ab94ab2618fd8f41ed;hp=bb87a77e3b09840484c6120b943deb65726525a3;hpb=edb2023a832f426553a7d90342ebc56200f325f1;p=kivitendo-erp.git
diff --git a/bin/mozilla/rp.pl b/bin/mozilla/rp.pl
index bb87a77e3..e5b7060c9 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} = "";
@@ -375,20 +377,53 @@ sub generate_income_statement {
. qq| $longcomparetodate|;
}
- $form->{IN} = "income_statement.html";
+ if ( $::instance_conf->get_profit_determination eq 'balance' ) {
+ $form->{title} = $locale->text('Income Statement');
+ } elsif ( $::instance_conf->get_profit_determination eq 'income' ) {
+ $form->{title} = $locale->text('Net Income Statement');
+ } else {
+ $form->{title} = "";
+ };
+
+ 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->{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} = "";
@@ -620,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);
@@ -970,7 +1010,7 @@ sub aging {
$report->set_columns(%column_defs);
$report->set_column_order(@columns);
- my @hidden_variables = qw(todate customer vendor arap title ct fordate reporttype);
+ my @hidden_variables = qw(todate customer vendor arap title ct fordate reporttype department);
$report->set_export_options('generate_' . ($form->{arap} eq 'ar' ? 'ar' : 'ap') . '_aging', @hidden_variables);
my @options;
@@ -1114,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,
});
@@ -1613,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',
});
@@ -1634,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} = "";
@@ -1783,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);
@@ -1825,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();
}