Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a345f992

Von G. Richardson vor etwa 12 Jahren hinzugefügt

  • ID a345f992474c8c5c003c4636319bb83c354e9963
  • Vorgänger 41b9f5c7
  • Nachfolger 51333501

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.

Unterschiede anzeigen:

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