This page is a discussion for the implementation on how we register the reservation of seats in a location for a certain date and time. Please add comments and/or amend the text.
Please look at : OFBIZ-1590 for the implementation patches
Currently there is a reservation possibility for rooms in a Hotel. It makes usage of the product --> fixedasset --> techdatacalendar entities for registration of location and availability. Reservations are stored in the order --> orderitem --> workEffort -> fixedasset entities.
This is fine for rooms in a Hotel but this organization has the following problems:
- There is a duplication of data for the reservation date in workeffort and the availability date in the techData calendar.
- It does not cater for floorplans as is used in planes, cinemas and busses and in most restaurants.
As suggested in the mailinglist, it is proposed to add 3 more entities:
- accomodationMap (of a fixed asset)
This is a floorplan of a fixedasset which can be a vehicle,plane or restaurant-area of a facility.
- accomodationSpot (of a accomodationmap)
This is a seat, table, chair of the accomodation map for a certain accomodation class
- accomodationClass (type of accomodationSpot)
this is the type of class, like firstClass,businessClass but also standard or luxuryroom.
- Reservations are still done using the current implementation however we need to add accomodationMapId and accomodationSpotId to the workeffort.
The following picutre I (Valentina) upload describes the entities AccoomdationClass, AccommodationMap, AccommodationSpot.
In red dotted lines are some enhancment that I think might be very useful:
Enhancement1: Entity AccoomdationClass might be extended with parentAccClass field
to enable more flexible structure of the classes.
Enhancement2: Overbooked field in AccommodationMap entity might be added to store
overbooking data for each class.
The first two entities are described in the upper comments I would like to say just a bit more about AccommodationSpot.
AccommodationSpot-defines a SPECIFIC spot that is available within accommodation map.
Spots might be fa but this is not a must. This make it very useful in cases where we
need to model seats for example. In this entity we store the number of the room/table/seat. I modified its type to be varchar
as plane seats for example are mixture of different letters and numbers.
I created jira issue where I uploaded the patch for these entities(with the fields I think
we need to enhance, but if the community does not agree on them just don`t take them).Here is the linkofbiz-1590
- A restaurant is a facility with a dining area which is a fixed asset having a accomodation map with spots which are tables and/or seats. A table can be reserved selecting the product (table reservation for fixedasset 'dining area' in a facility) and selecting the accomodation spot from the related map.
- An Aeroplane, Bus or Train is a fixed asset having a accomodation map with spots in several classes flying from airport A which is a facility to airport B which is another facility
- A hotel is a facility with a restaurant (fixedasset) and rooms (single fixed asset) having a accomodation map with spots which are rooms.