GuV/BWA Splitfaktor richtig coalescen.
authorSven Schöling <s.schoeling@linet-services.de>
Wed, 15 Feb 2012 15:17:36 +0000 (16:17 +0100)
committerSven Schöling <s.schoeling@linet-services.de>
Wed, 15 Feb 2012 15:17:36 +0000 (16:17 +0100)
Nach Bug 1190 werden IST Versteuerte Zahlungseingänge auf die komplette
Rechnung verteilt.  Bei Hauptbuch buchungen gibt es keine Rechnung dazu und
diese buchungen fielen unter den Tisch, oder (schlimmer) erzeugen einen
Division by Zero Fehler.

Commit d934ce3611 hat ein COALESCE eingeführt um die by-Zero Fehler abzufangen,
aber der Nenner 1 führt zu utopischen Rechnungswerten.

Dieser Patch behebt das.

SL/RP.pm

index 82102f6..bbfb098 100644 (file)
--- a/SL/RP.pm
+++ b/SL/RP.pm
@@ -516,12 +516,12 @@ sub get_accounts_g {
   if ($form->{method} eq 'cash') {
     $query =
       qq|
-       SELECT SUM( ac.amount *
+       SELECT SUM( ac.amount * CASE WHEN COALESCE((SELECT amount FROM ar WHERE id = ac.trans_id and amount != 0 ), 0) != 0 THEN
                     (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)
-                  / COALESCE((SELECT amount FROM ar WHERE id = ac.trans_id and amount != 0 ), 1)
+                  / (SELECT amount FROM ar WHERE id = ac.trans_id and amount != 0 ) ELSE 1 END
                 ) AS amount, c.$category
        FROM acc_trans ac
        LEFT JOIN chart c ON (c.id  = ac.chart_id)