From: Jan Büren Date: Thu, 4 Sep 2014 07:07:29 +0000 (+0200) Subject: SuSa - Summe per und Saldo auch bei abweichenden Geschäftsjahr berechnen X-Git-Tag: release-3.2.0beta~321 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=406563ed1b78806f09febe49fc37f0b9fb97e6b5;p=kivitendo-erp.git SuSa - Summe per und Saldo auch bei abweichenden Geschäftsjahr berechnen Falls man eine Monats-SuSa zieht werden die Salden korrekt berechnet, allerdings wurde nicht ein abweichendes Geschäftsjahr berücksichtigt. Jetzt wird das Startdatum wie in der Bilanz genommen, dass ist schon mal besser, allerdings ist hier der Fall Startdatum == closedto immer noch etwas unschön, s.a. Kommentar in der Methode get_balance_startdate_method --- diff --git a/SL/RP.pm b/SL/RP.pm index fd58de602..47d7db9ee 100644 --- a/SL/RP.pm +++ b/SL/RP.pm @@ -923,10 +923,13 @@ sub trial_balance { $sumwhere .= $glsumwhere . " AND (NOT ac.ob_transaction OR ac.ob_transaction IS NULL) AND (NOT ac.cb_transaction OR ac.cb_transaction IS NULL)"; # get all entries before fromdate, which are not yet fetched - # TODO dpt_where_without_arapgl and project + # TODO dpt_where_without_arapgl and project - project calculation seems bogus anyway + # TODO use fiscal_year_startdate for the whole trial balance + # anyway, if the last booking is in a deviating fiscal year, this already improves the query + my $fiscal_year_startdate = conv_dateq(get_balance_starting_date($form->{fromdate})); $fetch_accounts_before_from = qq|SELECT c.accno, c.description, c.category, SUM(ac.amount) AS amount FROM acc_trans ac JOIN chart c ON (c.id = ac.chart_id) WHERE 1 = 1 AND (ac.transdate <= $fromdate) - AND (ac.transdate >= (SELECT date_trunc('YEAR', | . $fromdate . qq|::date))) + AND (ac.transdate >= $fiscal_year_startdate) AND (NOT ac.ob_transaction OR ac.ob_transaction IS NULL) AND (NOT ac.cb_transaction OR ac.cb_transaction IS NULL) AND c.accno NOT IN (SELECT c.accno FROM acc_trans ac JOIN chart c ON (c.id = ac.chart_id) WHERE 1 = 1 AND (ac.transdate >= $fromdate) AND (ac.transdate <= $todate) AND (NOT ac.ob_transaction OR ac.ob_transaction IS NULL) AND (NOT ac.cb_transaction OR ac.cb_transaction IS NULL)) @@ -988,7 +991,7 @@ sub trial_balance { } $sth->finish; - if ($form->{method} ne "cash") { + if (!$form->{method} ne "cash") { $sth = prepare_execute_query($form, $dbh, $fetch_accounts_before_from); while ($ref = $sth->fetchrow_hashref("NAME_lc")) { $trb{ $ref->{accno} }{description} = $ref->{description};