You are here

public function BookingEvent::lock in Rooms - Drupal Booking for Hotels, B&Bs and Vacation Rentals 7

Locks event - updates the rooms_booking_locks table to indicate that this event is locked.

Return value

bool TRUE if the event is locked successfully, FALSE if was already blocked.

Overrides BookingEventInterface::lock

File

modules/rooms_availability/includes/rooms_availability.booking_event.inc, line 46
Class BookingEvent

Class

BookingEvent
@file Class BookingEvent

Code

public function lock() {

  // Check that the event is not already locked.
  $query = db_select('rooms_booking_locks', 'l');
  $query
    ->addField('l', 'unit_id');
  $query
    ->addField('l', 'state');
  $query
    ->addField('l', 'locked');
  $query
    ->condition('l.unit_id', $this->unit_id);
  $query
    ->condition('l.state', $this->id);
  $query
    ->condition('l.locked', 1);
  $result = $query
    ->execute()
    ->fetchAll(PDO::FETCH_ASSOC);
  if (count($result) == 1) {
    return FALSE;
  }
  else {
    $fields = array(
      'unit_id' => $this->unit_id,
      'state' => $this->id,
      'locked' => 1,
    );
    $lock = db_insert('rooms_booking_locks')
      ->fields($fields);
    $lock
      ->execute();
  }
  return TRUE;
}