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.installView 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
Name | 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. |