Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
IsNotAvailable() AND $Permission.ALLOW_DOUBLE_BOOKING == true

Conflict Rule library

Basic rules

Rule

Description

Condition

Invalid Title

Reservation not allowed when title matches "invalid".

B25__Title__c == 'invalid'

Invalid Resource Name

Reservation not allowed when the resource name is "invalid".

B25__Resource__r.Name == 'invalid'

Matching Title and Notes

Reservation not allowed when the reservation title matches the reservation notes.

B25__Title__c == B25__Notes__c

No Overlapping Allowed

Reservation not allowed when overlapping with another reservation.

COUNT(overlappingReservations) > 0

No Availability

Reservation not allowed if no availability exists.

COUNT(matchingAvailabilities) == 0<br>or<br>isNotAvailable()

More advanced rules

Rule

Description

Condition

No Overlapping Reservations

Reservation not allowed when overlapping with other reservations, excluding reservations with status "Canceled" or "Temporary".

COUNT(FILTER(overlappingReservations AS item, item.b25__status__r.name != 'Canceled' AND item.b25__status__r.name != 'Temporary')) > 0

No Double Booking

Reservation not allowed when the resource does not allow double booking and overlaps with another reservation.

Resource__r.Allow_Double_Booking__c == false AND COUNT(overlappingReservations) > 0

Respect Max Capacity

Reservation not allowed when overlapping with more reservations than specified in the "Max Capacity" field on the related resource.

COUNT(overlappingReservations) > Resource__r.Max_Reservations__c

No Availability, Overbooking Disabled

Reservation not allowed if the resource has no availability and the "Overbookable" checkbox is disabled.

B25__Resource__r.Overbookable__c == false AND COUNT(matchingAvailabilities) == 0

Matching Availability Type

Reservation not allowed when there is no availability with an availability type that matches the reservation type.

COUNT(FILTER(matchingAvailabilities AS item, item.Availability_type__c == B25__Reservation_Type__r.Name)) == 0

Exceeding Lowest Availability Capacity

Reservations not allowed when exceeding the lowest availability’s capacity.

B25__Quantity__c > MIN(matchingAvailabilities, Capacity__c)

Check Room Capacity

Reservations are checked against the room’s capacity, or bypassed if the status allows double booking.

B25__Quantity__c + SUM(overlappingReservations, B25__Quantity__c) > B25__Resource__r.B25__Capacity__c AND B25__Status__r.B25__AllowDoubleBooking__c == false

Exceeding Total Availability Capacity

Reservation not allowed when exceeding the sum of all availabilities' capacity.

B25__Quantity__c + SUM(overlappingReservations, B25__Quantity__c) > SUM(matchingAvailabilities, Capacity__c)

Capacity and Gender Constraints

Reservations not allowed when no capacity is available, or there is a different gender conflict.

B25__Quantity__c + SUM(overlappingReservations, B25__Quantity__c) > SUM(matchingAvailabilities, Capacity__c) OR COUNT(FILTER(overlappingReservations AS rsv, rsv.Gender__c != Gender__c)) > 0

Double Booking Permission

Reservation not allowed to be double-booked if the user does not have permission to "Overrule Double Bookings".

COUNT(overlappingReservations) > 0 AND $Permission.B25__ALLOW_DOUBLE_BOOKING == false

Resource Availability Check (Widget)

Raises a conflict if there is no availability or if there is unavailability.

COUNT(FILTER(matchingAvailabilities AS ava, ava.B25__Unavailability__c == true)) != 0 OR COUNT(FILTER(matchingAvailabilities AS ava, ava.B25__Unavailability__c != true)) == 0

External Client Quantity Check

Raises a conflict if the B25LP__Quantity_For_External_Client__c of all reservations at the same time exceeds the resource capacity.

SUM(overlappingReservations, B25LP__Quantity_For_External_Client__c) + B25LP__Quantity_For_External_Client__c > B25__Resource__r.B25__Capacity__c