From: G. Richardson Date: Mon, 3 Dec 2012 11:05:17 +0000 (+0100) Subject: Bug 1832 - GuV-Bericht Ist-Versteuerung wiederhergestellt X-Git-Tag: release-3.0.0rc1~2 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=a345f992474c8c5c003c4636319bb83c354e9963;p=kivitendo-erp.git Bug 1832 - GuV-Bericht Ist-Versteuerung wiederhergestellt In dem Abschnitt ar sollen die Erlöse laut ac.amount relativ zu den Zahlungseingängen ausgewiesen werden. Dann kam eine Prüfung rein, ob der Rechnungsbetrag vielleicht 0 ist, um eine 0 im Nenner zu verhindern. Diese Prüfung greift aber sowohl bei Verkaufsrechnungen mit Betrag 0 als auch fälschlicherweise bei Eingangsrechnungen mit Betrag x. Diese Aufwände wurden dann mit 1 multipliziert und haben dann die Aufwände, die später im ap-Teil berechnet wurden, negiert, weshalb die Ausgaben alle 0 waren. Der Patch von Uwe Konrad macht also genau das Richtige, und ich habe noch ein paar überflüssige Prüfungen auf 0 rausgenommen. Damit sollte die Funktionalität wie von vor der 0-Prüfung wiederhergestellt sein. Ob dieses Verfahren dann noch richtig ist, wenn Bug 1793 angegangen wird, muß man dann noch sehen. --- diff --git a/SL/RP.pm b/SL/RP.pm index a319cf59d..4bb82f2b2 100644 --- a/SL/RP.pm +++ b/SL/RP.pm @@ -516,12 +516,16 @@ sub get_accounts_g { if ($form->{method} eq 'cash') { $query = qq| - SELECT SUM( ac.amount * CASE WHEN COALESCE((SELECT amount FROM ar WHERE id = ac.trans_id and amount != 0 ), 0) != 0 THEN + SELECT SUM( ac.amount * CASE WHEN COALESCE((SELECT amount FROM ar WHERE id = ac.trans_id), 0) != 0 THEN + /* ar amount is not zero, so we can divide by amount */ (SELECT SUM(acc.amount) * -1 FROM acc_trans acc INNER JOIN chart c ON (acc.chart_id = c.id AND c.link LIKE '%AR_paid%') WHERE 1=1 $inwhere AND acc.trans_id = ac.trans_id) - / (SELECT amount FROM ar WHERE id = ac.trans_id and amount != 0 ) ELSE 1 END + / (SELECT amount FROM ar WHERE id = ac.trans_id) + ELSE 0 + /* ar amount is zero, or we are checking with a non-ar-transaction, so we return 0 in both cases as multiplicator of ac.amount */ + END ) AS amount, c.$category FROM acc_trans ac LEFT JOIN chart c ON (c.id = ac.chart_id)