X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/072919154edb34f4afed6bf93fdbdae5b0969385..d1489df29cba94ddf3a9f6dc6a1f310033a90924:/SL/GL.pm diff --git a/SL/GL.pm b/SL/GL.pm index 315406345..5783fbfd3 100644 --- a/SL/GL.pm +++ b/SL/GL.pm @@ -51,9 +51,8 @@ sub delete_transaction { # connect to database my $dbh = $form->dbconnect_noauto($myconfig); - my @values = (conv_i($form->{id})); - do_query($form, $dbh, qq|DELETE FROM acc_trans WHERE trans_id = ?|, @values); - do_query($form, $dbh, qq|DELETE FROM gl WHERE id = ?|, @values); + # acc_trans entries are deleted by database triggers. + do_query($form, $dbh, qq|DELETE FROM gl WHERE id = ?|, conv_i($form->{id})); # commit and redirect my $rc = $dbh->commit; @@ -110,7 +109,6 @@ sub post_transaction { } my ($null, $department_id) = split(/--/, $form->{department}); - $department_id *= 1; $form->{ob_transaction} *= 1; $form->{cb_transaction} *= 1; @@ -123,7 +121,7 @@ sub post_transaction { WHERE id = ?|; @values = ($form->{reference}, $form->{description}, $form->{notes}, - conv_date($form->{transdate}), $department_id, $form->{taxincluded} ? 't' : 'f', + conv_date($form->{transdate}), conv_i($department_id), $form->{taxincluded} ? 't' : 'f', $form->{storno} ? 't' : 'f', conv_i($form->{storno_id}), $form->{ob_transaction} ? 't' : 'f', $form->{cb_transaction} ? 't' : 'f', conv_i($form->{id})); do_query($form, $dbh, $query, @values); @@ -664,12 +662,26 @@ sub transaction { (SELECT c1.accno FROM chart c1, tax t1 WHERE (t1.id = t.id) AND (c1.id = t.chart_id)) AS taxaccno, - a.tax_id AS tax_id + (SELECT tk.tax_id + FROM taxkeys tk + WHERE (tk.chart_id = a.chart_id) AND (tk.startdate <= a.transdate) + ORDER BY tk.startdate desc LIMIT 1) AS tax_id 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 = a.tax_id) + (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 LIKE '%tax%')) + AND (startdate <= a.transdate) + ORDER BY startdate DESC LIMIT 1)) WHERE (a.trans_id = ?) AND (a.fx_transaction = '0') ORDER BY a.acc_trans_id, a.transdate|;