Skip to main content
Skip table of contents

RecurringReservations

Enables developers to create a recurring series of Reservations. It only creates Reservations, and does not insert or validate them. To validate the reservations, you can call BulkReservationValidator.

Methods

generateRecurringReservationSeries
Description

This method takes one or more lists of Reservations wrapped in a Context class, and adds any detected soft or hard conflicts to them.

Signature
CODE
global static B25.RecurringReservations.Result generateRecurringReservationSeries(B25.RecurringReservations.Context)
Parameters
CODE
B25.RecurringReservations.Context

An instance of B25.RecurringReservations.Context. This object contains a prototype Reservation (which will be cloned to create each Reservation in the result), a Recurring Reservation record with all the recurrence settings, and some more optional parameters.

Return Type
CODE
B25.RecurringReservations.Result

This object contains the resulting series of Reservations.

Inner Classes

Context
Description

This object contains a prototype Reservation (which will be cloned to create each Reservation in the result), a Recurring Reservation record with all the recurrence settings, and some more optional parameters.

Properties
CODE
B25__Reservation__c prototype

This record will be cloned to create each Reservation in the result. The only required fields on this record are B25__StartLocal__c and B25__EndLocal__c, which are used to define at what time of day the resulting Reservations should start and end.

CODE
B25__Recurring_Reservation__c recurringReservation

This record contains the recurrence settings that will define on which dates all the resulting Reservations will occur. For more information about all the fields on this object, see the help texts on the B25__Recurring_Reservation__c object fields in setup. Additionally, you could consider creating a recurring Reservation through the GoMeddo UI, and then inspect the created B25__Recurring_Reservation__c object's field values.

CODE
Set<String> skipUnavailabilityDimensions

This optional parameter can contain one or more names of dimensions. The creation algorithm will then skip any periods of times that these dimensions are unavailable. For example, if you are creating Reservations for a staff member, and this staff member is on holiday for a week, this week will be skipped.

Result
Description

This class wraps the resulting series of B25__Reservation__c objects. Take note that these Reservations have not yet been inserted or validated.

Properties
CODE
List<B25__Reservation__c> reservations

This properties contains the resulting series of Reservations. These Reservations have not yet been inserted or validated. To validate the Reservations, you can call B25.BulkReservationValidator.validate.

Example

This example shows how you can use the class in your own code.

CODE
B25.RecurringReservations.Context context = new B25.RecurringReservations.Context();

// create a prototype that will be used to create the new reservations
context.prototype = new B25__Reservation__c(
	B25__Startlocal__c = System.now(),
	B25__EndLocal__c = System.now().addhours(1),
	B25__Resource__c = 'xxxxxxxxx', // fill in a Resource Id here (or choose a different dimension, like B25__Staff__c)
	B25__Title__c = 'Sample Reservation',
	B25__Reservation_Type__c = 'xxxxxxxxxxxxx'); // fill in a Reservation Type Id here

// the following settings will create a series of 7 reservations, starting today
context.recurringReservation = new B25__Recurring_Reservation__c(
	B25__Start_date__c = System.today(),
	B25__End_date__c = System.today().addDays(100),
	B25__Recurrence_Type__c = 'DAILY',
	B25__Repeat_Interval__c = 1,
	B25__End_Condition__c = 'NUMBER_OF_RESERVATIONS',
	B25__Number_Of_Reservations__c = 7);

// skip any periods that the chosen Resource is unavailable
context.skipUnavailabilityDimensions = new Set<String>{'B25__Resource__c'};

// generate the resulting reservations and insert them
B25.RecurringReservations.Result result = B25.RecurringReservations.generateRecurringReservationSeries(context);
insert result.reservations;


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.