Hi all,

I need a - like I think - quite difficult solution and I would be grateful if any programmer could help me. Here is what I need - any suggestions are welcome.

General Booking System

  • Any content type should be a bookable resource (for example „hotel“, “event” or „flight“) with several fields. It is important to use the node system as the bookable resources may be listed in many other views and may be needed in views for filters.
  • Any node of this content type should be bookable by users (on role base?! Just authenticated users of a specific role should be able to book something)
  • Users with the role „administration“ should be able to see all bookings, to reset bookings and to generate new bookings on behalf of users.
  • The bookings has to be exported as CSV or Excel.
  • When administrators finished there work of resetting and re-booking the resources for users they have to have the ability to fix the bookings on per user base. This means: if the bookings are fixed they are visible to the user – but the user cannot change anything. Administrators still can change everything.

First idea: to use Views, View Bulk Operations, Rules and Flags.
Problem: You can easily generate Views with all bookings (flagged nodes), but VBO does just allow to flag and unflag the listed nodes in the name of the current user. There seems to be no way for an administrator to create a flag on behalf of a user to flag a specific node in this way.

Second idea: To use a Rule Set in which the bookable resource is set as an argument for the content which should be flagged. The argument for the user on whos behalf to flag this node (eg. make the booking) may come from the VBO.
Disadvantage: There need to be a rule set for every bookable resource. It would be better to find a more general solution.

Idea now:

  • Creating a module which allows to set any content type as a bookable resource
  • Find a solution to create the bookings. Maybe a new SQL-table for every content type which is declared as bookable resource including just the user-id, node-id and the status (open = 0, fixed = 1)
  • Find a solution/ creating an administration interface where administrators could change this table in order to create new bookings between a node and a user, reset old bookings and (un)fix current bookings. I thought of something like a view listing all users with no bookings and a drop down where the bookable nodes are listed – the admin could choose the users from the list and the bookable resource from the drop down and click on “Save booking”.

Timeslots booking

Similar to the above there is the need to find a solution for a timeslot booking system.

Background:
This is for a trade fair homepage where visitors and suppliers meet on the so-called “Meeting Day”. Visitors will have the possibility to arrange meetings with suppliers for that day. For that we have timeslots (for example: first timeslot from 8am to 8:25am, second timeslot from 8:30am to 8:55am and so on). These timeslot schedule is the same for every one. Now visitors can choose which supplier they want to meet on which timeslot. The result will be a time schedule for the visitor.

Requirements

  • Again administrators should have full control so they should be able to change arrangements on behalf of the user
  • There are general timeslots like breaks and the greeting in the morning. These should be listed on the schedule for visitors and suppliers.
  • There are two Meeting Days in order to divide the visitors in two groups (“Group A” and “Group B”). Group A will have there Meeting Day on Friday, Group B on Saturday. The groups will be seperated by the administrators (roles).
  • Suppliers can book additional staff. This means that not just one person may meet the visitors but two persons sent by the supplier so that this supplier will have the possibility to meet two visitors on every timeslot
    When a visitor booked a timeslot this timeslot should not be available to other visitors any more to avoid double bookings (in case of one person sent by the supplier. If there are two persons the timeslot can be booked twice). Visitors can change their bookings all the time. When they booked all timeslots they want to they can fix their booking – then they cannot change anything anymore and just from this moment on suppliers can see on their schedule on which timeslot they have an appointment with which visitor. Suppliers get access to the profiles of the visitors with whom they have appointments (the profile already excist as a content type)
  • Visitors have to book a minimum of timeslots. This minimum should be defined by administrators. Just when the minimum is reached (for example at least 15 timeslots) they can fix there booking.
  • When visitors booked a timeslot it should be avoided that they book the same timeslot with another supplier.
  • Administrators need an overview – for example how many free timeslots the persons of the suppliers have.

Comments

Roberto Gerola’s picture

Hi.

I did something similar. I created a module that permits to create and manage reservations for events or reservations in general :
http://speedtech.it/blog/2008/12/20/prenota-a-drupal-module-to-sell-even...

From my point of view you need a content type, we can call it booking, that will have a node reference to the event or place
and a user reference to the user that made the reservation, and a date and time (start end).
You can also build a timetable of availability for each event or space.

So, you will have the nodes with the events/places and the nodes with the reservations.
Using views should be easy to create the interfaces to manage them.

Can this work for you ?

nicostabile’s picture

Hi Roberto, perhaps it can help me, i need to make reservations for time slots rooms it can be possible?, How can i see this module?,

thanks in advance,

Nicolás.

zeezhao’s picture

This module may be able to help you:
http://drupal.org/project/merci