Ina Schulz 
Version vom $Date: 2001/06/04 15:03:28 $

Protokoll Zahlungsarten/-Information

Projektdokumentation | Projektmanagement | Protokoll Zahlungsarten/- Information


Zurück Hauptseite

Protokoll zum Treffen am 31.05.2001

Teilnehmer: Ina, Michael, Manuel, Stephen

Ziel: Ausarbeitung der Thematik "Zahlungsarten/Erwerbsarten, Zahlungsinformation -

welche Klassen /Funktionalitäten werden benötigt, wie wird es umgesetzt"

Allgemeines

Zu den Begriffen:

Jedes Ticket kann auf vier verschiedene Arten bezahlt werden:

  • per Kreditkarte
  • per Bankeinzug
  • per Rechnung
  • oder per Barzahlung

Dies sind die Zahlungsarten. Sie sind in der Klasse datatypes.TypeOfPaymentConstants als int-Konstanten erfasst.

Jedes Ticket kann auf drei verschiedene Arten zum Kunden gelangen:

  • ausdrucken
  • zuschicken
  • reservieren

Dies sind die Erwerbsarttypen. Sie sind in der Klasse datatypes.TypeOfPurchaseConstants als int-Konstanten erfasst.

Zu jedem Ticketkontingent kann der Anbieter festlegen, welche Zahlungs- und Erwerbsarttypen erlaubt sind und bis zu welchem Datum diese gültig sind. (z.B. Kreditkarte und reservieren bis 11.6., aber Rechnung und zuschicken nur bis 1.5. möglich, siehe auch Gui-Entwurf "Kontingent erfassen")

Die Kombinationen der drei Attribute werden Erwerbsart genannt (TypeOfPurchase). Zu einem Kontingent gehören also mehrere Erwerbsarten.

Zu jedem Kunden werden Zahlungsinformationen (PaymentInformations) gespeichert. Diese beinhalten die persönlichen Daten zu Kreditkarte, Kontoinformationen und Rechnungsanschrift.

Zum Ablauf:

Auktion:
Möchte ein Kunde mitbieten, so werden ihm die zum Kontingent erfassten und zu diesem Zeitpunkt gültigen Erwerbsarten angezeigt und er kann eine davon auswählen. Dann wird geprüft, ob die Zahlungsart aus der Erwerbsart zu den Zahlungsinformationen passt, die der Kunde gespeichert hat. Bsp: er wählt Kreditkarte und abholen: es wird geprüft, ob der Kunde seine Daten zur Kreditkarte gespeichert hat. Wenn ja, wird die gewählte Erwerbsart an das Gebot angehängt.

Shop:
Der Ablauf ist identisch zur Auktion, dem Kauf wird die gewählte Erwerbsart angehängt. Es ist nur darauf zu achten, das im Warenkorb Tickets aus unterschiedlichen Kontingenten sein können, wenn sie denn zueinander passende Erwerbsarten haben.

Bis hierher ist alles so, wie in der Anforderungsdefinition beschrieben.

Einschränkung der Anforderungsdefinition:

Bisher sollte ein Anbieter die von ihm zugelassenen Zahlungsarten vorab einschränken können. Da es sich nur um vier Stück handelt, wird diese Funktionalität als überflüssig angesehen und gestrichen.

 

Die Klassen

Zu Erwerbsarten:

  • database.accounting.TypeOfPurchaseBean
  • logic.accounting.LTypeOfPurchase

Bsp:
Erfasst ein Anbieter Erwerbsarten zu seinem Kontingent, so ruft er auf:
new LTypeOfPurchase(myLContingent, myDate, TypeOfPaymentConstants.CREDIT_CARD, TypeOfPurchaseConstants.SEND)

Hat er dabei einen Fehler gemacht, muss er die Erwerbsart löschen und neu anlegen. Löschen mit myLTypeOfPurchase.delete().

Möchte ein Kunde kaufen, so wählt er eine Erwerbsart. diese wird mit den PaymentInfos geprüft: myCustomer.getLPaymentInformations().getPaymentInformation(myLTypeOfPurchase.getTypeOfPayment());
liefert dies null, so hat der Kunde nicht die passenden Informationen erfasst und muss dies erst nachholen. Liefert dies nicht null, dann wird an den Kauf die TypeOfPurchase angehängt:
myPurchase.setTypeOfPurchase(myTypeOfPurchase);
oder beim Gebot:
myBid.setTypeOfPurchase(myTypeOfPurchase);

Dies wird genauso in den Bean-Klassen umgesetzt.

 

Zu Zahlungsinformationen:

  • database.accounting.PaymentInformations
  • logic.accounting.LPaymentInformations
  • interface datatypes.PaymentInformation
    wird implementiert von
    datatypes.CreditcardPayment
    datatypes.DebitPayment
    datatypes.InvoicePayment
    datatypes.DirectPayment

Bsp:
Ein LCustomer hat genau eine LPaymentInformations. Dise kann man sich holen und fragen: getPaymentInformation(database.TypeOfPaymentConstants.CREDIT_CARD)
Liefert die Methode null, hat der Kunde keine Daten zur Kreditkarte erfasst. Sonst erhält man ein datatypes.CreditcardPayment-Objekt und kann sich daraus die Informationen abholen. Erfasst/ändert der Kunde nun seine Daten für die Kreditkarte, so kann man auf dem LPaymentInformations-Objekt aufrufen: setPaymentInformations(myCreditcardPayment).

Gelöscht, da überflüssig:

  • logic.accounting.LTypeOfPayment
  • database.accounting.TypeOfPaymentBean
  • datatypes.TypeOfPaymentSettings

 


Zurück Top Hauptseite