You are here

class AvailabilityAgentSizeFilter in Rooms - Drupal Booking for Hotels, B&Bs and Vacation Rentals 7

Filter by group_size and group_size_children.

Hierarchy

Expanded class hierarchy of AvailabilityAgentSizeFilter

File

modules/rooms_booking/includes/rooms_booking.availability_agent_filter.inc, line 160
Rooms Booking agent filter interfaces and base implementations.

View source
class AvailabilityAgentSizeFilter extends AvailabilityAgentFilterBase {

  /**
   * {@inheritdoc}
   */
  public function applyFilter() {

    // Check parameters.
    $group_size = isset($this->parameters['group_size']) ? $this->parameters['group_size'] : 0;
    $group_size_children = isset($this->parameters['group_size_children']) ? $this->parameters['group_size_children'] : 0;
    $unit_types = isset($this->parameters['unit_types']) ? $this->parameters['unit_types'] : NULL;
    $query = new EntityFieldQuery();
    $query
      ->entityCondition('entity_type', 'rooms_unit')
      ->propertyOrderBy('max_sleeps', 'ASC')
      ->propertyCondition('max_sleeps', $group_size, '>=')
      ->propertyCondition('max_children', $group_size_children, '>=')
      ->propertyCondition('bookable', 1);

    // Add a unit type condition if this has been defined.
    if ($unit_types != NULL) {
      $query
        ->propertyCondition('type', $unit_types);
    }

    // Execute the query and collect the results.
    $results = $query
      ->execute();
    if (count($results) == 0) {
      return ROOMS_SIZE_FAILURE;
    }
    if (empty($this->units)) {
      return $results['rooms_unit'];
    }
    else {

      // Computes the intersection of units and results.
      return $this
        ->intersectUnits($results['rooms_unit']);
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AvailabilityAgentFilterBase::$parameters protected property Set of filter parameters.
AvailabilityAgentFilterBase::$units protected property Set of bookable units to filter through.
AvailabilityAgentFilterBase::availabilityChangeSearchForm public static function Adds necessary form elements to Change availability search form. Overrides AvailabilityAgentFilterInterface::availabilityChangeSearchForm
AvailabilityAgentFilterBase::availabilityChangeSearchFormValidate public static function Specific validation callback for Change availability search form. Overrides AvailabilityAgentFilterInterface::availabilityChangeSearchFormValidate
AvailabilityAgentFilterBase::availabilitySearchForm public static function Adds necessary form elements to Availability search form. Overrides AvailabilityAgentFilterInterface::availabilitySearchForm
AvailabilityAgentFilterBase::availabilitySearchFormValidate public static function Specific validation callback for Availability search form. Overrides AvailabilityAgentFilterInterface::availabilitySearchFormValidate
AvailabilityAgentFilterBase::availabilitySearchParameters public static function Returns a list of parameters to add to the search array. Overrides AvailabilityAgentFilterInterface::availabilitySearchParameters
AvailabilityAgentFilterBase::intersectUnits protected function Intersects the units that passes the filter and the unit set provided.
AvailabilityAgentFilterBase::__construct public function Builds a new AvailabilityAgentFilter object.
AvailabilityAgentSizeFilter::applyFilter public function Applies the filter operation to the units in the filter. Overrides AvailabilityAgentFilterInterface::applyFilter