CapCorn - Interface

Zur Anbindung diverser Hotelprogramme an das CapCorn - Verfügbarkeits- Serversystem wurde die Datei capinterface.dll geschaffen. Ziel ist es, nach Möglichkeit sämtliche Parameter zur Erstellung der Auskunft, der Angebote und der Buchungen automatisiert aus dem vorhandenen Datenbestand in der Hotelsoftware zu extrahieren und via Internet an das CapCorn - Buchungssystem zu übergeben.

Allgemeines

Die Funktionsbibliothek wird als Standard - Windows DLL zur Verfügung gestellt. Alle von außen zugänglichen Funktionsaufrufe folgen der WIN - API - Aufrufkonvention, sodass sie relativ einfach unter den meisten Programmiersprachen angesprochen werden können. Eine Notwendigkeit und eine Anforderung an das betreffende Hotelprogramm ist, dass bei voller Nutzung der bestehenden Server - Systemeigenschaften auch die dazu notwendigen Parameter in der selben oder in zumindest in ähnlicher Form im Hotelprogramm gehostet sein müssen. 

Im Wesentlichen werden folgende Features am Web dargestellt:

Der Ablauf eines Datenabgleichs über CapInterface folgt dem Ablauf:

Die Unterstützung dieser Abschnitte durch CapInterface geht so weit, dass sich alle Aufgabenbereiche auf einfache function - calls reduzieren. Ebenso wenig ist man als User dieses Interfaces mit Protokollen oder ähnlichem Overhead befasst. Die Übertragung der Daten erfolgt in komprimierter und verschlüsselter Form autonom durch dieses Tool. 

Funktionsüberblick

Allgemeine Systemfunktionen

Erstellen einer neuen und leeren Freimeldungsinstanz im Speicher des Hotelsystems

Übergabe des fertigen Freimeldungspakets an das CapCorn Serversystem


Abbruch der Freimeldeprozedur

Ausgabe eines Fehlertextes nach fehlerhafter Übergabe


Definition globaler Hausdaten

Festlegen der Name- und Adressvariablen

Festlegen der Hauskategorie (Sterne)

Festlegen der Verpflegungstypen

Festlegen der Lage (Ortsteil)


Festlegen des Anreisetags


Festlegen von Lageattributen

Festlegen von Hauskriterien


Festlegen der Hausnummer


Festlegen des Haustyps

Angabe der Ortstaxe

Festlegen eines Saisonzeitenintervalls


Definition der Zimmer

Angabe der physischen Zimmernummer

Angabe der logischen Zimmernummer


Angabe von Leistungsattributen für das Zimmer


Festlegen der Zimmerbezeichnung

Festlegen der Zimmergruppe


Festlegen von Zimmerkriterien


Festlegen des Zimmertyps


Angabe des Angebottextes


Unterdrückung von Preiszuschlägen / Nachlässen in Abhängigkeit von der Saison


Festlegen der Priorität im Internetangebot


Angabe der Zimmergröße nach der Bettenzahl


Einstellen der Verfügbarkeit des Zimmers an einem bestimmten Tag


Zuordnen von Nachlässen und Zuschlägen auf einzelne Zimmer


Zuordnen von Packages auf einzelne Zimmer


Einstellen der Fremdanbieter ID für das Zimmer

Einstellen der Maximalzahl an Personen, die einer Reduktion unterworfen werden können


Einstellen der Mindestzahl an Personen, die den vollen Preis zu bezahlen haben


Einstellen des Kurzaufenthalt - Zuschlags


Einstellen des Zu- oder Abschlags für Mehr- oder Unterbelegung


Einstellen der
Sichtbarkeit des Zimmers im Internet

Einstellen des
Zimmer - Grundpreises

 

Definition von Nachlässen und Zusatzleistungen (AddOns)

Angabe der Bezeichnungen für die Leistung / den Nachlass

Festlegen des Leistungstyps

Festlegen von Attributen für die Zusatzleistung oder den Nachlass


Festlegen der Rundungsart für die Zusatzleistung oder den Nachlass


Festlegen der Berechnungsart  für die Zusatzleistung oder den Nachlass

Festlegen der Aufenthaltsdauer für die Anwendung der Zusatzleistung oder des Nachlasses


Festlegen der Saisonen für die Anwendung der Zusatzleistung oder des Nachlasses


Festlegen der Personenzahl für die Anwendung der Zusatzleistung oder des Nachlasses


Festlegen der Minimal- und Maximalzahl dieser Zusatzleistung oder dieses Nachlasses


Festlegen des Alters für die Anwendung der Zusatzleistung oder des Nachlasses


Festlegen des Wert - Betrags für diese Zusatzleistung oder diesen Nachlass


Festlegen der Wochentagsmaske für die Anwendung der Zusatzleistung oder des Nachlasses

 

Definition von Pauschalen (Packages)

Angabe der Bezeichnungen für die Pauschale

Angabe der Leistungsbezeichnungen für die Pauschale


Festlegen des Gültigkeitszeitraums für die Pauschale


Festlegen der Personenzahl, die für diese Pauschale vorgesehen ist


Angabe des Preises für die Pauschale in Euro - Cent

 

Allgemeine Systemfunktionen

Erstellen einer neuen und leeren Freimeldungsinstanz im Speicher des Hotelsystems
long __interface __linkage CI_CreatePresentationFile(long NumOfRooms, long NumOfAddOns, long NumOfPackages);

Diese Funktion stellt den initialen Anfang eines Datenabgleichs mit dem CapCorn Serversystem dar. Damit allokieren Sie Speicher für die vorgegebenen Zahlen an Zimmern, Leistungen und Pauschalen, die Sie in der Folge mit den spezifischen Funktionen im Detail definieren.

Als Resultat erhalten Sie ein Handle, wenn der jeweilige Wert >= 0 ist, oder einen Fehlercode, wenn < 0. Das Handle benötigen Sie für alle weiteren Funktionen. Es behält seine Gültigkeit, bis Sie eine der Funktionen "CI_ClosePresentationFile" oder "CI_CommitPresentationFile" aufrufen.

Bitte beachten Sie: Die Anzahl der Zimmer, der Zusatzleistungen sowie der Pauschalen, die zur selben Zeit pro Hotel am Server residieren können, sind systembedingt wie folgt begrenzt:

100 Zimmer
60 Zusatzleistungen und Nachlässe
30 Pauschalen

 

Übergabe des fertigen Freimeldungspakets an das CapCorn Serversystem
long
__interface __linkage CI_CommitPresentationFile(long InterfaceHandle, const char * CapServer, long MemberID, long Password);

Nachdem Sie mit den diversen "SET" - Funktionen alle Einstellungen für sämtliche Entitäten getroffen haben, übergeben Sie das so aufbereitete Datenpaket mittels dieser Funktion an den CapCorn - Server. In diesem Moment nimmt das Modul standardmäßig über den Port 80 Datenverbindung an die angegebene Serveradresse (z.B. www.capcorn.net) auf und übergibt die Meldung an das Serversystem.

Tipp: Die Richtigkeit der übergebenen Daten können Sie mithilfe des Web - Interfaces (z.B. auf "www.capcorn.net/Web") unmittelbar prüfen.

 

Abbruch der Freimeldeprozedur
long
__interface __linkage CI_ClosePresentationFile(long InterfaceHandle);

Für den Fall, dass Sie eine unvollständige Freimeldungs-Instanz wieder aus dem Speicher entfernen wollen, ohne dass Sie sie absenden, kann dies mit der genannten Funktion erfolgen. Ein erfolgreiches Übertragen, oder ein neuerlicher Aufruf an CI_CreatePresentationFile, führen implizit auch zum Löschen der Instanz.

 

Ausgabe eines Fehlertextes nach fehlerhafter Übergabe
const char __interface * __linkage CI_GetErrorText(long InterfaceHandle);

Bei diversen Fehlern in der Übertragungsprozedur zum Server kann eine verbale Fehlerausgabe neben der Code - Rückgabe mit dieser Funktion unterstützt werden.

 

Definition globaler Hausdaten

Mit der Definition der globalen Hausdaten beginnen Sie die Befüllung Ihrer Meldung mit realen Daten. Für alle Funktionen gilt, dass als erster Übergabeparameter das Handle, welches durch die Funktion CI_CreatePresentationFile erhalten wurde, mit übergeben wird. Der Erfolg des Aufrufs wird durch den Rückgabewert dargestellt: Werte >= 0 stehen für OK, negative Werte kennzeichnen einen Fehler (Siehe Fehlercodes).

Festlegen der Name- und Adressvariablen
long
__interface __linkage CI_SetStringInfoVar(long InterfaceHandle, long Identifier, const char * Variable);

Diverse hausglobale Adressdaten werden mit dieser Funktion definiert.
Mit "Identifier" geben Sie das Attribut bekannt - es steht für folgende Werte:

1 .. Hausname (40 Zeichen)
2 .. Kontaktperson (40 Zeichen)
3 .. Straße (40 Zeichen)
4 .. Ort (40 Zeichen)
5 .. Postleitzahl (6 Zeichen)
6 .. Telefonnummer (20 Zeichen)
7 .. Faxnummer (20 Zeichen)
8 .. Handy / SMS - Nummer (20 Zeichen)
9 .. Internetadresse (60 Zeichen)
10.. Mailadresse (60 Zeichen)
11.. Mail für Buchungen (60 Zeichen)
12 .. Angebotserläuterungen URL (60 Zeichen)
13 .. URL für Stylesheets (60 Zeichen)
14 .. URL für Buchungsbedingungen (60 Zeichen)
15 .. Planquadrat Position -> Referenz im Ortsplan (3 Zeichen, z.B. H11)
16 .. Kurze Hausbeschreibung in deutsch (100 Zeichen)
17 .. Kurze Hausbeschreibung in englisch (100 Zeichen)

 

Festlegen der Hauskategorie (Sterne)
long
__interface __linkage CI_SetCategory(long InterfaceHandle, long Category);

Die Werte für Kategorien (Sterne) werden einheitlich für die Region festgelegt. Möglich sind Werte zwischen 0 und 9. Für die betreffenden Werte in der jeweiligen Region beziehen Sie sich bitte auf das Datenfeld 'R1' im Anfrageformular der Region.

 

Festlegen der Verpflegungstypen
long
__interface __linkage CI_SetCatering(long InterfaceHandle, long Catering, long Alternative);

Die Werte für Verpflegungstypen (Frühstück / Halbpension) werden einheitlich für die Region festgelegt. Möglich sind Werte von 0 bis 9. Für die betreffenden Werte in der jeweiligen Region beziehen Sie sich bitte auf das Datenfeld 'R2' im Anfrageformular der Region. Falls das Haus wahlweise 2 Arten von Verpflegung anbietet, kann eine 2. Alternative festgelegt werden. Ist nur ein Verpflegungstyp vorgesehen, so ist für die Alternative '0' anzugeben.

 

Festlegen der Lage (Ortsteil)
long
__interface __linkage CI_SetLocation(long InterfaceHandle, long Location);

Die Region des betreffenden Hotels wird in sogenannte Ortsteile eingeteilt. Die zu übergebenden Werte sind auch hier lokal für den Tourismusort festgelegt und dem Anfrageformular der Region zu entnehmen (R3).

 

Festlegen des Anreisetags
long
__interface __linkage CI_SetChangeDay(long InterfaceHandle, long ChangeDay);

Das Hotel kann einen definierten Wechseltag festlegen (typischerweise ist dies der Samstag). 

Sobald ein solcher Wochentag definiert wird, gilt die folgende Regel: Zimmer, in denen eine Mindestaufenthaltsdauer von genau 7 Tagen festgelegt wurde, erbringen nur dann eine Verfügbarkeits - Ausgabe, wenn dieser Anreisetag zutrifft und die Aufenthaltsdauer genau 7 Tage oder ein Vielfaches davon (mehrere Woche) beträgt.

Als Wert für ChangeDay kommen die Ziffern 1 bis 7 (1=Sonntag, 7 = Samstag) zur Anwendung.

Festlegen von Lageattributen
long
__interface __linkage CI_SetLocationAttrib(long InterfaceHandle, long LocationAttrib);

Hier bestimmen Sie die besondere Lage des Hauses innerhalb der Infrastruktur. Mögliche Werte sind derzeit:

1 .. Nähe Bushaltestelle
2 .. Liftnähe
3 .. Zentrumsnähe
4 .. Ruhige Lage

Diese Funktion ist für jedes zu setzende Attribut separat aufzurufen

 

Festlegen von Hauskriterien
long
__interface __linkage CI_SetHouseCriteria(long InterfaceHandle, long Criteria);

Mit dieser Funktion teilen Sie dem System mit, über welche Ausstattungsmerkmale die Destination verfügt. Als Wertemenge sind vorgesehen:

1 ... Kreditkartenbezahlung
2 ... Einzelzimmerzuschlag
3 ... Animation
4 ... Kinderfreundlich
5 ... Behindertengerecht
6 ... Kinderbetreuung, Kindergarten
7 ... Babysitter im Haus
8 ... Konferenzraum
9 ... Hotelbus
10 .. Hallenbad im Haus
11 .. Geheiztes Freibad
12 .. Whirlpool
13 .. Sauna im Haus
14 .. Solarium im Haus
15 .. Fitnessraum
16 .. Kosmetiksalon
17 .. Massage im Haus
18 .. Tennisplatz im Haus
19 .. Haustier möglich
20 .. Telefon am Zimmer
21 .. Haartrockner
22 .. Mikrowelle im Appartement
23 .. Brötchenservice Appartement
24 .. Fahrradverleih
25 .. Gartengriller
26 .. Öffentliches Restaurant
27 .. Wahlmenü
28 .. Diätküche / Vollwertkost
29 .. Frühstücksbuffet
30 .. Erweitertes Frühstück
31 .. Minibar am Zimmer
32 .. Hausbar
33 .. Frühstück mit Aufpreis
34 .. Dancing
35 .. TV im Zimmer / Appartement
36 .. Radio im Zimmer / Appartement
37 .. Nichtraucherzimmer im Haus
38 .. Etagenbad / WC
39 .. Garagen
40 .. Safe im Zimmer/ Appartement
41 .. Tischtennis
42 .. Golf - Gründerhotel
43 .. Golf Abschlagplatz
44 .. Reiten
45 .. Urlaub am Bauernhof
46 .. Freier Eintritt ins Hallenbad
47 .. Umweltschutzhand
48 .. Pauschalangebote
49 .. Turnsaal
50 .. Volleyball
51 .. Spielwiese
52 .. Spielraum
53 .. Bastelraum
54 .. Sportplatz
55 .. Eigene Rodelbahn
56 .. Pferdeschlitten
57 .. Dampfbad
58 .. Fernsehraum
59 .. Personenlift

Hauskriterien können gesondert für Winter und Sommer angegeben werden. Für Attribute, die im Sommer anzugeben sind, ist der Parameter "Summer" mit 1 zu belegen, Attribute für den Winter werden mit Summer = 0 gesetzt.

 

Festlegen der Hausnummer
long
__interface __linkage CI_SetHouseNumber(long InterfaceHandle, long HouseNumber);

Neben der Hausnummernangabe zur Straße ist die Hausnummer nochmals explizit als numerischer Wert zum Zwecke der Suche nach Hausnummern anzugeben.

 

Festlegen des Haustyps
long
__interface __linkage CI_SetHouseType(long InterfaceHandle, long HouseType);

Zur Zeit unterscheidet das System folgende Haustypen, die als Parameter HouseType zu definieren sind:

1 ... Hotel
2 ... Gasthof
3 ... Berghotel/Berggasthof
4 ... Aparthotel
5 ... Hotel garni
6 ... Pension
7 ... Frühstückspension
8 ... Privatzimmer
9 ... Jugendgästehaus
10 .. Apartmenthaus
11 .. Almhütte

Diese Liste ist, wie alle anderen Wertelisten, nach oben hin offen und könnte bei Bedarf ergänzt werden.

Angabe der Ortstaxe
long
__interface __linkage CI_SetLocalTax(long InterfaceHandle, long LocalTax);

Ortstaxen werden in der Preisberechnung mit angegeben und sind daher auch entsprechend über diese Funktion zu setzen.

 

Festlegen eines Saisonzeitenintervalls
long __interface __linkage CI_SetSeasonTime(long InterfaceHandle, long SeasonID,
long FromYear, long FromMonth, long FromDay,
long
TillYear, long TillMonth, long TillDay);

Da die Beauskunftung am Serversystem immer nur max. 360 Tage in die Zukunft erfolgt, sollten nur jene Saisonen definiert werden, die innerhalb dieses Zeitraums liegen. Zeitintervalle der Vergangenheit oder solche, die weiter als 360 Tage in der Zukunft liegen, sollten unberücksichtigt bleiben. Pro Betrieb ist nur eine beschränkte Zahl an Zeitintervallen zulässig.

Das System kennt pro Jahreszeit 10 verschiedene Saisonen. Zulässige Werte sind daher 1 bis 10 für die Wintersaisonen und 11 bis 20 für den Sommer. Als allgemeine Konvention gilt: Saisonen werden zwecks Verallgemeinerung mit den Buchstaben A bis J (= 1..10 Winter bzw. 11..20 Sommer) gekennzeichnet.

 

Definition der Zimmer

Im folgenden Abschnitt werden alle Funktionen angeführt, die die Eigenschaften, Leistungen und Attribute der einzelnen Zimmer einschließlich deren Verfügbarkeit festlegen. Alle Funktionen erwarten das sogenannte InterfaceHandle aus CI_ClosePresentationFile, sowie den Index des Zimmers von 0 beginnend bis zu jenem Maximalwertes minus 1, der bei CI_ClosePresentationFile als NumOfRooms festgelegt wurde.

Festlegen der physikalischen Zimmernummer
long __interface __linkage CI_SetRoomNumber(long InterfaceHandle, long RoomIndex, long Number);

Zimmer besitzen eine physikalische (jene Nummer, die in der Regel tatsächlich auf der Zimmertür steht) sowie eine logische Zimmernummer. Mit dieser Funktion legen Sie die physikalische, reale Nummer fest.

 

Festlegen der logischen (systembezogenen) Zimmernummer
long __interface __linkage CI_SetRoomID(long InterfaceHandle, long RoomIndex, long RoomID);

Zimmer besitzen eine physikalische (jene Nummer, die in der Regel tatsächlich auf der Zimmertür steht) sowie eine logische Zimmernummer. Mit dieser Funktion definieren Sie die logische Nummer. Die logische Zimmernummer stammt in der Regel aus dem Hotelsystem und kann weitgehend frei festgelegt werden. Maßgeblich ist allerdings, dass sie eindeutig angegeben wird, um sie, beispielsweise im Falle von Buchungen, richtig zuordnen zu können.

Angabe von Leistungsattributen für das Zimmer
long
__interface __linkage CI_SetRoomServiceAttrib(long InterfaceHandle, long RoomIndex, long ServiceAttrib, long Summer);

Mit dieser Funktion definieren Sie die einzelnen Inklusivleistungen (Leistungen, die im Zimmerpreis enthalten sind) des Zimmers. Die Funktion ist für Winter und Sommer, sowie für jedes einzelne Leistungsmerkmal gesondert aufzurufen.

Für ServiceAttrib gelten folgende Werte:

1 ... Frühstücksbuffet
2 ... Halbpension
3 ... Vollpension
4 ... Wahlmenü
5 ... Saunabenutzung
6 ... Solarium
7 ... Fernsehgerät
8 ... Garagenplatz 
9 ... All inclusive
10 .. Parkplatz

Festlegen der Zimmerbezeichnung
long
__interface __linkage CI_SetRoomName(long InterfaceHandle, long RoomIndex, const char * Name);

Mit dieser Funktion definieren Sie die Zimmerbezeichnung. Maximal 20 Zeichen sind zulässig.

 

Festlegen der Zimmergruppe
long
__interface __linkage CI_SetRoomGroup(long InterfaceHandle, long RoomIndex, long Group);

Der Übersichtlichkeit wegen können Zimmer beliebig zu Gruppen zusammengefasst werden. Zimmer derselben Gruppe erscheinen beispielsweise am Web - Interface auf einer gemeinsamen Seite. Die Gruppierung kann aus beliebigen Gesichtspunkten heraus erfolgen (Stockwerke, Typen, etc.). Die Werte für Gruppen können im Bereich von 1 bis 20 liegen, wobei jedenfalls mit 1 begonnen werden soll, und keine Lücken in den Gruppennummern bestehen sollten.

 

Festlegen von Zimmerkriterien
long
__interface __linkage CI_SetRoomCriteria(long InterfaceHandle, long RoomIndex, long Criteria);

Mit dieser Funktion können die Ausstattungskriterien des Zimmers festgelegt werden. Das System kennt derzeit:

1 ... Badewanne
2 ... Radio
3 ... Balkon
4 ... Haarfön
5 ... Safe
6 ... Mikrowelle
7 ... Internetanschluss
8 ... Schminkspiegel
9 ... Nichtraucherzimmer
10 .. Kabel TV
11 .. Kühlschrank
12 .. Wecker
13 .. Waschmaschine
14 .. Stereoanlage
15 .. Dusche
16 .. WC
17 .. Etagen WC
18 .. Etagendusche
19 .. Terrasse
20 .. Backrohr
21 .. Geschirrspüler
22 .. Gefriertruhe
23 .. Kachelofen
24 .. Kaffeemaschine

 

Festlegen des Zimmertyps
long
__interface __linkage CI_SetRoomType(long InterfaceHandle, long RoomIndex, long Type);

CapCorn unterscheidet derzeit zwei Zimmertypen: Hotelzimmer und Appartements. Der Unterschied zwischen diesen Typen liegt neben der Unterscheidung bei Web - Anfragen vor allem in der Preiskalkulation. Appartements werden in der Regel als gesamte Wohnungen angepriesen, während Zimmerpreise sich auf jeweils 1 Person beziehen.

Für Type ist anzugeben:

1 .. Hotelzimmer
2 .. Appartement

 

Angabe des Angebottextes
long
__interface __linkage CI_SetRoomCaption(long InterfaceHandle, long RoomIndex, const char * Caption, long Language);

Zimmer besitzen neben ihrer Bezeichnung einen sogenannten Präsentationstext in zwei Sprachen. Dieser kommt zur Anwendung, wenn das Zimmer oder die Wohnung im Internet offeriert wird.

In der Sprachendefinition gilt: 0 = deutsch, 1 = englisch.

Wichtig: Bitte achten Sie darauf, dass Zimmer derselben Gattung unbedingt exakt denselben Wortlaut besitzen, da das System bei der Ermittlung von Alternativangeboten mit Textvergleichen arbeitet und ein Zimmer auch mit geringfügigen Abweichungen in den Bezeichnungstexten als unterschiedlich qualifiziert wird.

 

Unterdrückung von Preiszuschlägen / Nachlässen in Abhängigkeit von der Saison
long
__interface __linkage CI_SetRoomNoAddPrice(long InterfaceHandle, long RoomIndex, long SeasonID);

Zimmerbezogene Zu- und Abschläge (nicht zu verwechseln mit den AddOns) können in Abhängigkeit von der Saison dazu- oder abgeschalten werden. Dies ist beispielsweise zweckmäßig, wenn man in starken Saisonen keine Nachlässe bei Unterbelegung akzeptieren möchte.

Für die SeasonID ist der Wert 1..10 für Winter- und 11..20 für Sommersaisonen (gem. A..J) jeweils anzugeben.

 

Festlegen der Priorität im Internetangebot
long
__interface __linkage CI_SetRoomOfferPriority(long InterfaceHandle, long RoomIndex, long OfferPriority);

Die Reihenfolge, nach der Zimmer im Internet angeboten und verkauft werden, kann durch diese Funktion bestimmt sein. Für OfferPriority gelten die Werte: 0 = sehr hoch bis 2 = niedrig.

Angabe der Zimmergröße nach der Bettenzahl
long
__interface __linkage CI_SetRoomBedNumbers(long InterfaceHandle, long RoomIndex, long MinBeds, long MaxBeds, long DefaultBeds);

Diese Funktion definiert die Zahl der Betten für das jeweilige Zimmer. Dabei muss MinBeds <= MaxBeds angegeben werden. Der Wert DefaultBeds muss dazwischen liegen. Maßgeblich sind diese Bettenzahlen vor allem für die Auswahl des Zimmers beim Erstellen des Internet - Angebots. DefaultBeds ist jene Bettenzahl, die für das Zimmer typischerweise vorgesehen ist. So ist beispielsweise ein Zweibettzimmer mit Zusatzbett wie folgt zu definieren:

MinBeds = 2, MaxBeds = 3, DefaultBeds = 2;

Würde man das Zimmer auch für eine Person zur Verfügung stellen, so müsste MinBeds mit 1 belegt werden.

 

Einstellen der Verfügbarkeit des Zimmers an einem bestimmten Tag
long __interface __linkage CI_SetRoomAvailabilty(long InterfaceHandle, long RoomIndex, long Year, long Month, long Day, long
Availabilty, long NoArrival, long ForeignBookable, long ExactMatch);

Zur Freigabe der Zimmer im Internet müssen alle Zimmer für jeden Tag der Beauskunftung (= ab heute bis 360 Tage in die Zukunft) ein Verfügbarkeitsmerkmal mit dieser Funktion erhalten.

Der Wert für Availability (x) ist folgendermaßen zu definieren:

0 bis 10 Zimmer verfügbar bei einer Mindestaufenthaltsdauer von x
100 Zimmer ist belegt
101 Zimmer ist reserviert
102 Zimmer ist geschlossen

Werte von 100 bis 102 haben hinsichtlich der Verfügbarkeit dieselbe Eigenschaft. Die Unterscheidung zwischen belegt, reserviert oder geschlossen dient allerdings statistischen Auswertungen am Web - System (z.B. wie viele Betriebe derzeit geschlossen
haben), und sollte daher entsprechend unterstützt werden.

Das Flag NoArrival (0 oder 1) legt fest, dass am betreffenden Tag keine Anreise in dieses Zimmer stattfinden darf.

ForeignBookable (0 oder 1) ist für Reisebüroanbindungen oder Drittanbieter vorgesehen. Das Zimmer kann zu diesem Tag auch über eine Agentur (meist provisionsbehaftet) verkauft werden. Diese Variable ist nur von Bedeutung, wenn eine entsprechende Datenschiene besteht.

ExactMatch (0 oder 1) legt fest, dass das Zimmer für den betreffenden Tag nur mit der Standard - Bettenzahl verkauft werden darf. Diese Angabe macht beispielsweise dann Sinn, wenn man eine Ferienwohnung normalerweise für weniger Personen unter Preis verkauft, in Spitzenzeiten aber diese Alternative unterdrücken möchte.

 

Zuordnen von Nachlässen und Zuschlägen auf einzelne Zimmer
long
__interface __linkage CI_SetRoomAddOn(long InterfaceHandle, long RoomIndex, long AddOnIndex);

Wie unter dem Kapitel Ermäßigungen und Zusatzleistungen beschrieben, können diverse Zusätze wahlweise und frei definiert werden. Zur Anwendung kommen diese Leistungen aber erst, wenn sie mittels dieser Funktion den einzelnen Zimmern zugewiesen werden. AddOnIndex bezieht sich auf die Zusatzleistung, bzw. auf die Ermäßigung, und geht von 0 bis auf NumOfAddOns, die bei der Definition der Meldung festgelegt wurde.

 

Zuordnen von Packages auf einzelne Zimmer
long
__interface __linkage CI_SetRoomPackage(long InterfaceHandle, long RoomIndex, long PackageIndex);

Wie unter dem Kapitel Pauschalen (Packages) beschrieben, können Zimmer auch Teil eines Pauschalangebots sein. Die Zuordnung von Zimmern zur jeweiligen Pauschale wird mit dieser Funktion durchgeführt. PackageIndex  bezieht sich auf die Pauschale und geht von 0 bis zur NumOfPackages, die bei der Definition der Meldung festgelegt wurde.

 

Einstellen der Fremdanbieter ID für das Zimmer
long
__interface __linkage CI_SetRoomForeignID(long InterfaceHandle, long RoomIndex, long ForeignID);

Wenn das Hotel beispielsweise mit einem Reisebüro kooperiert, indem die Daten aus dem CapCorn Serversystem an den Partner elektronisch weiter gegeben werden, so kann man hier eine Referenznummer für das jeweilige Zimmer angeben. Typischerweise ist dies eine ID oder eine Kennzahl, die in der Datenbank des Partners hinterlegt ist.

 

Einstellen der Maximalzahl an Personen, die einer Reduktion unterworfen werden können
long
__interface __linkage CI_SetRoomMaxReductions(long InterfaceHandle, long RoomIndex, long MaxReductions);

Diese Zahl bezieht sich auf die Preisnachlässe, die unter "AddOns" definiert sind. Damit legt man fest, wie viele Betten maximal reduziert werden dürfen. 

 

Einstellen der Mindestzahl an Personen, die den vollen Preis zu bezahlen haben
long
__interface __linkage CI_SetRoomFullPayers(long InterfaceHandle, long RoomIndex, long FullPayers);

Diese Zahl bezieht sich auf die Preisnachlässe, die unter "AddOns" definiert sind. Damit legt man fest, bei wie vielen Betten zumindest der volle Preis fällig wird - also keine Ermäßigung möglich ist. 

 

Einstellen des Kurzaufenthalt - Zuschlags
long
__interface __linkage CI_SetShortstayCharge(long InterfaceHandle, long RoomIndex, long StayTime, long Add, long AsEuro);

Mit dieser Funktion kann man den Standardzimmerpreis der jeweiligen Saison um einen Faktor oder um einen Betrag variieren. Wenn der letzte Parameter mit 1 angegeben wird, so wird die Variable Add als Eurocent - Betrag durch das System interpretiert.

 

Einstellen des Zu- oder Abschlags für Mehr- oder Unterbelegung
long
__interface __linkage CI_SetAddBedCharge(long InterfaceHandle, long RoomIndex, long BedDifference, long Charge, long AsEuro);

Für den Fall, dass Zimmer nicht voll ausgelastet sind, bzw. über die Mindestbelegung hinaus belegt werden, können Zu- und Abschläge definiert werden. Positive Werte für BedDifference beziehen sich auf die Abweichung von der Mindest - Personenzahl. Mit negativen Werten wird die Abweichung von der Maximal - Personenzahl definiert.

Z.B.: Zimmer mit 1-4 Betten und einer BedDifference von -1 bedeuten einen Zu / Abschlag bei Belegung mit 3 Personen; Mit +1 ist der Faktor für eine Belegung mit 2 Personen definiert.

Die Berechnung, ob Zu- oder Abschlag, ist zwischen Appartements und Hotelzimmern genau seitenverkehrt. Hotelzimmer werden bei Mehrbelegung mit einem Abschlag versehen, bei Ferienwohnungen führt eine Mehrbelegung zu einem Zuschlag. Bei Unterbelegung verhält es sich genau umgekehrt.

 

Einstellen der Sichtbarkeit im Internet für das Zimmer
long
__interface __linkage CI_SetInternetPublicity(long InterfaceHandle, long RoomIndex, long Publicity);

Die Sichtbarkeit von Zimmern im Internet kann in Stufen mittels dieser Funktion eingestellt werden. Zur Auswahl steht:

0 ... Das Zimmer/Wohnung nicht anbieten
1 ... Zimmer/Wohnung anbieten, aber nicht buchbar
2 ... Zimmer/Wohnung voll buchbar

 

Einstellen des Zimmer - Grundpreises
long
__interface __linkage CI_SetBasicPrice(long InterfaceHandle, long RoomIndex, long Price, long SeasonID);

Gemäß den 20 unterstützten Saisonen können pro Zimmer 20 verschiedene Preise festgelegt werden. SeasonID kann die Werte 1 (für Winter A) bis 20 (für Sommer J) annehmen. Die Preise sind in Eurocent definiert.

 

Definition von Nachlässen und Zusatzleistungen (AddOns)

Zuschläge und Preisnachlässe werden in CapCorn zunächst frei definiert, eingestellt und mit diversen Eigenschaften versehen. Danach sind sie individuell den einzelnen Zimmern zuzuordnen.

Angabe der Bezeichnungen für die Leistung / den Nachlass
long __interface __linkage CI_SetAddOnName(long InterfaceHandle, long AddOnIndex, const char * Name, const char * Parameter, const char * Unit, int Language);

Mit dieser Funktion legen Sie die verbalen Begriffe der Zusatzleistung fest. Im Rahmen einer Angebotslegung wird dieses AddOn dann in Form von <Name> <Anzahl> <Parameter> <Unit> dargestellt, wobei <Anzahl> eine Auswahlbox für den Gast darstellt.

Z.B.: <Kinderermäßigung> <Anzahl> <Kinder> <bis 6 Jahre>.

 

Festlegen des Leistungstyps
long __interface __linkage CI_SetAddOnType(long InterfaceHandle, long AddOnIndex, long Type);

Über diese Systematik wird der Typ der Leistung festgelegt. Dabei wird unterschieden:

0 ... Zuschlag
1 ... Ermäßigung
2 ... Preisersatz

Die Variante Preisersatz ist eine Besonderheit. Sie führt dazu, dass der festgelegte Zimmerpreis durch den Wert dieses AddOns ersetzt wird.

 

Festlegen von Attributen für die Zusatzleistung oder den Nachlass
long __interface __linkage CI_SetAddOnAttrib(long InterfaceHandle, long AddOnIndex, long Attrib);

Diese Funktion stellt verschiedene Eigenschaften ein:

1 .. Der Wert wird in % vom Logis - Preis angegeben
2 .. Nicht im Web darstellen
3 .. Im Web als Checkbox darstellen (nur möglich, wenn die Werte 0 oder 1 angenommen werden)
4 .. Nur bei Zusatzbetten anwenden
5 .. Wird nicht als Ermäßigung gezählt (beeinflusst nicht den Wert "Maximalzahl Ermäßigungen" im Zimmer)
6 .. Auf Endpreis anwenden - Prozentuelles AddOn wird nach anderen AddOns berechnet
7 .. AddOn Preis/Wert wird je Saison getrennt angegeben
8 .. In den Angebotspreis einrechnen (stiller Zuschlag / durch den Gast nicht wählbar).

 

Festlegen der Rundungsart für die Zusatzleistung oder den Nachlass
long __linkage CI_SetAddOnRoundType(long InterfaceHandle, long AddOnIndex, long RoundType);

Resultierende Endbeträge aus der Berechnung von Zusatzleistungen und Nachlässen werden nach folgenden Vorgaben für den Rundungstyp (RoundType) gerundet:

0 .. auf ganze Euro
1 .. auf 50 Cent
2 .. auf 10 Cent
3 .. auf 1 Cent


Festlegen der Berechnungsart  für die Zusatzleistung oder den Nachlass
long __linkage CI_SetAddOnCalcualtionType(long InterfaceHandle, long AddOnIndex, long CalculationType);

Der Multiplikationsfaktor für den sich ergebenden Endpreis der Zusatzleistung oder des Nachlasses ist durch diese Funktion wie folgt zu definieren:

0 .. Betrag mal Stückzahl und Tag
1 .. Betrag mal Stückzahl und Personenzahl im Zimmer pro Tag
2 .. Pauschal für den Aufenthalt
3 .. Pauschal pro Aufenthaltstag


Festlegen der Aufenthaltsdauer für die Anwendung der Zusatzleistung oder des Nachlasses
long __interface __linkage CI_SetAddOnDurationRange(long InterfaceHandle, long AddOnIndex, long MinDay, long MaxDay);

Hier kann definiert werden, bei welcher Aufenthaltsdauer das AddOn zur Anwendung kommen darf. Wird diese Funktion für das AddOn nicht aufgerufen, so unterliegt es keiner Bedingung hinsichtlich der Dauer.

 

Festlegen der Saisonen für die Anwendung der Zusatzleistung oder des Nachlasses
long __interface __linkage CI_SetAddOnSeasonMask(long InterfaceHandle, long AddOnIndex, long SeasonID);

Mit dieser Funktion stellt man ein, zu welchen Saisonen das AddOn gültig ist. SeasonID kann die Werte 1 (für Winter A) bis 20 (für Sommer J) annehmen, bzw. ist mit 0 für "ohne saisonale Einschränkung" zu definieren. Die Funktion ist für jede zu setzende Saison gesondert aufzurufen.

 

Festlegen der Personenzahl für die Anwendung der Zusatzleistung oder des Nachlasses
long __interface __linkage CI_SetAddOnPersonRange(long InterfaceHandle, long AddOnIndex, long MinPerson, long MaxPerson);

Hier stellt man die Personenzahl ein, bei der das AddOn zur Anwendung kommt. Wird diese Funktion innerhalb einer Session nicht aufgerufen, so unterbleibt eine Filterung hinsichtlich der Personenzahl für dieses AddOn.

 

Festlegen der Minimal- / Maximalzahl dieser Zusatzleistung oder des Nachlasses
long __interface __linkage CI_SetAddOnUnitRange(long InterfaceHandle, long AddOnIndex, long MinUnit, long MaxUnit);

Mit dieser Funktion legt man den Wertebereich für die mögliche Anzahl dieser Leistungen - sofern zutreffend - fest. So definiert man beispielsweise zwingende Zuschläge (z.B. Endreinigung im Appartement) mit einem Bereich von 1 bis 1.

 

Festlegen des Alters für die Anwendung der Zusatzleistung oder des Nachlasses
long __interface __linkage CI_SetAddOnAgeRange(long InterfaceHandle, long AddOnIndex, long MinAge, long MaxAge);

Der Wertebereich für das Alter der Gäste ist typisch für Kinder- oder Seniorenermäßigungen. In allen andern Fällen sollte diese Werte nicht angegeben werden. ,bzw. der Funktionsaufruf unterbleiben.

 

Festlegen des Wert - Betrags für diese Zusatzleistung oder diesen Nachlass
long __interface __linkage CI_SetAddOnValue(long InterfaceHandle, long AddOnIndex, long Amount, long SeasonID);

Hier stellt man den Wert des AddOns ein. Abhängig vom Parameter CI_SetAddOnAttrib -> Attrib, ist es ein Prozent- oder eine Eurocent - Betrag. SeasonID bezieht sich hier wiederum auf die 20 möglichen Saisonen. Für AddOns, die kein Saisonsplitting führen (siehe CI_SetAddOnAttrib 7), ist nur ein Wert mit SeasonID 1 zu definieren.

 

Festlegen der Wochentagsmaske für die Anwendung der Zusatzleistung oder des Nachlasses
long __interface __linkage CI_SetAddOnWeekday(long InterfaceHandle, long AddOnIndex, long Weekday);

AddOns können an bestimmten Wochentagen ausgenommen werden (z.B.: für Werktagsbonus). Als Weekday wird ein Wert von 1 bis 7 definiert, wobei 1 für  Sonntag und 7 für Samstag gilt.

 

Definition von Pauschalen (Packages)

Unter Pauschalen im Sinne von CapCorn versteht man ein Leistungspaket, das neben diversen Zusatzartikeln (Skipass, Wanderführer, etc.) ein Zimmer aus dem Verfügbarkeitskontingent beinhaltet. Diese Pauschalen werden hinsichtlich ihres Preises und ihrer Merkmale festgelegt und über die oben stehende Zuordnungsfunktion an in Frage kommende Zimmer gebunden. Die Verfügbarkeit des oder der jeweils zugeordneten Zimmer bestimmt auch die Verfügbarkeit des gesamten Packages.

Achtung: Sämtliche Einstellungen und Einschränkungen, wie AddOns, Personenzahlen, Preise usw. verlieren ihre Bedeutung, wenn das Zimmer als Package im Internet verkauft wird. Insofern ist von Client - Seite aus zu achten, dass keine unmöglichen Zuordnungen, wie z.B. 2 - Personen - Packages auf Zimmer mit nur einem Bett, getroffen werden.

 

Angabe der Bezeichnungen für die Pauschale
long
__interface __linkage CI_SetPackageName(long InterfaceHandle, long PackageIndex, const char * Name, const char * Description, int Language);

Hier legt man die Bezeichnung (20 Zeichen max.) sowie eine Kurzbeschreibung (200 Zeichen max.) der Pauschale fest. Die Eingabe kann in englisch oder deutsch erfolgen (0 deutsch, 1 englisch).

 

Angabe der Leistungsbezeichnungen für die Pauschale
long
__interface __linkage CI_SetPackageAchievement(long InterfaceHandle, long PackageIndex, long AchievementID, const char * Achievement, int Language);

Pro Pauschale können bis zu 8 (AchievementID = 1 bis 8) Leistungstexte mit je 30 Zeichen definiert werden. Diese Leistungen werden im Kontext der Packageanpreisung dargestellt. Auch hier können die Angaben in englisch (Language = 1) und in deutsch (Language = 0) erfolgen.

 

Festlegen des Gültigkeitszeitraums für die Pauschale
long
__interface __linkage CI_SetPackageTimeValues(long InterfaceHandle, long PackageIndex, long TimeID, long Year, long Month, long Day, long TimeSpan);

Für jedes Package können bis zu 8 Zeitintervalle (TimeID 1..8) angegeben werden, innerhalb derer die Pauschale angeboten werden darf. Die Eingabe erfolgt in der Form: Start Datum (Day, Month, Year) und folgendes Zeitintervall in Tagen (ab x - y Tage).

 

Festlegen der Personenzahl, die für diese Pauschale vorgesehen ist
long
__interface __linkage CI_SetPackagePersDays(long InterfaceHandle, long PackageIndex, long NumOfPersons, long Duration);

Die zentralen und fixen Merkmale für Pauschalen sind die Personenzahl und die Aufenthaltsdauer. Das heißt, ein Package ist für eine fixe Personenzahl UND für eine fixe Aufenthaltsdauer definiert.

Beispiele: Single Weekend (1 Person - 2 Tage), Couble Week (2 Personen - 7 Tage), etc.


Angabe des Preises für die Pauschale in Euro - Cent
long __interface __linkage CI_SetPackagePrice(long InterfaceHandle, long PackageIndex, long TimeID, long price);

Gemäß der strikten Definition bezüglich Aufenthaltsdauer und Personenzahl ist im wesentlichen ein definierter Preis für die angeführten Leistungen anzuwenden. Der Preis ist aber für jedes Zeitintervall gesondert anzugeben, wodurch auch eine saisonale Staffelung gewährleistet ist. TimeID korrespondiert mit jener TimeID aus CI_SetPackageTimeValues. Insofern überschreibt eine Pauschale auch sämtliche Saisonpreisdefinitionen der einzelnen Zimmer.

 

Copyright (c) CapCorn Company Software GMBH
Autor: Ing. Franz Hasewend
office@capcorn.at