X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FRP.pm;h=4c817f8a16452f3c294f2282a845174cb29bbe99;hb=3253777d478fe7f8b8d85ef867c864cdae16d7fa;hp=51b78b46b0e47e0ef7dec65bf463b72a07f621c3;hpb=d319704a66e9be64da837ccea10af6774c2b0838;p=kivitendo-erp.git diff --git a/SL/RP.pm b/SL/RP.pm index 51b78b46b..4c817f8a1 100644 --- a/SL/RP.pm +++ b/SL/RP.pm @@ -34,209 +34,6 @@ package RP; -sub income_statement { - $main::lxdebug->enter_sub(); - - my ($self, $myconfig, $form) = @_; - - # connect to database - my $dbh = $form->dbconnect($myconfig); - - my $last_period = 0; - my @categories = qw(I E); - my $category; - - $form->{decimalplaces} *= 1; - - &get_accounts($dbh, $last_period, $form->{fromdate}, $form->{todate}, $form, - \@categories); - - # if there are any compare dates - if ($form->{comparefromdate} || $form->{comparetodate}) { - $last_period = 1; - - &get_accounts($dbh, $last_period, - $form->{comparefromdate}, - $form->{comparetodate}, - $form, \@categories); - } - - # disconnect - $dbh->disconnect; - - # now we got $form->{I}{accno}{ } - # and $form->{E}{accno}{ } - - my %account = ( - 'I' => { 'label' => 'income', - 'labels' => 'income', - 'ml' => 1 - }, - 'E' => { 'label' => 'expense', - 'labels' => 'expenses', - 'ml' => -1 - }); - - my $str; - - foreach $category (@categories) { - - foreach $key (sort keys %{ $form->{$category} }) { - - # push description onto array - - $str = ($form->{l_heading}) ? $form->{padding} : ""; - - if ($form->{$category}{$key}{charttype} eq "A") { - $str .= - ($form->{l_accno}) - ? "$form->{$category}{$key}{accno} - $form->{$category}{$key}{description}" - : "$form->{$category}{$key}{description}"; - } - if ($form->{$category}{$key}{charttype} eq "H") { - if ($account{$category}{subtotal} && $form->{l_subtotal}) { - $dash = "- "; - push(@{ $form->{"$account{$category}{label}_account"} }, - "$str$form->{bold}$account{$category}{subdescription}$form->{endbold}" - ); - push(@{ $form->{"$account{$category}{labels}_this_period"} }, - $form->format_amount( - $myconfig, - $account{$category}{subthis} * $account{$category}{ml}, - $form->{decimalplaces}, $dash - )); - - if ($last_period) { - push(@{ $form->{"$account{$category}{labels}_last_period"} }, - $form->format_amount( - $myconfig, - $account{$category}{sublast} * $account{$category}{ml}, - $form->{decimalplaces}, $dash - )); - } - - } - - $str = - "$form->{br}$form->{bold}$form->{$category}{$key}{description}$form->{endbold}"; - - $account{$category}{subthis} = $form->{$category}{$key}{this}; - $account{$category}{sublast} = $form->{$category}{$key}{last}; - $account{$category}{subdescription} = - $form->{$category}{$key}{description}; - $account{$category}{subtotal} = 1; - - $form->{$category}{$key}{this} = 0; - $form->{$category}{$key}{last} = 0; - - next unless $form->{l_heading}; - - $dash = " "; - } - - push(@{ $form->{"$account{$category}{label}_account"} }, $str); - - if ($form->{$category}{$key}{charttype} eq 'A') { - $form->{"total_$account{$category}{labels}_this_period"} += - $form->{$category}{$key}{this} * $account{$category}{ml}; - $dash = "- "; - } - - push(@{ $form->{"$account{$category}{labels}_this_period"} }, - $form->format_amount( - $myconfig, - $form->{$category}{$key}{this} * $account{$category}{ml}, - $form->{decimalplaces}, $dash - )); - - # add amount or - for last period - if ($last_period) { - $form->{"total_$account{$category}{labels}_last_period"} += - $form->{$category}{$key}{last} * $account{$category}{ml}; - - push(@{ $form->{"$account{$category}{labels}_last_period"} }, - $form->format_amount( - $myconfig, - $form->{$category}{$key}{last} * $account{$category}{ml}, - $form->{decimalplaces}, $dash - )); - } - } - - $str = ($form->{l_heading}) ? $form->{padding} : ""; - if ($account{$category}{subtotal} && $form->{l_subtotal}) { - push(@{ $form->{"$account{$category}{label}_account"} }, - "$str$form->{bold}$account{$category}{subdescription}$form->{endbold}" - ); - push(@{ $form->{"$account{$category}{labels}_this_period"} }, - $form->format_amount( - $myconfig, - $account{$category}{subthis} * $account{$category}{ml}, - $form->{decimalplaces}, $dash - )); - - if ($last_period) { - push(@{ $form->{"$account{$category}{labels}_last_period"} }, - $form->format_amount( - $myconfig, - $account{$category}{sublast} * $account{$category}{ml}, - $form->{decimalplaces}, $dash - )); - } - } - - } - - # totals for income and expenses - $form->{total_income_this_period} = - $form->round_amount($form->{total_income_this_period}, - $form->{decimalplaces}); - $form->{total_expenses_this_period} = - $form->round_amount($form->{total_expenses_this_period}, - $form->{decimalplaces}); - - # total for income/loss - $form->{total_this_period} = - $form->{total_income_this_period} - $form->{total_expenses_this_period}; - - if ($last_period) { - - # total for income/loss - $form->{total_last_period} = - $form->format_amount( - $myconfig, - $form->{total_income_last_period} - $form->{total_expenses_last_period}, - $form->{decimalplaces}, - "- "); - - # totals for income and expenses for last_period - $form->{total_income_last_period} = - $form->format_amount($myconfig, - $form->{total_income_last_period}, - $form->{decimalplaces}, "- "); - $form->{total_expenses_last_period} = - $form->format_amount($myconfig, - $form->{total_expenses_last_period}, - $form->{decimalplaces}, "- "); - - } - - $form->{total_income_this_period} = - $form->format_amount($myconfig, - $form->{total_income_this_period}, - $form->{decimalplaces}, "- "); - $form->{total_expenses_this_period} = - $form->format_amount($myconfig, - $form->{total_expenses_this_period}, - $form->{decimalplaces}, "- "); - $form->{total_this_period} = - $form->format_amount($myconfig, - $form->{total_this_period}, - $form->{decimalplaces}, "- "); - - $main::lxdebug->leave_sub(); -} - sub balance_sheet { $main::lxdebug->enter_sub(); @@ -600,7 +397,7 @@ sub get_accounts { if ($form->{method} eq 'cash') { $query = qq| - + SELECT g.accno, sum(ac.amount) AS amount, g.description, c.category FROM acc_trans ac @@ -621,9 +418,9 @@ sub get_accounts { ) $project GROUP BY g.accno, g.description, c.category - + UNION ALL - + SELECT '' AS accno, SUM(ac.amount) AS amount, '' AS description, c.category FROM acc_trans ac @@ -667,9 +464,9 @@ sub get_accounts { ) $project GROUP BY g.accno, g.description, c.category - + UNION ALL - + SELECT '' AS accno, SUM(ac.amount) AS amount, '' AS description, c.category FROM acc_trans ac @@ -694,7 +491,7 @@ sub get_accounts { UNION ALL -- add gl - + SELECT g.accno, sum(ac.amount) AS amount, g.description, c.category FROM acc_trans ac @@ -709,9 +506,9 @@ sub get_accounts { AND NOT (c.link = 'AR' OR c.link = 'AP') $project GROUP BY g.accno, g.description, c.category - + UNION ALL - + SELECT '' AS accno, SUM(ac.amount) AS amount, '' AS description, c.category FROM acc_trans ac @@ -731,9 +528,9 @@ sub get_accounts { if ($form->{project_id}) { $query .= qq| - + UNION ALL - + SELECT g.accno AS accno, SUM(ac.sellprice * ac.qty) AS amount, g.description AS description, c.category FROM invoice ac @@ -758,7 +555,7 @@ sub get_accounts { GROUP BY g.accno, g.description, c.category UNION ALL - + SELECT g.accno AS accno, SUM(ac.sellprice * ac.qty) * -1 AS amount, g.description AS description, c.category FROM invoice ac @@ -796,7 +593,7 @@ sub get_accounts { } $query = qq| - + SELECT g.accno, SUM(ac.amount) AS amount, g.description, c.category FROM acc_trans ac @@ -808,9 +605,9 @@ sub get_accounts { $category $project GROUP BY g.accno, g.description, c.category - + UNION ALL - + SELECT '' AS accno, SUM(ac.amount) AS amount, '' AS description, c.category FROM acc_trans ac @@ -827,9 +624,9 @@ sub get_accounts { if ($form->{project_id}) { $query .= qq| - + UNION ALL - + SELECT g.accno AS accno, SUM(ac.sellprice * ac.qty) AS amount, g.description AS description, c.category FROM invoice ac @@ -846,7 +643,7 @@ sub get_accounts { GROUP BY g.accno, g.description, c.category UNION ALL - + SELECT g.accno AS accno, SUM(ac.sellprice * ac.qty) * -1 AS amount, g.description AS description, c.category FROM invoice ac @@ -870,7 +667,7 @@ sub get_accounts { if ($form->{method} eq 'cash') { $query = qq| - + SELECT c.accno, sum(ac.amount) AS amount, c.description, c.category FROM acc_trans ac @@ -888,12 +685,12 @@ sub get_accounts { WHERE link LIKE '%AR_paid%' $subwhere ) - + $project GROUP BY c.accno, c.description, c.category - + UNION ALL - + SELECT c.accno, sum(ac.amount) AS amount, c.description, c.category FROM acc_trans ac @@ -911,10 +708,10 @@ sub get_accounts { WHERE link LIKE '%AP_paid%' $subwhere ) - + $project GROUP BY c.accno, c.description, c.category - + UNION ALL SELECT c.accno, sum(ac.amount) AS amount, @@ -935,9 +732,9 @@ sub get_accounts { if ($form->{project_id}) { $query .= qq| - + UNION ALL - + SELECT c.accno AS accno, SUM(ac.sellprice * ac.qty) AS amount, c.description AS description, c.category FROM invoice ac @@ -962,7 +759,7 @@ sub get_accounts { GROUP BY c.accno, c.description, c.category UNION ALL - + SELECT c.accno AS accno, SUM(ac.sellprice) AS amount, c.description AS description, c.category FROM invoice ac @@ -999,7 +796,7 @@ sub get_accounts { } $query = qq| - + SELECT c.accno, sum(ac.amount) AS amount, c.description, c.category FROM acc_trans ac @@ -1015,9 +812,9 @@ sub get_accounts { if ($form->{project_id}) { $query .= qq| - + UNION ALL - + SELECT c.accno AS accno, SUM(ac.sellprice * ac.qty) AS amount, c.description AS description, c.category FROM invoice ac @@ -1033,7 +830,7 @@ sub get_accounts { GROUP BY c.accno, c.description, c.category UNION ALL - + SELECT c.accno AS accno, SUM(ac.sellprice * ac.qty) * -1 AS amount, c.description AS description, c.category FROM invoice ac @@ -1121,6 +918,7 @@ sub get_accounts_g { my $project; my $where = "1 = 1"; my $glwhere = ""; + my $prwhere = ""; my $subwhere = ""; my $item; @@ -1128,6 +926,7 @@ sub get_accounts_g { if ($form->{method} eq 'cash') { $subwhere .= " AND transdate >= '$fromdate'"; $glwhere = " AND ac.transdate >= '$fromdate'"; + $prwhere = " AND ar.transdate >= '$fromdate'"; } else { $where .= " AND ac.transdate >= '$fromdate'"; } @@ -1136,6 +935,7 @@ sub get_accounts_g { if ($todate) { $where .= " AND ac.transdate <= '$todate'"; $subwhere .= " AND transdate <= '$todate'"; + $prwhere .= " AND ar.transdate <= '$todate'"; } if ($department_id) { @@ -1156,7 +956,7 @@ sub get_accounts_g { if ($form->{method} eq 'cash') { $query = qq| - + SELECT sum(ac.amount) AS amount, c.$category FROM acc_trans ac @@ -1173,12 +973,12 @@ sub get_accounts_g { WHERE link LIKE '%AR_paid%' $subwhere ) - + $project GROUP BY c.$category - + UNION - + SELECT sum(ac.amount) AS amount, c.$category FROM acc_trans ac @@ -1195,10 +995,10 @@ sub get_accounts_g { WHERE link LIKE '%AP_paid%' $subwhere ) - + $project GROUP BY c.$category - + UNION SELECT sum(ac.amount) AS amount, @@ -1218,9 +1018,9 @@ sub get_accounts_g { if ($form->{project_id}) { $query .= qq| - + UNION - + SELECT SUM(ac.sellprice * ac.qty) AS amount, c.$category FROM invoice ac @@ -1228,8 +1028,7 @@ sub get_accounts_g { JOIN parts p ON (ac.parts_id = p.id) JOIN chart c on (p.income_accno_id = c.id) $dpt_join - -- use transdate from subwhere - WHERE 1 = 1 $subwhere + WHERE 1 = 1 $prwhere AND c.category = 'I' $dpt_where AND ac.trans_id IN @@ -1245,7 +1044,7 @@ sub get_accounts_g { GROUP BY c.$category UNION - + SELECT SUM(ac.sellprice) AS amount, c.$category FROM invoice ac @@ -1253,7 +1052,7 @@ sub get_accounts_g { JOIN parts p ON (ac.parts_id = p.id) JOIN chart c on (p.expense_accno_id = c.id) $dpt_join - WHERE 1 = 1 $subwhere + WHERE 1 = 1 $prwhere AND c.category = 'E' $dpt_where AND ac.trans_id IN @@ -1282,7 +1081,7 @@ sub get_accounts_g { } $query = qq| - + SELECT sum(ac.amount) AS amount, c.$category FROM acc_trans ac @@ -1297,9 +1096,9 @@ sub get_accounts_g { if ($form->{project_id}) { $query .= qq| - + UNION - + SELECT SUM(ac.sellprice * ac.qty) AS amount, c.$category FROM invoice ac @@ -1307,15 +1106,14 @@ sub get_accounts_g { JOIN parts p ON (ac.parts_id = p.id) JOIN chart c on (p.income_accno_id = c.id) $dpt_join - -- use transdate from subwhere - WHERE 1 = 1 $subwhere + WHERE 1 = 1 $prwhere AND c.category = 'I' $dpt_where $project GROUP BY c.$category UNION - + SELECT SUM(ac.sellprice * ac.qty) * -1 AS amount, c.$category FROM invoice ac @@ -1323,7 +1121,7 @@ sub get_accounts_g { JOIN parts p ON (ac.parts_id = p.id) JOIN chart c on (p.expense_accno_id = c.id) $dpt_join - WHERE 1 = 1 $subwhere + WHERE 1 = 1 $prwhere AND c.category = 'E' $dpt_where $project @@ -1337,6 +1135,7 @@ sub get_accounts_g { my $accno; my $ref; + #print $query; my $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); @@ -1531,9 +1330,9 @@ sub trial_balance { $query .= qq| -- add project transactions from invoice - + UNION ALL - + SELECT g.accno, g.description, c.category, SUM(ac.sellprice * ac.qty) AS amount FROM invoice ac @@ -1548,7 +1347,7 @@ sub trial_balance { GROUP BY g.accno, g.description, c.category UNION ALL - + SELECT g.accno, g.description, c.category, SUM(ac.sellprice * ac.qty) * -1 AS amount FROM invoice ac @@ -1585,9 +1384,9 @@ sub trial_balance { $query .= qq| -- add project transactions from invoice - + UNION ALL - + SELECT c.accno, c.description, c.category, SUM(ac.sellprice * ac.qty) AS amount FROM invoice ac @@ -1601,7 +1400,7 @@ sub trial_balance { GROUP BY c.accno, c.description, c.category UNION ALL - + SELECT c.accno, c.description, c.category, SUM(ac.sellprice * ac.qty) * -1 AS amount FROM invoice ac @@ -1634,7 +1433,7 @@ sub trial_balance { $project AND ac.amount < 0 AND c.accno = ?) AS debit, - + (SELECT SUM(ac.amount) FROM acc_trans ac JOIN chart c ON (c.id = ac.chart_id) @@ -1657,7 +1456,7 @@ sub trial_balance { $project AND ac.amount < 0 AND c.gifi_accno = ?) AS debit, - + (SELECT SUM(ac.amount) FROM acc_trans ac JOIN chart c ON (c.id = ac.chart_id) @@ -1685,7 +1484,7 @@ sub trial_balance { $dpt_where $project AND c.accno = ?) AS debit, - + (SELECT SUM(ac.sellprice * ac.qty) FROM invoice ac JOIN parts p ON (ac.parts_id = p.id) @@ -1844,15 +1643,15 @@ sub aging { (SELECT $buysell FROM exchangerate WHERE $form->{arap}.curr = exchangerate.curr AND exchangerate.transdate = $form->{arap}.transdate) AS exchangerate - FROM $form->{arap}, $form->{ct} + FROM $form->{arap}, $form->{ct} WHERE paid != amount AND $form->{arap}.$form->{ct}_id = $form->{ct}.id AND $form->{ct}.id = $id AND ( - transdate <= (date '$form->{todate}' - interval '0 days') + transdate <= (date '$form->{todate}' - interval '0 days') AND transdate >= (date '$form->{todate}' - interval '30 days') ) - + UNION -- between 31-60 days @@ -1860,66 +1659,66 @@ sub aging { SELECT $form->{ct}.id AS ctid, $form->{ct}.name, street, zipcode, city, country, contact, email, phone as customerphone, fax as customerfax, $form->{ct}number, - "invnumber", "transdate", + "invnumber", "transdate", 0.00 as "c0", (amount - paid) as "c30", 0.00 as "c60", 0.00 as "c90", "duedate", invoice, $form->{arap}.id, (SELECT $buysell FROM exchangerate WHERE $form->{arap}.curr = exchangerate.curr AND exchangerate.transdate = $form->{arap}.transdate) AS exchangerate FROM $form->{arap}, $form->{ct} - WHERE paid != amount - AND $form->{arap}.$form->{ct}_id = $form->{ct}.id + WHERE paid != amount + AND $form->{arap}.$form->{ct}_id = $form->{ct}.id AND $form->{ct}.id = $id AND ( - transdate < (date '$form->{todate}' - interval '30 days') + transdate < (date '$form->{todate}' - interval '30 days') AND transdate >= (date '$form->{todate}' - interval '60 days') ) UNION - + -- between 61-90 days SELECT $form->{ct}.id AS ctid, $form->{ct}.name, street, zipcode, city, country, contact, email, phone as customerphone, fax as customerfax, $form->{ct}number, - "invnumber", "transdate", + "invnumber", "transdate", 0.00 as "c0", 0.00 as "c30", (amount - paid) as "c60", 0.00 as "c90", "duedate", invoice, $form->{arap}.id, (SELECT $buysell FROM exchangerate WHERE $form->{arap}.curr = exchangerate.curr AND exchangerate.transdate = $form->{arap}.transdate) AS exchangerate - FROM $form->{arap}, $form->{ct} + FROM $form->{arap}, $form->{ct} WHERE paid != amount - AND $form->{arap}.$form->{ct}_id = $form->{ct}.id + AND $form->{arap}.$form->{ct}_id = $form->{ct}.id AND $form->{ct}.id = $id AND ( - transdate < (date '$form->{todate}' - interval '60 days') + transdate < (date '$form->{todate}' - interval '60 days') AND transdate >= (date '$form->{todate}' - interval '90 days') ) UNION - + -- over 90 days SELECT $form->{ct}.id AS ctid, $form->{ct}.name, street, zipcode, city, country, contact, email, phone as customerphone, fax as customerfax, $form->{ct}number, - "invnumber", "transdate", + "invnumber", "transdate", 0.00 as "c0", 0.00 as "c30", 0.00 as "c60", (amount - paid) as "c90", "duedate", invoice, $form->{arap}.id, (SELECT $buysell FROM exchangerate WHERE $form->{arap}.curr = exchangerate.curr AND exchangerate.transdate = $form->{arap}.transdate) AS exchangerate - FROM $form->{arap}, $form->{ct} + FROM $form->{arap}, $form->{ct} WHERE paid != amount - AND $form->{arap}.$form->{ct}_id = $form->{ct}.id + AND $form->{arap}.$form->{ct}_id = $form->{ct}.id AND $form->{ct}.id = $id - AND transdate < (date '$form->{todate}' - interval '90 days') + AND transdate < (date '$form->{todate}' - interval '90 days') ORDER BY - + ctid, transdate, invnumber - + |; my $sth = $dbh->prepare($query); @@ -1989,7 +1788,7 @@ sub get_taxaccounts { $sth->finish; # get gifi tax accounts - my $query = qq|SELECT DISTINCT ON (g.accno) g.accno, g.description, + $query = qq|SELECT DISTINCT ON (g.accno) g.accno, g.description, sum(t.rate) AS rate FROM gifi g, chart c, tax t WHERE g.accno = c.gifi_accno @@ -1997,7 +1796,7 @@ sub get_taxaccounts { AND c.link LIKE '%CT_tax%' GROUP BY g.accno, g.description ORDER BY accno|; - my $sth = $dbh->prepare($query); + $sth = $dbh->prepare($query); $sth->execute || $form->dberror; while ($ref = $sth->fetchrow_hashref(NAME_lc)) { @@ -2088,7 +1887,7 @@ sub tax_report { my $ml = ($form->{db} eq 'ar') ? 1 : -1; my $sortorder = join ', ', $form->sort_columns(qw(transdate invnumber name)); - $sortorder = $form->{sort} unless $sortorder; + $sortorder = $form->{sort} if $form->{sort}; $query = qq|SELECT a.id, '0' AS invoice, $transdate AS transdate, a.invnumber, n.name, a.netamount, @@ -2247,6 +2046,7 @@ sub payments { my $sortorder = join ', ', $form->sort_columns(qw(name invnumber ordnumber transdate source)); + $sortorder = $form->{sort} if $form->{sort}; # cycle through each id foreach my $accno (split(/ /, $form->{paymentaccounts})) { @@ -2271,7 +2071,7 @@ sub payments { WHERE ac.chart_id = $ref->{id} $where $invnumber - + UNION SELECT g.description, g.reference, NULL AS ordnumber, ac.transdate, ac.amount * $ml AS paid, ac.source, @@ -2350,7 +2150,9 @@ sub bwa { $form->{"$key$category"} = $form->format_amount($myconfig, $form->round_amount($form->{$category}{$key}, 2 - )); + ), + $form->{decimalplaces}, + '0'); } } foreach $item (@gesamtleistung) { @@ -2372,8 +2174,8 @@ sub bwa { $form->{32}{$key} + $form->{33}{$key} + $form->{34}{$key}; $form->{ "$key" . "ergebnisvorsteuern" } = $form->{ "$key" . "betriebsergebnis" } - - ($form->{ "$key" . "neutraleraufwand" } + - $form->{ "$key" . "neutralertrag" }); + $form->{ "$key" . "neutraleraufwand" } + + $form->{ "$key" . "neutralertrag" }; $form->{ "$key" . "ergebnis" } = $form->{ "$key" . "ergebnisvorsteuern" } + $form->{35}{$key}; @@ -2387,8 +2189,10 @@ sub bwa { ($form->{$category}{$key} / $form->{ "$key" . "gesamtleistung" } * 100 ), - 2 - )); + $form->{decimalplaces} + ), + $form->{decimalplaces}, + '0'); } } foreach $item (@ergebnisse) { @@ -2398,8 +2202,10 @@ sub bwa { ( $form->{ "$key" . "$item" } / $form->{ "$key" . "gesamtleistung" } * 100 ), - 2 - )); + $form->{decimalplaces} + ), + $form->{decimalplaces}, + '0'); } } @@ -2412,8 +2218,10 @@ sub bwa { ($form->{$category}{$key} / $form->{ "$key" . "gesamtkosten" } * 100 ), - 2 - )); + $form->{decimalplaces} + ), + $form->{decimalplaces}, + '0'); } } foreach $item (@ergebnisse) { @@ -2423,8 +2231,10 @@ sub bwa { ($form->{ "$key" . "$item" } / $form->{ "$key" . "gesamtkosten" } * 100 ), - 2 - )); + $form->{decimalplaces} + ), + $form->{decimalplaces}, + '0'); } } @@ -2433,10 +2243,13 @@ sub bwa { if (defined($form->{$category}{$key})) { $form->{ "$key" . "pk" . "$category" } = $form->format_amount( - $myconfig, - $form->round_amount( - ($form->{$category}{$key} / $form->{10}{$key} * 100), 2 - )); + $myconfig, + $form->round_amount( + ($form->{$category}{$key} / $form->{10}{$key} * 100), + $form->{decimalplaces} + ), + $form->{decimalplaces}, + '0'); } } foreach $item (@ergebnisse) { @@ -2446,8 +2259,10 @@ sub bwa { ($form->{ "$key" . "$item" } / $form->{10}{$key} * 100 ), - 2 - )); + $form->{decimalplaces} + ), + $form->{decimalplaces}, + '0'); } } @@ -2456,10 +2271,13 @@ sub bwa { if (defined($form->{$category}{$key})) { $form->{ "$key" . "auf" . "$category" } = $form->format_amount( - $myconfig, - $form->round_amount( - ($form->{$category}{$key} / $form->{4}{$key} * 100), 2 - )); + $myconfig, + $form->round_amount( + ($form->{$category}{$key} / $form->{4}{$key} * 100), + $form->{decimalplaces} + ), + $form->{decimalplaces}, + '0'); } } foreach $item (@ergebnisse) { @@ -2469,16 +2287,21 @@ sub bwa { ($form->{ "$key" . "$item" } / $form->{4}{$key} * 100 ), - 2 - )); + $form->{decimalplaces} + ), + $form->{decimalplaces}, + '0'); } } foreach $item (@ergebnisse) { $form->{ "$key" . "$item" } = $form->format_amount($myconfig, - $form->round_amount($form->{ "$key" . "$item" }, 2 - )); + $form->round_amount($form->{ "$key" . "$item" }, + $form->{decimalplaces} + ), + $form->{decimalplaces}, + '0'); } } @@ -2497,7 +2320,8 @@ sub ustva { my $last_period = 0; my $category = "pos_ustva"; - my @categories_cent = qw(51r 86r 97r 93r 96 66 43 45 53 62 65 67); + my @categories_cent = qw(51r 511 86r 861 97r 971 93r 931 + 96 66 43 45 53 62 65 67); my @categories_euro = qw(48 51 86 91 97 93 94); $form->{decimalplaces} *= 1; @@ -2536,12 +2360,16 @@ sub ustva { # # } - $form->{"51r"} = $form->{"51"} * 0.16; - $form->{"86r"} = $form->{"86"} * 0.07; - $form->{"97r"} = $form->{"97"} * 0.16; - $form->{"93r"} = $form->{"93"} * 0.07; - $form->{"96"} = $form->{"94"} * 0.16; - $form->{"43"} = + # + # Berechnung der USTVA Formularfelder + # + $form->{"51r"} = $form->{"511"}; + $form->{"86r"} = $form->{"861"}; + $form->{"97r"} = $form->{"971"}; + $form->{"93r"} = $form->{"931"}; + + #$form->{"96"} = $form->{"94"} * 0.16; + $form->{"43"} = $form->{"51r"} + $form->{"86r"} + $form->{"97r"} + $form->{"93r"} + $form->{"96"}; $form->{"45"} = $form->{"43"}; @@ -2552,12 +2380,14 @@ sub ustva { foreach $item (@categories_cent) { $form->{$item} = - $form->format_amount($myconfig, $form->round_amount($form->{$item}, 2)); + $form->format_amount($myconfig, $form->round_amount($form->{$item}, 2), + 2, '0'); } foreach $item (@categories_euro) { $form->{$item} = - $form->format_amount($myconfig, $form->round_amount($form->{$item}, 0)); + $form->format_amount($myconfig, $form->round_amount($form->{$item}, 0), + 0, '0'); } $dbh->disconnect; @@ -2617,4 +2447,3 @@ sub income_statement { $main::lxdebug->leave_sub(); } 1; -