You are here

function registration_waitlist_entity_presave in Entity Registration 8

Same name and namespace in other branches
  1. 8.2 modules/registration_waitlist/registration_waitlist.module \registration_waitlist_entity_presave()
  2. 7.2 modules/registration_waitlist/registration_waitlist.module \registration_waitlist_entity_presave()
  3. 7 modules/registration_waitlist/registration_waitlist.module \registration_waitlist_entity_presave()

Implements hook_entity_presave().

File

modules/registration_waitlist/registration_waitlist.module, line 86
Entity Registration waitlist functionality

Code

function registration_waitlist_entity_presave($entity, $type) {
  if ($type == 'registration') {
    $errors = array();
    $status = registration_status($entity->entity_type, $entity->entity_id, TRUE, $entity->count, $entity->registration_id, $errors);
    if (registration_waitlist_is_active($entity->entity_type, $entity->entity_id, $errors)) {
      $active_states = registration_get_active_states();

      // Check that the state being saved is active
      if (in_array($entity->state, $active_states)) {

        // Check that the old state (if there is one) is not already active
        if (isset($entity->original) && !in_array($entity->original->state, $active_states) || !isset($entity->original)) {
          drupal_set_message(t('Registration placed on the wait list.'), 'status');

          // Set the registration state to waitlist
          $waitlist_state = registration_get_states(REGISTRATION_WAITLIST_STATE);
          $entity->state = $waitlist_state
            ->identifier();
        }
      }
    }
  }
}