Steven König
Version vom: $Date: 2001/02/09 16:01:08 $

Kunden - Operationen

Projektdokumentation | Systemdokumentation | Systemspezifikation | Operationen


Zurück Hauptseite

Die Operationen:

Operation Kunden registrieren (Person)
Eingabe: Adresse adr, String email, String tel, String name, String vname, Datum geb, String login, String pass
Ausgabe: Kunde k
Voraussetzung: (Gültige Registrierungsdaten), für alle Systemnutzer gilt: Systemnutzer.login <> login
Effekt:
Es existiert eine neue Person n initialisiert mit den eingegebenen Parametern und es existiert ein neuer Kunde k mit k.Person = n und k.Unternehmen={} und k.wirdGelöscht=false

Operation Kunden registrieren (Unternehmen)
Eingabe:
Adresse adr, String tel, String name, String login, String pass, String kname, String kvname, Datum kgeb, Adresse kadr, String ktel, String kemail
Ausgabe: Kunde k
Voraussetzung: (Gültige Registrierungsdaten), für alle Systemnutzer gilt: Systemnutzer.login <> login
Effekt:

Es existiert eine neue Person n initialisiert mit kname, kvname, kgeb, kadr, ktel, kemail und es existiert ein neues Unternehmen u initialisiert mit name, adr, tel, login, pass und u.email=n.passwort=n.login={} und u.Kontaktperson=n und es existiert ein neuer Kunde k mit k.Unternehmen=u und k.Person={} und k.wirdGelöscht=false

Operation Registrierungsdaten ändern (Kunde)
Eingabe: Kunde k, Parameter<Kunde> n
Ausgabe: Kunde k
Voraussetzung: k.wirdGeloescht = false
Effekt: Änderung der Attribute von k gemäß den Werten von n

Operation Kunden löschen
Der Kunde wird in dem System gesperrt und für das Löschen markiert. Das eigentliche Löschen übernimmt der Systemverwalter.
Eingabe: Kunde k
Ausgabe: keine
Voraussetzung: keine
Effekt: abmelden(k) , k.wirdGeloescht=true


Operation Ticket reservieren
Der Benutzer reserviert ein Ticket. Dieses muß mit allen aktuell reserveirten Tickets kompatibel sein. Insbesondere müssen alle reservierten Tickets den gleichen Anbieter und die gleiche Erwerbsart besitzen. Ein Kunde, der gelöscht werden soll, darf keine Tickets reservieren
Eingabe: Ticketkontingent tk, Aufdruck a, Kauf k
Ausgabe: Ticket t mit t.Aufdruck=a, t.preis=tk.Preigestaltung.startpreis, t.ermaessigt=false, t.nummer=neue, für Tickets eindeutige Nummer
Voraussetzung:




a ist in tk.ticketpool
tk.Erwerbsart.Zahlungsart ist enthalten in k.Kunde.Zahlungsinformationen.Zahlungsart,
Es existiert k.zeitpunkt=0,
Für alle Tickets in k.Ticket gilt t.TicketKontigent.Veranstaltung.Anbieter = tk.Veranstzaltung.Anbieter
Für alle Tickets in k.Ticket gilt t.TicketKontigent.Erwerbsart = tk.Erwerbsart,
k.Kunde.wirdGelöscht=false und
Effekt:

Der Kauf k ist um eine neues Ticket t (=Ergebnis) erweitert
tk'.ticketpool=tk.ticketpool\{a}


Operation Bundle reservieren
Ein Bundlekontigent wird für einen Benutzer reserviert, sofern genügend Tickets zur Verfügung stehen und das Bundle Kontigent
mit dem aktuellen Warenkorb des Benutzers kompatibel ist (gleicher Anbieter, gleiche Erwerbsart)
Eingabe: Bundlekontingent bk, Kauf ka
Ausgabe: keine
Voraussetzung:


Für alle Ticketanzahlen (ta) aus bk.TicketAnzahl gilt:
(t.anzahl ist kleiner oder gleich |ta.TicketKontigent.ticketpool| und
Für alle t aus ka.Ticket gilt: (t.TicketKontigent.Veranstaltung.Anbieter= ta.TicketKontigent.Veranstaltung.Anbieter) und (t.TicketKontingent.Erwerbsart=ta.TicketKontinget.Erwerbsart))
Effekt:

Für alle Ticketanzahlen (ta) aus bk.TicketAnzahl gilt:
(Sei as eine vom Benutzer ka.Kunde gewählte Untermenge von ta.Ticketkontingent.ticketpool mit
|as|=ta.anzahl dann (Für alle a aus as: reserviere TicketKontigent ta.TicketKontigent, a, ka))


Operation Kauf tätigen
Alle reservierten Tickets eine Benutzers werden gekauft. Der Anbieter und der Benutzer werden von dem Kaufabschluß unterrichtet. Dem Benutzer wird ein neues Leeres Kaufobjekt zur Verfügung gestellt. Erst jetzt werden bei dem Kaufobjekt die Zahlungsinformationen eingetragen.
Ein Kunde, der gelöscht werden soll, darf keinen Kauf tätigen.

Eingabe: Kauf ka
Ausgabe: t.TicketKontingent.Veranstaltung.Anbieter und ka.Kunde werden über den Kaufabschluß informiert.
Voraussetzung:

ka.zeitpunkt = 0
ka.Kunde.wirdGelöscht = false
ka.{Ticket} ist nicht leer
Effekt:






Sei t ein beliebiges Element aus ka.Ticket.
* ka.Erwerbsart=t.TicketKontingent.Erwerbsart * Sei za ein vom Benutzer ka.kunde gewähltes Element aus t.TicketKontingent.Erwerbsart.Zahlungsart und sei zi das Element aus ka.Kunde.Zahlungsinformation mit zi.Zahlungsart=za, dann gilt:
ka.ZahlungsInformation=zi. * ka.Zeitounkt=aktuelles Datum
* Es existiert ein neues Kauf kn mit kn.Zeitpunkt=0.
* ka.gesamtPreis= die Summe aller t.Preis (wobei t Element aus ka.Ticket)

*=ka.bearbeitungsnr=neue eindeutige Nummer für Kaufobjekt

Operation Anmelden
Bei korrektem Passwort und, sofern der Kunde nicht schon angemeldet ist, wird ihm ein neuer leerer Warenkorb zugeordnet.
Eingabe: String login, String pwd
Ausgabe: Kauf k mit k.zeitpunkt=0, k.gesamtPreis=0, k.Ticket={}
Voraussetzung:
Es gibt einen Kunden x mit x.login=login und x.passwort = pwd und x.wirdGeloescht = false
es existiert kein Kauf g mit x.g.zeitpunkt = 0
Effekt:

Es existiert ein Kauf h mit x.h = k

Operation Abmelden
Alle reservierten Tickets des Benutzers werden zurückgelegt und der Kauf wird gelöscht.
Eingabe: Kunde k
Ausgabe: Keine
Voraussetzung: Es existiert ein Kauf g mit k.g.Zeitpunkt=0.
Effekt:
Für alle t Element aus k.Kauf.Ticket gilt:
Reservierung von t rückgängig machen.

Operation Veranstaltung anzeigen
Eingabe: Veranstaltung v
Ausgabe:

Veranstaltungsattribute
Liste aller Kontingente
Hinweis, ob diese in einer Auktion sind
Voraussetzung: Keine
Effekt: Keiner

Operation Bundle anzeigen
Eingabe: Bundle b
Ausgabe: Liste aller Tickets b.Ticket
Voraussetzung: Keine
Effekt: Keiner

Operation Ticketkontingent anzeigen
Eingabe: Ticketkontingent t
Ausgabe: t.ticketpool
Voraussetzung: Keine
Effekt: Keiner

Operation Reservierung rückgängig machen
Ein reserviertes Ticket wird aus dem Kauf (Warenkorb) wieder zurüchgelegt.
Eingabe: Ticket t
Ausgabe: keine
Voraussetzung:
t.Kauf.Zeitpunkt ist nicht 0
t.TicketKontingent.ticketpool = old(t.TicketKontingent).ticketpool mit t.aufdruck
Effekt: t.Kauf.Ticket=old(t.Kauf).Ticket ohne t

Operation Gebot für ein Ticket einer Auktion abgeben
Eingabe: Gebot g,Zahlungsart z,Erwerbsart e
Ausgabe: keine
Voraussetzung:


g ist höher als niedrigstes aktuelles Gebot mit Zuschlag;
es sei denn nicht für alle Tickets liegt ein Gebot vor; dann kann das Gebot dem Mindestgebot entsprechen.
z ist zu e assoziiert
es gibt eine Zahlungsinformation zu z und Kontingent k assoziiert
Effekt: Der Auktionsschnittstelle wird ein neues Gebot g zugeordnet, welches dem Kunden k und dem Kaufobjekt des Tickets zugeordnet ist; dieses Gebot wird der angegebenen Zahlungsart z und Erwerbsart e zugeordnet; um klarzumachen, dass es sich bei diesem Gebot nicht um einen durchgeführten Kauf handelt, wird der zeitpunkt des Kaufobjektes nicht gesetzt.
Der Kunde wird benachrichtigt; wurde durch das neue Gebot ein anderes aus der Bieterliste gestrichen, dann wird der alte Bieter benachrichtigt.

Operation Kaufinformationen abholen (drucken)
Eingabe: Kauf k, Erwerbsart e, Zahlungsart z
Ausgabe: (Abhängig von Erwerbsart e)
a. Ticket
b. Anzeige sämtlicher für die Reservierung relevanter Daten
Voraussetzung: Erwerbsart e und Zahlungsart z sind in k enthalten und k.zeitpunkt ist nicht 0
Effekt: k.Kundeabgefragt = true.
Das gewählte e und das gewählte z sind jetzt die einzigen, die k zugeordnet sind.

Operation Auktionsstatus abfragen
Eingabe: Auktionsschnittstelle a
Ausgabe: Aktuelles Mindestgebot, das zu erbringen ist; Anzahl der Gebote, Anzahl der Tickets, a.beschreibung,a.abbruchZeit,a.verbindlich
Voraussetzung: Auktion ist initialisiert
Effekt: kein

Operation Historie anzeigen
Eingabe: Kunde ku, Datum anfangsdatum
Ausgabe: Alle getätigten Kaufobjekte k mit k.zeitpunkt > anfangsdatum werden angezeigt.
Voraussetzung: ku muß registriert sein und ku.wirdGeloescht = false
Effekt: Keiner

Operation Warenkorb anzeigen
Eingabe: Kunde ku
Ausgabe: Das Kaufobjekt k wird angezeigt.
Voraussetzung: Es existiert ein Kaufobjekt k mit k.zeitpunkt=0 und k ist Element aus ku.{Kaufobjekt}
Effekt: Keiner

Operation Ticket Suchen
Eingabe: String st
Ausgabe: Alle Kategorien und alle Veranstaltungen mit termin > SYSDATE, die durch den Suchtext st erfasst werden.
Voraussetzung: Keine
Effekt: Keiner

Operation in Kategorie navigieren
Eingabe: Kategorie kg
Ausgabe: Alle Unterkatgorien von kg und alle Veranstaltungen mit termin > SYSDATE
Voraussetzung: Keine
Effekt: Keiner

Zurück Top Projektseite