Your Knowledge Base is moving on 3/25/24! Our new Help Center provides all the articles you know and love (plus so much more) in a one-stop shop. Ask your SPoC for details!

Event Room Approval

 

Room Auto Approval depends on system configuration and proper procedures for staff members when creating and submitting Events for approval. The information in this article also applies to Equipment and Services, since similar mechanisms are used.

Event Approval Trigger

When an Event is created or the Approval field is edited, a trigger on the Event table synchronizes the approval of any Auto Approve Rooms with the Event. If an Event is approved, the Rooms are approved. Likewise, if the Event is not approved, the Auto Approve Rooms are not approved. That said, how this exactly functions depends on the setup of your Room Approval Process.

This is standard at all churches unless the trigger has been disabled. See Room Reservation, Equipment Reservation & Service Request Auto Approve in Database Triggers. Because the trigger described above works from the Event and not from Room Reservations, there are requirements for it to function properly:

  • An active Event Approval Process must be in place
  • Rooms should be added to the Event before it is submitted to a Process (this allows the Event Approval to trigger approval of the Rooms)
  • The Room Approval Process can handle the gaps in the Event Approval Trigger

The Stock Room Approval Process

The stock Room Approval Process is designed to capture the two known cases where the Event Approval trigger leaves a gap in the approval process. The Room Auto Approve flag was designed to mean "someone will look at the Room in the context of approving the Event." You may use it mean other things, such as "we don't care if anyone looks at this Room when added to an Event," and edit this Process to fit their particular culture and practice. Therefore, it may function differently than described in this article:

  • Room Auto Approve is false
  • Room is added to the Event after it is already approved

It is configured like this:

  • On Submit: _Approved=0
  • On Complete: _Approved=1
  • Trigger Fields: Room_ID,Event_ID
Dependent Condition
((EXISTS (SELECT 1 FROM Rooms R WHERE ISNULL(R.Auto_Approve,0) = 0 AND R.Room_ID = Event_Rooms.Room_ID) 
OR 
EXISTS (SELECT 1 FROM Events Ev WHERE Ev.Event_ID = Event_Rooms.Event_ID AND ISNULL(Ev._Approved,0) = 1)))

The first part of this condition looks for Rooms that are not Auto-Approved. The second part looks for Rooms for Events that have already been approved.

This latter condition implies the church wants to know when a Room was added after initial approval was provided. Omitting this results in a NULL Approve value for Auto-Approve Rooms added after the Event is approved.

Steps - Use a step with the Step Type: 1. Get Approval.

An Alternate Process Configuration

Here is an alternate configuration which is also designed to capture the two known cases where the Event Approval trigger leaves a gap in the approval process:

  • Room Auto Approve is false
  • Room is added to the Event after it is already approved

The primary differences between this configuration and the stock configuration is that it uses two processes rather than one and omits the requirement to approve auto-approve rooms when added to an approved Event. It handles the following scenarios as described:

  • If the Room is not auto-approve, get approval (in all cases).
  • If the Room is auto-approve:
    • If the Event is not approved (yet), ignore and let the Event trigger handle it later.
    • If the Event is already approved, auto-approve the room (requires submission to the process).

This requires two separate Processes configured as follows:

Room Request - Require Approval
  • On Submit: _Approved=0
  • On Complete: _Approved=1
  • Trigger Fields: Room_ID,Event_ID
Dependent Condition
Event_Rooms.Room_ID IN (SELECT R.Room_ID FROM Rooms R WHERE ISNULL(R.Auto_Approve,0)=0 )

This clause checks for Room not set to auto-approve.

Steps

Use a step with the Step Type: 1. Get Approval.

Room Request - Auto-Approval

On Submit: _Approved=1
Trigger Fields: Room_ID,Event_ID

Dependent Condition
Event_Rooms.Room_ID IN (SELECT R.Room_ID FROM Rooms R WHERE ISNULL(R.Auto_Approve,0)=1 ) 
AND 
Event_Rooms.Event_ID IN (SELECT Ev.Event_ID FROM Events Ev WHERE ISNULL(Ev._Approved,0)=1 )

The first clause checks for auto-approve and the second checks for an approved Event.

Steps

none.