You are here

rooms_availability.install in Rooms - Drupal Booking for Hotels, B&Bs and Vacation Rentals 7

Install for Rooms Availability module - sets up the main Rooms Availability table

File

modules/rooms_availability/rooms_availability.install
View source
<?php

/**
 * @file
 * Install for Rooms Availability module - sets up the main Rooms Availability
 * table
 */

/**
 * Implements hook_schema().
 */
function rooms_availability_schema() {
  $schema = array();
  $schema['rooms_availability'] = array(
    'description' => 'The main table holiding availability information',
    'fields' => array(
      'unit_id' => array(
        'description' => 'Identifier for a room.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
      'year' => array(
        'description' => 'The calendar year for which this availability row is relevant',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'month' => array(
        'description' => 'The month for which this availability row is relevant',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd1' => array(
        'description' => 'Month Day 1',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd2' => array(
        'description' => 'Month Day 2',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd3' => array(
        'description' => 'Month Day 3',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd4' => array(
        'description' => 'Month Day 4',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd5' => array(
        'description' => 'Month Day 5',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd6' => array(
        'description' => 'Month Day 6',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd7' => array(
        'description' => 'Month Day 7',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd8' => array(
        'description' => 'Month Day 8',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd9' => array(
        'description' => 'Month Day 9',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd10' => array(
        'description' => 'Month Day 10',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd11' => array(
        'description' => 'Month Day 11',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd12' => array(
        'description' => 'Month Day 12',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd13' => array(
        'description' => 'Month Day 13',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd14' => array(
        'description' => 'Month Day 14',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd15' => array(
        'description' => 'Month Day 15',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd16' => array(
        'description' => 'Month Day 16',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd17' => array(
        'description' => 'Month Day 17',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd18' => array(
        'description' => 'Month Day 18',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd19' => array(
        'description' => 'Month Day 19',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd20' => array(
        'description' => 'Month Day 20',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd21' => array(
        'description' => 'Month Day 21',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd22' => array(
        'description' => 'Month Day 22',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd23' => array(
        'description' => 'Month Day 23',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd24' => array(
        'description' => 'Month Day 24',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd25' => array(
        'description' => 'Month Day 25',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd26' => array(
        'description' => 'Month Day 26',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd27' => array(
        'description' => 'Month Day 27',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd28' => array(
        'description' => 'Month Day 28',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd29' => array(
        'description' => 'Month Day 29',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd30' => array(
        'description' => 'Month Day 30',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'd31' => array(
        'description' => 'Month Day 31',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
    ),
    'indexes' => array(
      'unit_id' => array(
        'unit_id',
      ),
      'year' => array(
        'year',
      ),
      'month' => array(
        'month',
      ),
    ),
    'unique keys' => array(
      'month_key' => array(
        'unit_id',
        'year',
        'month',
      ),
    ),
    'foreign keys' => array(
      'unit_id' => array(
        'table' => 'rooms_units',
        'columns' => array(
          'unit_id' => 'unit_id',
        ),
      ),
    ),
  );
  $schema['rooms_booking_locks'] = array(
    'description' => 'Booking states held in this table can be set to lock - so they cannot be deleted',
    'fields' => array(
      'unit_id' => array(
        'description' => 'Identifier for a booking unit.',
        'type' => 'int',
        'unsigned' => TRUE,
        'not null' => TRUE,
      ),
      'state' => array(
        'description' => 'The state for a booking unit.',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '0',
      ),
      'locked' => array(
        'description' => 'Whether the state is locked or not',
        'type' => 'int',
        'not null' => TRUE,
        'default' => '1',
      ),
    ),
  );
  return $schema;
}

/**
 * Renames permissions.
 */
function rooms_availability_update_7001() {

  // Load utility functions.
  module_load_install('rooms');
  $map = array(
    'manage booking unit availability' => 'administer rooms_unit availability',
  );
  rooms_update_rename_permissions($map);
  return t('Permissions renamed');
}

/**
 * Deletes unused variable 'ROOMS_SELECT_ALL_PAGES_AV'.
 */
function rooms_availability_update_7002() {
  variable_del('ROOMS_SELECT_ALL_PAGES_AV');
  return t('Removed stale variable');
}

/**
 * Remove orphaned rows from rooms_availability table.
 */
function rooms_availability_update_7003() {
  $query = new EntityFieldQuery();
  $query
    ->entityCondition('entity_type', 'rooms_unit')
    ->addMetaData('account', user_load(1));
  $result = $query
    ->execute();
  $delete = db_delete('rooms_availability');
  if (isset($result['rooms_unit']) && !empty($result['rooms_unit'])) {
    $ids = array_keys($result['rooms_unit']);
    $delete
      ->condition('unit_id', $ids, 'NOT IN');
  }
  $delete
    ->execute();
  return t('Removed orphaned rows from rooms_availability table');
}

Functions

Namesort descending Description
rooms_availability_schema Implements hook_schema().
rooms_availability_update_7001 Renames permissions.
rooms_availability_update_7002 Deletes unused variable 'ROOMS_SELECT_ALL_PAGES_AV'.
rooms_availability_update_7003 Remove orphaned rows from rooms_availability table.