Nach dem Update von v3.5.8 auf v3.7.0 lassen sich alte Aufträge nicht mehr öffnen und die folgende Fehlermeldung liefert den Hinweis warum:
tax_amount != 0 but no chart_id for taxkey 1004 tax 965 at /var/www/kivitendo-erp/SL/DB/Helper/PriceTaxCalculator.pm line 133.
Das Verhalten tritt sowohl
- nach dem beschriebenen Update und mit alten Aufträgen auf, als auch
- nach dem DROP und Reinitialisieren der DBs (Auth und Mandant) auf, wenn man im Jahr 2023 Aufträge im Jahr 2020 anlegen möchte (z.B. Auftragsdatum = 01.01.2020 & Lieferdatum = 12.07.2020).
Ich konnte bisher herausfinden, dass vor dem Update die 'chart_id' 65 aus der Tabelle 'tax' sowohl zur 'id' 376 als auch zur 'id' 965 gehörte. Das kann eigentlich wegen eines Constraints nicht sein.
SELECT chart_id, rate, taxkey, taxdescription, id, chart_categories, skonto_sales_chart_id FROM tax WHERE id=965 OR id=376 ORDER BY chart_id;
liefert für die v3.5.8:
chart_id | rate | taxkey | taxdescription | id | chart_categories | skonto_sales_chart_id |
---------+---------+--------+----------------+-----+------------------+-----------------------+
65 | 0.16000 | 5 | Umsatzsteuer | 376 | I | 129 |
65 | 0.16000 | 3 | Umsatzsteuer | 965 | I | 129 |
und für die v3.7.0 nach dem DB-Update:
chart_id | rate | taxkey | taxdescription | id | chart_categories | skonto_sales_chart_id |
---------+---------+--------+----------------+-----+------------------+-----------------------+
65 | 0.16000 | 5 | Umsatzsteuer | 376 | I | 129 |
| 0.16000 | 3 | Umsatzsteuer | 965 | I | 129 |
Der Versuch den alten Zustand in der Tabelle 'tax' wieder herzustellen scheiter wegen eines Constraints:
=# UPDATE tax set chart_id=65 WHERE id=965;
ERROR: duplicate key value violates unique constraint "chart_id_unique_tax"
DETAIL: Key (chart_id)=(65) already exists.
Nach dem Tausch der 'chart_id' für die 'id'-Werte 965 und 376 funktioniert das öffnen der Aufträge wieder.
=# UPDATE tax set chart_id=NULL WHERE id=376;
=# UPDATE tax set chart_id=65 WHERE id=965;
Die Einträge sehen wie folgt aus:
chart_id | rate | taxkey | taxdescription | id | chart_categories | skonto_sales_chart_id |
---------+---------+--------+----------------+-----+------------------+-----------------------+
65 | 0.16000 | 3 | Umsatzsteuer | 965 | I | 129 |
| 0.16000 | 5 | Umsatzsteuer | 376 | I | 129 |