X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FRP.pm;h=79f0403f248ebdff051da9d76b2bf6e73c9e10cf;hb=eae5f8bdbca22f1f8c7ba4439dafbe3b89b6a143;hp=a04351e0deb6b11f37578f921a6158e3f78e57de;hpb=d0a4a74d03be3d3cc56d4785b0e323891531395f;p=kivitendo-erp.git diff --git a/SL/RP.pm b/SL/RP.pm index a04351e0d..79f0403f2 100644 --- a/SL/RP.pm +++ b/SL/RP.pm @@ -39,6 +39,7 @@ use SL::DBUtils; use Data::Dumper; use SL::DB::Helper::AccountingPeriod qw(get_balance_starting_date); use List::Util qw(sum); +use List::UtilsBy qw(partition_by sort_by); use SL::DB; # use warnings; @@ -1645,6 +1646,15 @@ sub bwa { &get_accounts_g($dbh, $last_period, $kummfromdate, $kummtodate, $form, "pos_bwa"); } + my %charts_by_category = + partition_by { $_->{pos_bwa} } + sort_by { $_->{accno} } + map { $form->{charts}->{$_} } + keys %{ $form->{charts} }; + $form->{"charts_by_category"} = \%charts_by_category; + + $form->{category_names} = AM->get_bwa_categories($myconfig, $form); + my @periods = qw(jetzt kumm); my @gesamtleistung = qw(1 3); my @gesamtkosten = qw (10 11 12 13 14 15 16 17 18 20); @@ -1845,19 +1855,34 @@ sub income_statement { $form, "pos_eur"); + # add extra information to form to be used by template + my %charts_by_category = + partition_by { $_->{pos_eur} } + sort_by { $_->{accno} } + map { $form->{charts}->{$_} } + keys %{ $form->{charts} }; + $form->{"charts_by_category"} = \%charts_by_category; + + $form->{"categories_income"} = \@categories_einnahmen; + $form->{"categories_expense"} = \@categories_ausgaben; + + $form->{category_names} = AM->get_eur_categories($myconfig, $form); + + my %eur_amounts; + foreach my $item (@categories_einnahmen) { - $form->{"eur${item}"} = - $form->format_amount($myconfig, $form->round_amount($form->{$item}, 2),2); + $eur_amounts{$item} = $form->format_amount($myconfig, $form->round_amount($form->{$item}, 2),2); $form->{"sumeura"} += $form->{$item}; } foreach my $item (@categories_ausgaben) { - $form->{"eur${item}"} = - $form->format_amount($myconfig, $form->round_amount($form->{$item}, 2),2); + $eur_amounts{$item} = $form->format_amount($myconfig, $form->round_amount($form->{$item}, 2),2); $form->{"sumeurb"} += $form->{$item}; } $form->{"guvsumme"} = $form->{"sumeura"} - $form->{"sumeurb"}; + $form->{eur_amounts} = \%eur_amounts; + foreach my $item (@ergebnisse) { $form->{$item} = $form->format_amount($myconfig, $form->round_amount($form->{$item}, 2),2); @@ -1889,13 +1914,13 @@ sub erfolgsrechnung { foreach my $account (@{$category{accounts}}) { $account->{total} += get_total_ch($account->{id}, $fromdate, $todate); $category{total} += $account->{total}; - $account->{total} = $form->format_amount($myconfig, $form->parse_amount($myconfig, $account->{total}), 2); + $account->{total} = $form->format_amount($myconfig, $form->round_amount($account->{total}, 2), 2); } $form->{total} += $category{total}; - $category{total} = $form->format_amount($myconfig, $form->parse_amount($myconfig, $category{total}), 2); + $category{total} = $form->format_amount($myconfig, $form->round_amount($category{total}, 2), 2); push(@{$form->{categories}}, \%category); } - $form->{total} = $form->format_amount($myconfig, $form->parse_amount($myconfig, $form->{total}), 2); + $form->{total} = $form->format_amount($myconfig, $form->round_amount($form->{total}, 2), 2); $main::lxdebug->leave_sub(); return {};