From: Philip Reetz Date: Tue, 12 Dec 2006 07:49:11 +0000 (+0000) Subject: Anpassung Dialogbuchen an neues Steuersystem X-Git-Tag: release-2.4.0^2~82 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=744cfc2096349710e763d5103eef3250c52a32db;hp=1182c721b69503999176a1804b2101745d36f0c7;p=kivitendo-erp.git Anpassung Dialogbuchen an neues Steuersystem --- diff --git a/SL/GL.pm b/SL/GL.pm index c56de7beb..7eccc0dd8 100644 --- a/SL/GL.pm +++ b/SL/GL.pm @@ -145,10 +145,25 @@ sub post_transaction { # insert acc_trans transactions for $i (1 .. $form->{rowcount}) { - + my $taxkey; + my $rate; # extract accno + print(STDERR $form->{"taxchart_$i"}, "TAXCHART\n"); my ($accno) = split(/--/, $form->{"accno_$i"}); my ($taxkey, $rate) = split(/--/, $form->{"taxchart_$i"}); + ($form->{"tax_id_$i"}, $NULL) = split /--/, $form->{"taxchart_$i"}; + if ($form->{"tax_id_$i"} ne "") { + $query = qq|SELECT t.taxkey, t.rate + FROM tax t + WHERE t.id=$form->{"tax_id_$i"}|; + + $sth = $dbh->prepare($query); + $sth->execute || $form->dberror($query); + ($taxkey, $rate) = + $sth->fetchrow_array; + $sth->finish; + } + my $amount = 0; my $debit = $form->{"debit_$i"}; my $credit = $form->{"credit_$i"}; @@ -194,7 +209,7 @@ sub post_transaction { VALUES ($form->{id}, (SELECT t.chart_id FROM tax t - WHERE t.taxkey = $taxkey), + WHERE t.id = $form->{"tax_id_$i"}), $amount, '$form->{transdate}', | . $dbh->quote($form->{"source_$i"}) . qq|, | . $dbh->quote($form->{"memo_$i"}) . qq|, @@ -608,6 +623,19 @@ sub transaction { WHERE a.chart_id = c.id AND a.trans_id = $form->{id} ORDER BY a.oid"; + + $query = qq|SELECT c.accno, t.taxkey AS accnotaxkey, a.amount, a.memo, + a.transdate, a.cleared, a.project_id, p.projectnumber,(SELECT p.projectnumber FROM project p + WHERE a.project_id = p.id) AS projectnumber, a.taxkey, t.rate AS taxrate, t.id, (SELECT c1.accno FROM chart c1, tax t1 WHERE t1.id=t.id AND c1.id=t.chart_id) AS taxaccno + FROM acc_trans a + JOIN chart c ON (c.id = a.chart_id) + LEFT JOIN project p ON (p.id = a.project_id) + LEFT JOIN tax t ON (t.id=(SELECT tk.tax_id from taxkeys tk WHERE (tk.taxkey_id=a.taxkey) AND ((CASE WHEN a.chart_id IN (SELECT chart_id FROM taxkeys WHERE taxkey_id=a.taxkey) THEN tk.chart_id=a.chart_id ELSE 1=1 END) OR (c.link='%tax%')) AND startdate <=a.transdate ORDER BY startdate DESC LIMIT 1)) + WHERE a.trans_id = $form->{id} + AND a.fx_transaction = '0' + ORDER BY a.oid,a.transdate|; + + $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); @@ -645,12 +673,15 @@ sub transaction { } $sth->finish; - + my $transdate = "current_date"; + if ($form->{transdate}) { + $transdate = qq|'$form->{transdate}'|; + } # get chart of accounts - $query = qq|SELECT c.accno, c.description, c.taxkey_id - FROM chart c - WHERE c.charttype = 'A' - ORDER by c.accno|; + $query = qq|SELECT c.accno, c.description, c.link, tk.taxkey_id, tk.tax_id + FROM chart c + LEFT JOIN taxkeys tk ON (tk.id = (SELECT id from taxkeys where taxkeys.chart_id =c.id AND startdate<=$transdate ORDER BY startdate desc LIMIT 1)) + ORDER BY c.accno|; $sth = $dbh->prepare($query); $sth->execute || $form->dberror($query); $form->{chart} = (); diff --git a/bin/mozilla/gl.pl b/bin/mozilla/gl.pl index 521bb07d2..aebcd82bb 100644 --- a/bin/mozilla/gl.pl +++ b/bin/mozilla/gl.pl @@ -82,11 +82,11 @@ sub add { map { $chart .= - "" + "" } @{ $form->{chart} }; map { $tax .= - qq|" + "" } @{ $form->{chart} }; map { $tax .= - qq|