Skip to content

Kniffelige Belegungsregel

In einem Zimmer gelten folgende Belegungsregeln:



  • Das Zimmer darf maximal mit 4 Personen belegt werden

  • Alle Personen müssen älter als 2 Jahre sein

  • Mindestens eine Person muss 10 Jahre alt sein

  • Es dürfen höchstens 2 Personen im Alter von bis zu 12 Jahren in ein
    Zimmer


Welche Occupancy-Regel deckt diese Bedingungen ab?


A:


<Occupancy Key="A">
<Person>
<MinAge>10</MinAge>
<MinCount>1</MinCount>
<MaxCount>2</MaxCount>
</Person>
<Person>
<MinAge>2</MinAge>
<MaxAge>12</MaxAge>
<MaxCount>2</MaxCount>
</Person>
</Occupancy>

B:


<Occupancy Key="B">
<Person>
<MinAge>10</MinAge>
<Count>1</Count>
</Person>
<Person>
<MinAge>2</MinAge>
<MaxCount>3</MaxCount>
</Person>
<Exclude>
<Person>
<MinAge>10</MinAge>
<Count>1</Count>
</Person>
<Person>
<MaxAge>12</MaxAge>
<Count>3</Count>
</Person>
</Exclude>
</Occupancy>

Hinweis


Testen Sie Ihre Lösung mit folgender Personenliste (Alter)


(12,12,12,10) -> Falsch, da 3 Personen im Alter von bis zu 12
Jahren enthalten.


Vollzahler und Erwachsene

Vollzahler und Erwachsene


In einem Hotel gilt im Doppelzimmer (DZ):



  • Mindestbelegung 2 Personen ist, wobei mindestens eine Person bei
    Reiseantrit 16 Jahre oder älter sein muss.

  • maximale Belegung mit 3 Personen, wobei die dritte Person jünger als
    16 Jahre sein muss

  • stets 2 Personen Vollzahler sind

  • Vollzahlerpreis beträgt 100 Währungseinheiten pro Person und
    Nacht

  • für Personen < bis 2 Jahre bei Reiseantritt gilt eine 100%
    Ermäßigung auf alles

  • für Personen < 6 Jahre bei Reiseantritt gilt eine 50% Ermäßigung
    auf den Vollzahler-Preis

  • für Personen < 16 Jahre bei Reiseantritt gilt eine 25% Ermäßigung
    auf den Vollzahler-Preis


Belegung


Wieviele Belegungsregeln (Occupancy) sind zur Abbildung der Belegung
maximal notwendig?



  • A: 2

  • B: 3

  • C: 1

  • D: diese Belegung kann nicht abgebildet werden, da die
    Vollzahler-Regel mit der Mindestbelegungsregel kollidieren kann.


Preis


Wie stellt man sicher, dass der Vollzahlerpreis stets für 2 Personen
berechnet wird?



  • A: Mit einem Filter, der nur dann das Doppelzimmer durchlässt, wenn
    es zwei Erwachsene (>= 16 Jahre) gibt

  • B: Mit einem Conditional Tag, der die Anzahl der Erwachsenen zählt
    und in einem PriceItem der Klasse für Vollzahler verwendet wird

  • C: Mit einer Impact-Bedingung für die ersten 2 Personen in allen
    PriceItems der PriceItem-Klasse für den Vollzahlerpreis


Optimierung


Wenn es mehrere Saisonzeiten (Vorsaison, Hauptsaison, Nachsaison) für
das Hotel gäbe, wie könnte dann die Umsetzung der Preisregel
redundanzarm erfolgen?



  • A: Mit Hilfe globaler PriceItem-Klassen und entsprechenden
    Bedingungen, die auf das Hotel, Zimmer und das Checkin-Datum prüfen

  • D: Mit Hilfe von Conditional Tags in der SellingAccom, die die
    Datumsgrenzen der Saisonzeiten prüfen und entsprechenden PriceItems in
    der Unit oder SellingUnit verwendet werden

  • C: Mit Hilfe von Conditional Tags, die die Datumsgrenzen der
    Saisonzeiten prüfen und entsprechenden PriceItems in der
    SellingAccom

  • D: Mit Hilfe von SellingUnit und Filter, die auf die Sasisonzeiten
    prüfen


GenericAbsolute und Kombinatorik

In einem Hotel gilt, dass für einen Service immer 30% des Grundpreises des Zimmers als Zuschlag erhoben werden soll.
Das wird mit einem GenericAbsolute ausgedrückt, dass als Basis die Priceitems der Klasse Basisprice definiert.



                <PriceItem Class="ServiceFee">
<GenericAbsolute>
<GenericValue>
<PercentModificationValue>
<PercentValue>30</PercentValue>
<ModificationBasis>
<ConsideredPriceItems>
<ConsideredPriceItemClasses>
Baseprice
</ConsideredPriceItemClasses>
</ConsideredPriceItems>
</ModificationBasis>
</PercentModificationValue>
</GenericValue>
<DayBase>1</DayBase>
<PersonBase>1</PersonBase>
</GenericAbsolute>
</PriceItem>


Ein Sonderpreis, definiert als Tagespreis pro Person, soll den Basispreis überschreiben,
was mit Hilfe der Kombinatorik ausgedrückt wird.



                <PriceItem Class="Baseprice">
<Absolute>
<Value>560</Value>
<DayBase>x</DayBase>
<PersonBase>1</PersonBase>
</Absolute>
<Combinatorics>
<CombinationLevel>2</CombinationLevel>
<CombinationCode>ABS</CombinationCode>
</Combinatorics>
</PriceItem>


<PriceItem Class="SuperPrice">
<Absolute>
<Value>60</Value>
<DayBase>1</DayBase>
<PersonBase>1</PersonBase>
</Absolute>
<Condition>
<DayImpact>
<Date Source="Product">
<Min>2024-10-01</Min>
<Max>2024-10-06</Max>
</Date>
</DayImpact>
</Condition>
<Combinatorics>
<CombinationLevel>1</CombinationLevel>
<CombinationCode>ABS</CombinationCode>
<CombinableWhen>
<Not>
<CombinationCode>ABS</CombinationCode>
</Not>
</CombinableWhen>
</Combinatorics>
</PriceItem>


Frage: Soll das GenericAbsolute nach Abarbeitung der Kombinatorik dennoch in die Preisberechnung einfließen?