Erstellt vor 8 Jahren
Geschlossen vor 8 Jahren
#581 closed Fehler (fixed)
Debitorenbuchung: Steuerschlüssel stimmen nicht mit identischer Verkaufsrechnung überein.
| Erstellt von: | udono@… | Verantwortlicher: | m.bunkus@… |
|---|---|---|---|
| Priorität: | sehr hoch | Meilenstein: | |
| Komponente: | kivitendo ERP | Version: | 2.4.2 |
| Schweregrad: | kritisch | Stichworte: | Finanzbuchhaltung |
| Beobachter: |
Beschreibung
Debitorenbuchung: Steuerschlüssel stimmen nicht mit identischer Verkaufsrechnung
überein. Ferner fehlen einige Steuerschlüssel.
trans_id=13 Verkaufsrechnung
trans_id=14 Debitorenbuchung
skr03-2=# select trans_id, chart_id, amount, transdate, taxkey from acc_trans
where trans_id in (13,14);
trans_id | chart_id | amount | transdate | taxkey
13 | 88 | 100.00000 | 2008-01-01 | 2
13 | 14 | -107.00000 | 2008-01-01 | 0
13 | 194 | 7.00000 | 2008-01-01 | 0
13 | 14 | 107.00000 | 2008-01-10 |
13 | 257 | -107.00000 | 2008-01-10 |
14 | 88 | 100.00000 | 2008-02-01 | 2
14 | 194 | 7.00000 | 2008-02-01 | 2
14 | 14 | -107.00000 | 2008-02-01 |
14 | 14 | 107.00000 | 2008-02-10 |
14 | 257 | -107.00000 | 2008-02-10 |
(10 Zeilen)
Änderungshistorie (8)
comment:1 Geändert vor 8 Jahren durch udono@…
- blocked auf 582 gesetzt
comment:2 Geändert vor 8 Jahren durch udono@…
- blocked 582 gelöscht
- dependson auf 582 gesetzt
- Priorität von Normal nach Kritisch geändert
comment:3 Geändert vor 8 Jahren durch udono@…
- dependson auf 583 gesetzt
comment:4 Geändert vor 8 Jahren durch m.bunkus@…
- Verantwortlicher von p.reetz@… nach m.bunkus@… geändert
comment:5 Geändert vor 8 Jahren durch m.bunkus@…
- Status von new nach assigned geändert
Da ich mir den Quellcode noch nicht näher angesehen habe, würde ich nicht davon
ausgehen, dass überall, wo NULL drinsteht, eigentlich 0 drinstehen müsste.
Dieses Query sollte aber die richtigen taxkeys zuordnen:
UPDATE acc_trans SET taxkey =
(SELECT tk.taxkey_id
FROM taxkeys tk
WHERE (tk.chart_id = acc_trans.chart_id)
AND (tk.startdate <= acc_trans.transdate)
ORDER BY tk.startdate DESC LIMIT 1)
WHERE taxkey ISNULL;
Wär nett, wenn du das mal testen könntest.
Die "not null"-Bedingung kann dann danach eingeführt werden.
comment:6 Geändert vor 8 Jahren durch m.bunkus@…
Ach ja nochwas. Wenn du mir solch schöne SELECT-Ergebnisse zeigst, kannst du
dann bitte auch chart.accno mit aufnehmen? Ich kann zwar meistens erraten,
welche chart_id nun welches Konto ungefähr sein könnte, aber halt nur ungefähr
:)
z.B.
select trans_id, chart_id, amount, transdate, taxkey, accno from acc_trans left
join chart on acc_trans.chart_id = chart.id where trans_id in (13,14);
comment:7 Geändert vor 8 Jahren durch udono@…
Weil du so lieb fragst:
skr03-2=# select trans_id, chart_id, amount, transdate, taxkey, accno from
acc_trans left
skr03-2-# join chart on acc_trans.chart_id = chart.id where trans_id in (13,14);
trans_id | chart_id | amount | transdate | taxkey | accno
13 | 88 | 100.00000 | 2008-01-01 | 2 | 8300
13 | 14 | -107.00000 | 2008-01-01 | 0 | 1400
13 | 194 | 7.00000 | 2008-01-01 | 0 | 1771
13 | 14 | 107.00000 | 2008-01-10 | | 1400
13 | 257 | -107.00000 | 2008-01-10 | | 1000
14 | 88 | 100.00000 | 2008-02-01 | 2 | 8300
14 | 194 | 7.00000 | 2008-02-01 | 2 | 1771
14 | 14 | -107.00000 | 2008-02-01 | | 1400
14 | 14 | 107.00000 | 2008-02-10 | | 1400
14 | 257 | -107.00000 | 2008-02-10 | | 1000
(10 Zeilen)
comment:8 Geändert vor 8 Jahren durch m.bunkus@…
- Lösung auf fixed gesetzt
- Status von assigned nach closed geändert
Ich meine, dass das jetzt behoben ist.

Auch hier würde ein:
ALTER TABLE acc_trans ALTER COLUMN taxkey SET NOT NULL;
und ggf. vorher (wenns stimmt?!)
Update acc_trans set taxkey = 0 where taxkey is NULL;