Operationen
Veranstaltung erstellen
Eine Veranstaltung wird vom Anbieter neu in das System gestellt.
Eingabe |
Anbieter a, String o, Date t, String b, Kategorie k |
Ausgabe |
Veranstaltung v |
Voraussetzung |
t > Tagesdatum. a.wirdGeloescht = false |
Effekt |
Dem Anbieter a ist eine neue Veranstaltung v mit v.termin = t, v.beschreibung = b, v.ort
= o und v.Vater = k zugeordnet. |
Ticketkontingent erstellen
Zu einer bestehenden Veranstaltung wird ein Ticketkontingent erzeugt
Eingabe |
Veranstaltung v, int anzahl, {Aufdruck} aufdr, Anbieter
a |
Ausgabe |
TicketKontingent tk |
Voraussetzung |
|{Aufdruck}| = anzahl, a.wirdGeloescht = false, v.Anbieter =
a |
Effekt |
Die Veranstaltung v hat ein neues TicketKontingent tk mit tk.gesamtanzahl
= anzahl und tk.ticketpool = aufdr. |
Anbieter Zahlungsart zulassen
Der Anbieter wählt eine für sich gültige Zahlungsart aus
der Menge der vom System angebotenen Zahlungsarten aus.
Eingabe |
Anbieter a, Zahlungsart z |
Ausgabe |
keine |
Voraussetzung |
z ist noch keine Zahlungsart von a, a.wirdGeloescht = false |
Effekt |
Zahlungsart z ist Anbieter a zugeordnet. |
Kontingent Erwerbs- und Zahlungsart(en) zuordnen
Einem Kontingent wird eine gültige Erwerbsart mit entsprechenden Zahlungsarten zugeordnet.
Eingabe |
Kontingent k, ErwerbsartTyp e, Datum d, {Zahlungsart}
Z, Anbieter a |
Ausgabe |
keine |
Voraussetzung |
a.wirdGeloescht = false, k.Veranstalter = a;
e ist noch kein ErwerbsartTyp von k
für alle z aus Z gilt: z ist in der Menge der Zahlungsarten vom Anbieter des Kontingents k;
|Z|>=1
|
Effekt |
Erwerbsart x mit der Menge Z an Zahlungsarten und mit x.typ = e und x.gueltigBis = d ist dem Kontingent k zugeordnet. |
Preisgestaltung festlegen
Einem Kontingent wird eine Preisgestaltung zugeordnet.
Eingabe |
Kontingent k, Parameter para, Anbieter a |
Ausgabe |
Preisgestaltung p |
Voraussetzung |
a.wirdGeloescht = false, k.Veranstalter = a;
k hat noch keine Preisgestaltung
und noch keine Auktionsschnittstelle |
Effekt |
Neue Preisgestaltung p, initialisiert mit den übergebenen Parametern,
ist dem Kontingent k zugeordnet |
Auktionsschnittstelle festlegen
Einem Kontingent wird eine Auktionsschnittstelle zugeordnet.
Eingabe |
Kontingent k, beschreibung b, mindestGebot gag, mindestSteigerung ms, abbruchZeit az, verbindlicheAuktion va |
Ausgabe |
keine |
Voraussetzung |
k hat noch keine Auktionsschnittstelle
und noch keine Preisgestaltung |
Effekt |
Neue Auktionsschnittstelle a wird mit den Parametern initialisiert und ist dem Kontingent
k zugeordnet |
Auktionsschnittstelle zur Preisgestaltung hinzufügen
Für eine Preisgestaltung eines Kontingents wird eine Auktion mit Eintrittszeit
bestimmt.
Eingabe |
Kontingent k, beschreibung b, mindestGebot gag, mindestSteigerung ms, abbruchZeit az, verbindlicheAuktion va, Date t |
Ausgabe |
keine |
Voraussetzung |
k hat noch keine Auktionsschnittstelle, aber eine Preisgestaltung;
t > k.Preisgestaltung.startzeitpunkt |
Effekt |
Auktionsschnittstelle a wird initialisiert und Kontingent k zugeordnet.
k.preisgestaltung.auktionseintrittszeit = t |
Auktionsschnittstelle initialisieren
Eine neue Auktionsschnittstelle wird erzeugt.
Eingabe |
Kontingent k, beschreibung b, mindestGebot gag, mindestSteigerung ms, abbruchZeit az, verbindlicheAuktion va |
Ausgabe |
Auktionsschnittstelle a |
Voraussetzung |
Wenn es sich bei k um ein BundleKontigent bk handelt, so muss es mindestens ein Bundle enthalten; anders gesagt: das bk
definiert eine bestimmte Zusammensetzung von Tickets verschiedener TicketKontingente. Mind. ein Satz von Tickets, mit der im Bundle definierten Zusammensetzung von nicht
verkauften Tickets (d.h. Tickets denen kein Kaufobjekt zugeordnet ist) muss verfügbar sein; und es muss eine Schnittmenge der Zahlungsarten und Erwerbsarten der
einzelnen TicketKontigenten existieren. |
Effekt |
Auktionsschnittstelle a wird erzeugt. |
Bundle zusammenstellen
Ein Bundle wird aus Ticketkontingenten zusammengestellt.
Eingabe |
{TicketAnzahl} t, String n, Anbieter a |
Ausgabe |
BundleKontingent b |
Voraussetzung |
x.TicketKontingent.Veranstaltung.Anbieter
ist für alle Elemente x aus t gleich a;
Summe von x.prozPreis für alle x aus t = 100
x.anzahl <= x.TicketKontingent.gesamtanzahl und (0<=x.prozPreis<=100)
für alle x aus t;
a.wirdGeloescht = false
|
Effekt |
Es existiert ein neues BundleKontigent b mit b.name = n und b.aktiv=true, dem {TicketAnzahl}
t zugeordnet ist |
Ticketkontingent streichen
Ein Ticketkontigent wird gestrichen, weil der Anbieter dessen Preispolitik nicht l&aunl;nger unterstützt.
Verkaufte Tickets bleiben weiterhin g¨ltig.
Eingabe |
Anbieter a, TicketKontingent tk |
Ausgabe |
keine |
Voraussetzung |
tk.Veranstalter = a, a.wirdGeloescht = false |
Effekt |
Für alle bk aus tk.TicketAnzahl.BundleKontigent gilt: (bk.aktiv = false);
tk.ticketpool = {};
tk.gesamtanzahl = old(tk).gesamtanzahl-|old(tk).ticketpool| |
Veranstaltung streichen
Eine Veranstaltung wird abgesagt. Alle assozierten Kontigente werden gestrichen.
Kunden, die Tickets erworben haben, werden benachrichtigt.
Eingabe |
Anbieter a, Veranstaltung v |
Ausgabe |
keine |
Voraussetzung |
v.anbieter = a, a.wirdGeloescht = false |
Effekt |
Für alle tk aus v.TicketKontingent gilt: (tk streichen);
Für alle k aus v.TicketKontingent.Ticket.Kauf.Kunde gilt: (k benachrichtigen); |
Kauf revidieren
Sollte ein Anbieter einen Kauf revidieren, so wird das beanstandete Gebot entfernt und der Kauf rückgängig gemacht.
Eingabe |
Kauf ka, Kontingent k |
Ausgabe |
keine |
Voraussetzung |
Kunde ku ist dem Kaufobjekt asso. und Kaufobjekt hat einen gesetzten Zeitpunkt. |
Effekt |
Kauf wird rückgängig gemacht:
Die Assoziation des Kaufobjektes ka mit dem Kunden ku (und damit das Gebot g.invalidate = true gesetzt) wird aufgehoben.
Außerdem wird ka.aufdruck wieder dem tk.ticketpool für alle tk aus k zugeführt.
Mit dem Kaufabschluss hat das System mit dem Verbleib der einzelnen Tickets nichts mehr zu tun!
Sie können gegebenfalls von Anbieterseite wieder in das System eingebracht werden, bzw. der Anbieter kann andere Wege finden seine Tickets
doch noch zu verkaufen (siehe Anmerkung) !
Anmerkung: Es rückt kein Käufer nach; der Anbieter kann jedoch anhand des Protokolls der Auktion den nächsten Bieter
persönlich kontaktieren.
|
|
Kaufinformationen abfragen
Eine Anbieter fragt die bisher noch nicht abgefragten Käufe ab.
Diese Käufe werden dann als abgefragt markiert.
Eingabe |
Anbieter a |
Ausgabe |
{Kauf} k mit k.abgefragtAnbieter=false |
Voraussetzung |
a.wirdGeloescht = false |
Effekt |
In der Ausgabemenge k ist k.abgefragtAnbieter=true gesetzt |
Anbieter registrieren (Person)
Eingabe: |
Adresse adr, String email, String tel, String name, String vname,
Datum geb, String login, String pass |
Ausgabe: |
Anbieter b |
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 Anbieter b mit b.Person
= n und b.Unternehmen={} und b.wirdGelöscht=false |
Anbieter registrieren (Unternehmen)
Eingabe: |
Adresse adr, String tel, String name, String login, String pass,
String kname, String kvname, String kgeb, String kadr, String
ktel, String kemail |
Ausgabe: |
Anbieter a |
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 Anbieter amit
a.Unternehmen=u und a.Person={} und a.wirdGelöscht=false |
Registrierungsdaten
ändern
Eingabe: |
Anbieter a, Parameter<Anbieter> n |
Ausgabe: |
Anbieter a |
Voraussetzung: |
a.wirdGeloescht = false |
Effekt: |
Änderung der Attribute von agemäß den
Werten von n |
Anbieter
löschen
Hier wird der Anbieter nur im System gesperrt und fü das Löschen markiert. Das eigentliche Löschen übernimmt der Systemverwalter.
Eingabe: |
Anbieter a |
Ausgabe: |
keine |
Voraussetzung: |
keine |
Effekt: |
a.wirdGeloescht = true |
|