The booking module is essentially a copy of the quote module, but it would actually take supplier block allocation. It is created by copying a quote into a set of shadow tables. At this point the quote is turned off, and the booking is all that is remaining.
The booking would have the concept of passengers and these passengers are all linked to client/prospects. There is a lead client and an agent that can be associated with the booking.
Passengers can be assigned to products and trips to tell the system which items that the passengers are doing. This will enable the documentation to be produced, the accounting is correct and supplier requests can be generated.
The booking would be an option, then confirmed, then ready to depart. There could be other statuses along the way as well. Bookings if they are not confirmed are automatically expired based on system rules.
Bookings would be attached to internal users, and they would also be attached to agent consultants. The bookings will also be attached to the user group which is synonymous with the selling agent (the company/organisation selling the trip to the travel agent).
There will be an document archive which stores all the documentation which has been sent out of the system for the particular booking. It will also have an upload section to store all the files which have been uploaded for the given booking.
Using the documentation module the system will be able to produce the documentation which is sent out from the system.
Using the roll back tables the history for the changes in the booking can be tracked.
Bookings will also generate the accounts. The pricing engine does automatic price calculations by default, however this can be configured on a per-booking or per-partition basis as required.
The quote module is really a heavy-weight version of the quote module. Specifically the booking module should have the following features:
When the quote is converted to the booking, the system will make copies of the similar tables for the quote into the booking. This will save a lot of time for the users.
The system will store for auditing purposes the changes in the bookings as a history. This is covered off in the undo function above. In addition the system will store a previous value/next value table for easy integration.
Documents will be stored using the documentation module. There should be notes in the booking which can appear in the documentation. These can be re-used, or used only a few times based on an active/inactive flag.
There should be the ability to book retrospective trip departures. This is used for selling on trips and products after the trip or product has departed. By default this would not be allowed, but there should be an override to allow you to do this.
Bookings need to Incorporate FOC (Free of charge if a group booking, for group leader, etc) somehow.
There should be the facility to mange booking price based on changes to FX rate over the course of the booking.