Revision a345f992
Von G. Richardson vor etwa 12 Jahren hinzugefügt
SL/RP.pm | ||
---|---|---|
516 | 516 |
if ($form->{method} eq 'cash') { |
517 | 517 |
$query = |
518 | 518 |
qq| |
519 |
SELECT SUM( ac.amount * CASE WHEN COALESCE((SELECT amount FROM ar WHERE id = ac.trans_id and amount != 0 ), 0) != 0 THEN |
|
519 |
SELECT SUM( ac.amount * CASE WHEN COALESCE((SELECT amount FROM ar WHERE id = ac.trans_id), 0) != 0 THEN |
|
520 |
/* ar amount is not zero, so we can divide by amount */ |
|
520 | 521 |
(SELECT SUM(acc.amount) * -1 |
521 | 522 |
FROM acc_trans acc |
522 | 523 |
INNER JOIN chart c ON (acc.chart_id = c.id AND c.link LIKE '%AR_paid%') |
523 | 524 |
WHERE 1=1 $inwhere AND acc.trans_id = ac.trans_id) |
524 |
/ (SELECT amount FROM ar WHERE id = ac.trans_id and amount != 0 ) ELSE 1 END |
|
525 |
/ (SELECT amount FROM ar WHERE id = ac.trans_id) |
|
526 |
ELSE 0 |
|
527 |
/* 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 */ |
|
528 |
END |
|
525 | 529 |
) AS amount, c.$category |
526 | 530 |
FROM acc_trans ac |
527 | 531 |
LEFT JOIN chart c ON (c.id = ac.chart_id) |
Auch abrufbar als: Unified diff
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.