Erstellt vor 2 Jahren

Geschlossen vor 14 Monaten

#2109 closed Fehler (works-for-me)

Spalte oe_id in der Tabelle inventory irreführend

Erstellt von: andreas.rudin@… Verantwortlicher:
Priorität: normal Meilenstein:
Komponente: kivitendo ERP Version: 3.0.0 rc
Schweregrad: normal Stichworte: Lager auslagern Lieferschein Lagerbestand
Beobachter: andreas.rudin@…

Beschreibung

In der Tabelle inventory, die die Lagerbuchungen enthält gibt es die Spalte oe_id, die sich allerdings nicht auf die Tabelle oe (Aufträge) bezieht, sondern auf die Tabelle delivery_orders (Lieferscheine).
(Das scheint eine bekannte Tatsache zu sein, denn Moritz erwähnt das mal so beiläufig im Bug #1058)

Ich finde das ziemlich irreführend und finde, der Spaltenname in der Tabelle inventory sollte von oe_id in delivery_orders_id umbenannt werden.

Ausserdem ist mir aufgefallen, dass ich Einträge in den Tabellen delivery_orders_items_stock, delivery_order_items und delivery_orders löschen kann, auch wenn sich diese auf Einträge in der Tabelle inventory beziehen.
Das sollte eigentlich aus Konsistenzgründen nicht möglich sein, sondern das Löschen der Einträge in delivery_orders_items_stock etc. sollte nur möglich sein, wenn die davon abhängenden Einträge in der Tabelle inventory gelöscht wurden.

(Ich bin darauf aufmerksam geworden, weil zu einem Auftrag versehentlich 2 Lieferscheine erstellt worden waren und beide ausgelagert worden waren, allerdings dann nur von einem eine Rechnung erstellt worden war.
Ich konnte in der Datenbank dann den zuviel erstellten Lieferschein löschen, ohne dass ich die Auslagerungen rückgängig machen musste.)

Ideal wäre natürlich, wenn ich auch über das Webinterface die Möglichkeit hätte, einen fäschlicherweise erstellten Lieferschein inkl. fäschlicherweise vorgenommenen Auslagerungen wieder komplett rückgängig zu machen bzw. zu stornieren.
Damit dies einfach zu bewerkstelligen ist, müssten die Abhängigekeiten in der Datenbank so wie oben beschrieben verändert werden, dass also mit dem Löschen/Stornieren? eines Lieferscheins automatisch auch alle davon abhängigen Aktionen gelöscht bzw. rückgängig gemacht werden.

Änderungshistorie (1)

comment:1 Geändert vor 14 Monaten durch jbueren

  • Lösung auf works-for-me gesetzt
  • Status von new nach closed geändert

Das kann man alles machen, aber so wichtig ist das nicht.

Falls du das noch machen willst, bitte folgende Testfälle:

oe_id -> delivery_orders_id muss dann in allen Programmstellen korrekt angepasst und getestet werden.

Ungeprüft war das meiner Meinung mal so, dass man Fremdschlüssel zu inventory nicht hinzufügen kann, da man nicht weiß auf welche Tabelle diese sich bezieht (oe, delivery_orders).

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