Erstellt vor 14 Monaten

Geschlossen vor 14 Monaten

Zuletzt geändert vor 10 Monaten

#2427 closed Fehler (fixed)

GuV und Ist-Versteuerung und Abteilungsfilter fehlerhaft

Erstellt von: LinkIT Verantwortlicher: jbueren
Priorität: normal Meilenstein:
Komponente: kivitendo ERP Version: 3.0.0
Schweregrad: normal Stichworte: GuV, Abteilungen
Beobachter:

Beschreibung

Wenn man Einnahmen bestimmten Abteilungen zuordnet und sich später die GuV anzeigen lässt, findet der Filter nach Abteilungen dort keine Berücksichtigung. Es werden immer alle Einnahmen angezeigt.

Das passiert jedoch nur bei der Ist-Versteuerung. Bei der Soll-Versteuerung funktioniert es.

Bei der Ausgabenseite wird der Filter ebenfalls bei beiden Versteuerungsarten korrekt umgesetzt.

Das Ganze lässt sich in der Online-Demo ebenfalls reproduzieren.

Änderungshistorie (2)

comment:1 Geändert vor 14 Monaten durch jbueren

  • Lösung auf fixed gesetzt
  • Status von new nach closed geändert
  • Verantwortlicher auf jbueren gesetzt

In e161c8a64cf8e4d5ab9c5779adc4acb7faee1454/erp:

GuV und Ist-Versteuerung und Abteilungsfilter fehlerhaft

War in 2009 noch in Ordnung. Ist beim Überarbeiten für $inwhere
übersehen worden
closes #2427

comment:2 Geändert vor 10 Monaten durch Ralf64

Hallo,
ich habe die Änderung durchgeführt und bekomme jetzt folgende Fehlermeldung:


SELECT SUM( ac.amount * CASE WHEN COALESCE((SELECT amount FROM ar a WHERE id = ac.trans_id AND (t.id = 1182) ), 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 AND (acc.transdate >= '01.01.2014') AND (acc.transdate <= '31.12.2014') AND acc.trans_id = ac.trans_id)
/ (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.pos_eur
FROM acc_trans ac
LEFT JOIN chart c ON (c.id = ac.chart_id)
LEFT JOIN ar ON (ar.id = ac.trans_id)
LEFT JOIN taxkeys tk ON (tk.id = (
SELECT id FROM taxkeys
WHERE chart_id = ac.chart_id
AND startdate <= COALESCE(ar.deliverydate,ar.transdate)
ORDER BY startdate DESC LIMIT 1
)
)
WHERE ac.trans_id IN (SELECT DISTINCT trans_id FROM acc_trans WHERE 1=1 AND (transdate >= '01.01.2014') AND (transdate <= '31.12.2014'))

GROUP BY c.pos_eur

/*
SELECT SUM(ac.amount * chart_category_to_sgn(c.category)) AS amount, c.pos_eur
FROM acc_trans ac
JOIN chart c ON (c.id = ac.chart_id)
JOIN ar a ON (a.id = ac.trans_id)
JOIN department t ON (a.department_id = t.id)
WHERE 1 = 1 AND ac.cb_transaction is false AND (ac.transdate <= '31.12.2014') AND (t.id = 1182)
AND ac.trans_id IN ( SELECT trans_id FROM acc_trans a JOIN chart c ON (a.chart_id = c.id) WHERE (link LIKE '%AR_paid%') AND (transdate >= '01.01.2014') AND (transdate <= '31.12.2014'))

GROUP BY c.pos_eur
*/
UNION

SELECT SUM(ac.amount * chart_category_to_sgn(c.category)) AS amount, c.pos_eur
FROM acc_trans ac
JOIN chart c ON (c.id = ac.chart_id)
JOIN ap a ON (a.id = ac.trans_id)
JOIN department t ON (a.department_id = t.id)
WHERE 1 = 1 AND ac.cb_transaction is false AND (ac.transdate <= '31.12.2014') AND (t.id = 1182)
AND ac.trans_id IN ( SELECT trans_id FROM acc_trans a JOIN chart c ON (a.chart_id = c.id) WHERE (link LIKE '%AP_paid%') AND (transdate >= '01.01.2014') AND (transdate <= '31.12.2014'))

GROUP BY c.pos_eur

UNION

SELECT SUM(ac.amount * chart_category_to_sgn(c.category)) AS amount, c.pos_eur
FROM acc_trans ac
JOIN chart c ON (c.id = ac.chart_id)
JOIN gl a ON (a.id = ac.trans_id)
JOIN department t ON (a.department_id = t.id)
WHERE 1 = 1 AND ac.cb_transaction is false AND (ac.transdate <= '31.12.2014') AND (t.id = 1182) AND (ac.transdate >= '01.01.2014')
AND NOT ((c.link = 'AR') OR (c.link = 'AP'))

GROUP BY c.pos_eur

ERROR: missing FROM-clause entry for table "t"
LINE 2: ...ECT amount FROM ar a WHERE id = ac.trans_id AND (t.id = 118...


habe ich etwas übersehen?
Vielen Dank im Voraus !

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.