Setup & Configuration

This document covers the Setup & Configuration system that provides a modular interface for configuring all aspects of the hotel management system. The setup system handles basic regional settings, advanced operational parameters, physical property configuration, and system-wide preferences.

For information about user management and permissions, see User Management. For dashboard analytics and reporting configuration, see Dashboard & Analytics.

System Architecture

The setup system uses a modular architecture where configuration modules are dynamically loaded and organized by category. The system scans directories for configuration modules and presents them in a card-based interface.

Setup Module Discovery Architecture

Module Structure

Config.php

position: int

setuptype: string

setupname: string

icon: CSS class

id: route identifier

setuppage.php

Scan inc/setup/ directories

Load Config.php from each module

Group by setuptype field

Sort by position field

Render setup cards UI
    

Setup Controller Route Architecture

Setup.php Controller

index() - Main setup page

basicsetup() - Basic configuration

regionalsettings() - Currency/timezone

languagesettings() - Language config

floors() - Floor management

amenities() - Amenity setup

roomtypes() - Room type config

setuppage.php view

basic_setup.php view

regional_settings.php view

language_settings.php view
    

Configuration Categories

The setup system organizes configuration into distinct categories, each handling specific aspects of the hotel management system.

Category Description Key Components
Basic Setup Regional settings, languages, currencies Currency selection, timezone configuration, measurement units
Advanced Setup Operational parameters Taxes, extra items, booking rules, check-in/out times
Physical Setup Property structure Floors, room types, amenities
System Setup Core system settings Database configuration, authentication

Configuration Category Flow

Setup Entry Point

Basic Setup Category

Advanced Setup Category

Physical Setup Category

regionalsettings()

languagesettings()

taxes configuration

extraitems configuration

prior_date_booking

check-in&check-out-time

floors() setup

amenities() setup

roomtypes() setup
    

Module System

The setup system implements a pluggable module architecture where each configuration area is self-contained with its own configuration file, views, and logic.

Module Configuration Structure

Module Configuration Structure

Permission System

inc/setup/ModuleName/

Config.php

Views/

Controllers/

position: sort order

setuptype: category

setupname: display name

icon: CSS class

id: route identifier

content.php

listing page

permissionvaluecheck()

view permission

edit permission
    

Basic Configuration

Basic configuration handles fundamental system settings including regional preferences, language options, and core system parameters.

Regional Settings

The regional settings module manages currency, timezone, and measurement system configuration.

Regional Settings Data Flow

Helper Functions

regional_settings.php

Currency Selection

Timezone Selection

Measurement System

currency table

tz_list() function

m² or ft² selection

timezone identifiers list

hotel_booking_setup table

getCurrency()

tz_list()
    

Language Configuration

Language settings control both admin interface and frontend website language preferences.

Language Helper

language_settings.php

Admin Interface Language

Website Language

en, hi, fr, es options

English, French, German, Spanish, etc.

setting table

hotel_booking_setup table

display() function

language table

phrase field
    

Advanced Configuration

Advanced configuration handles operational parameters including taxes, extra items, booking rules, and time-based settings.

Tax Configuration

The tax system supports both percentage-based and fixed-amount taxes with inclusive/exclusive options.

Tax Parameter Options Description
tax_type String Custom tax type name
tax_amount_type Percentage, Fixed Calculation method
tax_option inclusive, exclusive Tax application method
tax_amount Decimal Tax value

Tax Configuration Form Structure

Tax Configuration Form Structure

Form Validation

taxes setup form

tax_type input

tax_amount_type select

tax_option select

tax_amount input

Percentage

Fixed

inclusive

exclusive

required attributes

step='0.01' for tax_amount
    

Extra Items and Booking Rules

Extra items configuration allows adding billable items with pricing, while booking rules control reservation lead times.

Extra Items CRUD System

Extra Items CRUD System

CRUD Operations

extraitems form

extraitems input

itemprice input

crudScriptdiv component

_addDatabtn

_editDatabtn

deleteit class

editit class

mainArray JSON storage

push to array

map and update

filter array
    

Physical Setup

Physical setup manages the property's structure including floors, room types, and amenities.

Floor Management

Floor setup provides drag-and-drop interface for organizing property floors with room assignments.

Floor Setup Structure

Floor Setup Structure

Floor Card Styling

floors_setup.php

Floor Card UI

Ground Floor display

Room count display

Serviceable toggle

form-check-input

autocellwidth id

floor-card-img class

floor-card-text class

floor-num-rooms class
    

Room Types Configuration

Room types define the different accommodation categories with detailed specifications.

Room Type Form Fields

Room Type Form Fields

roomtype_content.php

room_type_name

number_of_rooms

room_type_code

room_size

unit select

bed_type select

room_view_type select

room_description textarea

m²

ft²

single

double

king

queen

twin

sea_view

city_view

garden_view

no_view
    

Amenities Management

Amenities setup manages property features and services available to guests.

Amenities Setup Flow

Amenities Setup Flow

Form Routing

amenities_setup.php

Amenity Display Cards

Add Amenity Button

Wi-Fi amenity

TV amenity

fa-solid fa-wifi

fa-solid fa-tv

amenity form

name input

description textarea

formsetup id

setup/datasetup route

setup redirect
    

Configuration Data Management

Helper Functions

Setup Controller

Database Layer

hotel_booking_setup table

currency table

setting table

admin_uid filter

timezone field

currency field

getInfoByUid()

getCurrency()

display()