X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;ds=sidebyside;f=SL%2FRP.pm;h=c01a442534cde6bcc9ffc0950ed0dc72e4e810b1;hb=8e53eafd1ab02a8d310691c245279c732031df3b;hp=51b78b46b0e47e0ef7dec65bf463b72a07f621c3;hpb=d319704a66e9be64da837ccea10af6774c2b0838;p=kivitendo-erp.git diff --git a/SL/RP.pm b/SL/RP.pm index 51b78b46b..c01a44253 100644 --- a/SL/RP.pm +++ b/SL/RP.pm @@ -600,7 +600,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 +621,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 +667,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 +694,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 +709,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 +731,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 +758,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 +796,7 @@ sub get_accounts { } $query = qq| - + SELECT g.accno, SUM(ac.amount) AS amount, g.description, c.category FROM acc_trans ac @@ -808,9 +808,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 +827,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 +846,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 +870,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 +888,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 +911,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 +935,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 +962,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 +999,7 @@ sub get_accounts { } $query = qq| - + SELECT c.accno, sum(ac.amount) AS amount, c.description, c.category FROM acc_trans ac @@ -1015,9 +1015,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 +1033,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 @@ -1156,7 +1156,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 +1173,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 +1195,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 +1218,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 @@ -1245,7 +1245,7 @@ sub get_accounts_g { GROUP BY c.$category UNION - + SELECT SUM(ac.sellprice) AS amount, c.$category FROM invoice ac @@ -1282,7 +1282,7 @@ sub get_accounts_g { } $query = qq| - + SELECT sum(ac.amount) AS amount, c.$category FROM acc_trans ac @@ -1297,9 +1297,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 @@ -1315,7 +1315,7 @@ sub get_accounts_g { GROUP BY c.$category UNION - + SELECT SUM(ac.sellprice * ac.qty) * -1 AS amount, c.$category FROM invoice ac @@ -1336,7 +1336,7 @@ sub get_accounts_g { my @accno; my $accno; my $ref; - + #print $query; my $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); @@ -1531,9 +1531,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 +1548,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 +1585,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 +1601,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 +1634,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 +1657,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 +1685,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 +1844,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 +1860,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); @@ -2088,7 +2088,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,7 +2247,8 @@ 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 +2272,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, @@ -2344,13 +2345,14 @@ sub bwa { $form->{ "$key" . "gesamtleistung" } = 0; $form->{ "$key" . "gesamtkosten" } = 0; + foreach $category (@categories) { if (defined($form->{$category}{$key})) { $form->{"$key$category"} = $form->format_amount($myconfig, $form->round_amount($form->{$category}{$key}, 2 - )); + ), $form->{decimalplaces}, '0'); } } foreach $item (@gesamtleistung) { @@ -2372,8 +2374,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 +2389,8 @@ sub bwa { ($form->{$category}{$key} / $form->{ "$key" . "gesamtleistung" } * 100 ), - 2 - )); + $form->{decimalplaces} + ), $form->{decimalplaces}, '0'); } } foreach $item (@ergebnisse) { @@ -2398,8 +2400,8 @@ sub bwa { ( $form->{ "$key" . "$item" } / $form->{ "$key" . "gesamtleistung" } * 100 ), - 2 - )); + $form->{decimalplaces} + ), $form->{decimalplaces}, '0'); } } @@ -2412,8 +2414,8 @@ sub bwa { ($form->{$category}{$key} / $form->{ "$key" . "gesamtkosten" } * 100 ), - 2 - )); + $form->{decimalplaces} + ), $form->{decimalplaces}, '0'); } } foreach $item (@ergebnisse) { @@ -2423,8 +2425,8 @@ sub bwa { ($form->{ "$key" . "$item" } / $form->{ "$key" . "gesamtkosten" } * 100 ), - 2 - )); + $form->{decimalplaces} + ), $form->{decimalplaces}, '0'); } } @@ -2435,8 +2437,9 @@ sub bwa { $form->format_amount( $myconfig, $form->round_amount( - ($form->{$category}{$key} / $form->{10}{$key} * 100), 2 - )); + ($form->{$category}{$key} / $form->{10}{$key} * 100), + $form->{decimalplaces} + ), $form->{decimalplaces}, '0'); } } foreach $item (@ergebnisse) { @@ -2446,8 +2449,8 @@ sub bwa { ($form->{ "$key" . "$item" } / $form->{10}{$key} * 100 ), - 2 - )); + $form->{decimalplaces} + ), $form->{decimalplaces}, '0'); } } @@ -2458,8 +2461,9 @@ sub bwa { $form->format_amount( $myconfig, $form->round_amount( - ($form->{$category}{$key} / $form->{4}{$key} * 100), 2 - )); + ($form->{$category}{$key} / $form->{4}{$key} * 100), + $form->{decimalplaces} + ), $form->{decimalplaces}, '0'); } } foreach $item (@ergebnisse) { @@ -2469,16 +2473,17 @@ 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 +2502,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; @@ -2535,12 +2541,15 @@ 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; + + # + # 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"}; @@ -2552,12 +2561,12 @@ 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 +2626,3 @@ sub income_statement { $main::lxdebug->leave_sub(); } 1; -