Seite 1 von 1

Ich verzweifle an Elixir

Verfasst: Donnerstag 17. Juni 2010, 19:59
von sprudel
Hallo,

ich wollte eine Art kleines Kassensystem programmieren, und habe mich diesmal entschieden Elixir zu verwenden.

Das ganze besteht aus folgenden Klassen:

Product:
ein Produkt mit seinen jeweiligen Werten, so aus der Datenbank geladen
Name
Preis
Beschreibung
...

ProductInstance:
ein Produkt wie es während dem einkaufen verwendet wird
Erlaubt das Bündeln von mehreren Produkten, und repräsentiert gemeinsam einige Produkte (z.B. 5x Cola)
Die Unterscheidung wird per Hash gemacht, so dass, sollte man ein Produkt zum Beispiel rabattieren, es nicht mehr dazu gebündelt wird, sondern eine eigene ProductInstance bekommt. Eine ProductInstance bündelt immer nur die Product-Objekte die den selben Hash haben.

Transaction:
Der jeweilige Verkaufsprozess, während er stattfindet. Enthält die Produktinstanzen, und erlaubt zum Beispiel den Zahlungsvorgang und das Abschließen des ganzen Prozesses.




DAs ganze ist noch in einem weiten Vorstadium, aber schon jetzt verzweifle ich.
Anbei mal der Code:
http://python-forum.de/pastebin.php?mode=view&s=35

Hoffe da kann jemand meinen Denkfehler rausfinden, ich sitze jetzt schon Stunden dran, und weiß nicht was ich falsch verstanden habe, an Elixir.

Liebe Grüße
Chris

Re: Ich verzweifle an Elixir

Verfasst: Donnerstag 17. Juni 2010, 21:42
von jbs
Wie sieht der Fehler denn aus, also was geht nicht?

Re: Ich verzweifle an Elixir

Verfasst: Donnerstag 17. Juni 2010, 21:44
von sprudel
Hallo,

Es ist ganz komisch, wenn ich mir das in der SQLite-Datenbank danach anschaue.

Bei den Produkten wird in das Feld transaction_tid die ID von der letzten Transaction eingetragen,
bei den Transactionen werden überhaupt nicht die Produkte eingetragen, sondern eben nur die ID von der Transaktion,

Re: Ich verzweifle an Elixir

Verfasst: Donnerstag 17. Juni 2010, 21:56
von Hyperion
Der Thread gehört imho ins Datenbanken-Subforum.

Die Getter und Setter sind so unschön; würde ich mit Propertirs lösen. Einige sind komplett unnötig (GetID in Product).

Achte mehr auf PEP8; Methoden werden mit underscores geschrieben und klein:
"foo_bar()" statt FooBar().

Ich verstehe Deine Fehlerbeschreibung nicht. Werde doch da noch einmal ein wenig genauer, was Du erwartest und was passiert.

Re: Ich verzweifle an Elixir

Verfasst: Donnerstag 17. Juni 2010, 21:58
von sprudel
Was ich mir wünschen würde:

Wenn die Funktion Finish() ausgeführt wird, soll folgendes passieren:

Tabelle Products:
-nichts passiert

Tabelle ProductInstance:
-Es wird eine Liste erzeugt, mit den pid-s von den Produkten die darin sind
Tabelle Transaction:
-Es wird die Transaction mit dem aktuellen Datum sowie den dort enthaltenen ProductInstances erstellt.

Danach wird alles für einen weiteren EInkauf zurückgesetzt.

Re: Ich verzweifle an Elixir

Verfasst: Freitag 18. Juni 2010, 08:24
von Pekh
Machst du auch immer brav ein 'commit', nachdem du Änderungen (weitere Werte eingetragen) vorgenommen hast? Mit Elixir selbst kenne ich mich nicht aus, aber ich bin noch keinem DB-Toolkit begegnet, in dem du das nicht machen müßtest.