Holding Management Guide
Learn how to use the Holding Module to oversee your subsidiaries, consolidate financial data, and manage global system settings.
Authentication
1. Navigate to your installation URL (e.g., portal.yourholding.com).
2. Enter your Super Admin email and password.
Quick Overview
Get familiar with the core structure and navigation of the Combo Nexus system.
1. System Hierarchy
The system is organized into three levels:
- Holding Level: Global oversight, consolidation, and configuration.
- Sector Level: Industry-specific modules (Real Estate, Retail, Hospitality, Factory).
- Subsidiary Level: Operational units (e.g., a specific hotel, shop, or factory).
2. Navigation Basics
- Sidebar: Primary navigation to all modules. Collapsible groups.
- Search (Ctrl+K): Quickly find any documentation section or system feature.
- Sector Summary: Displays the count of active companies in each industry (Hospitality, Retail, Real Estate, Factory).
Installation Guide
Complete the 5-step installation wizard to set up your Combo Nexus platform.
Upload App Files & Database Setup
Learn how to upload your application files to the server and create your MySQL database.
5-Step Installation Wizard
Complete the web-based installer to configure your database, license, and admin account.
Step 1: Server Requirements
The installer verifies that your server meets all technical requirements before proceeding.
PHP Requirements
The system checks for the following PHP extensions and configurations:
- PHP Version: 8.1 or higher required.
- BCMath Extension: For precision mathematics.
- Ctype Extension: Character type checking.
- cURL Extension: For HTTP requests.
- DOM Extension: XML/HTML parsing.
- Fileinfo Extension: File type detection.
- JSON Extension: JSON encoding/decoding.
- Mbstring Extension: Multibyte string support.
- OpenSSL Extension: Encryption functions.
- PDO Extension: Database abstraction layer.
- Tokenizer Extension: PHP tokenizer.
- XML Extension: XML processing.
Folder Permissions
The following directories must be writable (chmod 755 or 775):
storage/– Application cache and logs.bootstrap/cache/– Framework bootstrap cache..env– Environment configuration file.
Step 2: License Activation
Activate your license by entering the purchase code from your marketplace receipt.
Find your license key in the confirmation email from your purchase or in your account dashboard on the marketplace.
Paste the code in the format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Click "Verify & Continue". The system will validate your license with the activation server.
Step 3: Database Configuration
Configure your MySQL database connection.
Required Fields
- Application URL: (Optional) Your domain, e.g.,
https://portal.yourholding.com - Database Host: Usually
localhostor your DB server IP. - Database Port: Default is
3306. - Database Name: The name of your pre-created empty database (e.g.,
combo_nexus). - Database Username: MySQL user with full privileges on the database.
- Database Password: Leave blank if no password is set (not recommended).
Click "Test & Save" to verify the connection. If successful, you proceed to migrations.
Step 4: Database Migration
The system creates all required database tables and seeds initial data.
Click "Run Migrations" to begin. This process may take 30-60 seconds depending on your server.
A spinner will indicate progress. Do not close your browser or navigate away during this step.
On success, you will automatically be redirected to the Admin Setup page after 2 seconds.
Step 5: Admin Account Setup
Create your Holding company and Super Admin account.
Holding Details
- Company Name: Your holding company's official name (e.g., "ACME Holdings Ltd."). This will appear throughout the system.
Super Admin Credentials
- Full Name: Administrator's display name.
- Email: Login email address.
- Password: At least 8 characters. This password grants full system access.
- Confirm Password: Re-enter to verify.
Click "Finish Installation" to complete the setup.
Installation Complete
Congratulations! Your Combo Nexus platform is ready.
Next Steps
- Login: Use your Super Admin credentials to access the dashboard.
- Configure Settings: Set up branding, email, and currency options in Global Settings.
- Create Users: Add team members and assign roles via User Management.
- Add Companies: Register your first subsidiary in the Companies module.
For support, contact [email protected].
Command Center Dashboard
The Holding Control Center is your unified cockpit covering every subsidiary in real time. This guide documents every section from top to bottom.
1. Unified Command Deck (Global Controls)
Located at the very top of the dashboard.
View the current distribution of your holdings. The badges show exactly how many companies are active in each sector.
Use the global toggles at the top right: "This Year", "Last Year", or "Lifetime". All summary cards (Group revenue, Net profit, Cash runway, Total expenses) will update to reflect the selected period.
2. Group Financial Pulse
A 6-month trajectory line chart showing Revenue, Expenses, and Profit.
Click "7 Days" for daily breakdown, "Monthly" for the default view, or "Yearly" for long-term trends.
Hover over any point on the chart. A tooltip appears showing exact Revenue, Expense, and Net Result for that period.
3. Alerts & Escalations
Displays the count of active alerts across all subsidiaries.
Click the "Review alerts" link. You will be navigated to the dedicated Notifications page showing all critical items (expired contracts, projects at risk, etc.).
4. Liquidity Runway
Shows your cash safety metrics.
- Cash on hand: Total liquid assets available now.
- Runway health: Badge indicator (Green = Safe, Red = Critical).
- Avg. daily burn: How much cash you spend per day on average.
- Active bank accounts: Number of connected accounts.
5. Daily Expense Trend (Last 30 Days)
A detailed line chart showing your daily burn rate.
Hover over peaks in the chart. Spikes indicate unusual spending days that may require investigation.
6. Sticky Note (Private)
A personal text area for quick reminders.
Click inside the yellow text area and type your note. It auto-saves instantly. Only you can see this content.
7. Spending Intelligence
Track burn dynamics and top spenders across the holding.
7a. Income vs Expenses
A combined view with a donut chart (Income breakdown) and a bar/line chart (This Year Trend).
Hover over the donut chart slices to see individual income stream contributions.
7b. Expense Distribution
A donut chart showing expense category breakdown: Payroll, Rent, Marketing, IT/Software, Others.
Look at the legend to see which category consumes the largest portion of your budget.
8. Portfolio Mix
Revenue share by industry.
8a. Contribution by Sector
A multi-colored donut chart showing revenue percentage by industry (Retail, Hospitality, Real Estate, Factory).
Click a sector name in the legend to hide/show it. The center text updates to show the total TND value of visible sectors.
8b. Exposure Details
Comparison cards showing Retail vs Hospitality exposure using progress bars and percentages.
8c. Cash Distribution
A list of subsidiaries (e.g., Luxe Stay, Urban Mart) with their specific cash holdings and percentage share of total cash.
9. Valuations (Asset & Inventory)
Total Asset Value
Lists each subsidiary's asset value and displays a bolded Global Asset Value total at the bottom.
Scroll through the list to see which subsidiary holds the most valuable assets (Real Estate properties, Factory machines, etc.).
Inventory Valuation
Shows Total Inventory Value with a breakdown by category:
- Raw Materials: Unprocessed inputs (Factory module).
- Finished Goods: Products ready for sale (Retail module).
- Work in Progress: Items being manufactured.
11. Portfolio Leaders
A performance table showing each subsidiary with columns: Industry, Revenue, Net Profit, Margin, and a sparkline Trend chart.
Sort by the Margin column to quickly find your most profitable subsidiaries.
12. Global Alerts & Private Tasks
Review critical holding updates and manage your personal priorities.
12a. Contracts Expiring Soon
A list of high-priority alerts with timestamps and severity levels (Projects at risk, Profit contraction, Concentration risk).
12b. Private Todos
Type a task name (e.g., "Call CFO") in the input field. Click "Add".
Click the Trash Icon next to the item to delete it permanently.
13. Global Assets Map
An interactive Leaflet map titled "Companies emplacement" showing geographic distribution of all assets.
Use the + and - buttons to focus on a specific region.
Click any marker pin. A popup appears showing the Property Name, Status (e.g., Rented), and Valuation.
Refer to the map legend to distinguish between Properties, Projects, and Companies markers.
14. Organizational Snapshot (HR Overview)
Provides a high-level human resources overview with the following metric cards:
- Total headcount: Number of employees across all subsidiaries.
- New hires (30 days): Recent onboarding count.
- On leave: Employees currently on leave.
- Turnover (90 days): Recent departures.
- Monthly payroll: Current month's salary expenses.
- Annualized payroll: Projected yearly salary cost.
- Average salary: Mean salary across the holding.
14a. Top Departments
A horizontal bar chart showing headcount distribution by department (Operations, Sales, Engineering, etc.).
14b. Top Recruitment Companies
A list of recruitment partners with total hires sourced from each.
Alerts System
A comprehensive guide to the Holding-wide active monitoring system.
1. Alert Categories
The system aggregates potential risks from all subsidiaries into three main streams:
Global Alerts (Holding Level)
High-level financial and operational health indicators aggregated from all subsidiaries.
Financial Health Alerts
- Cash Runway Critical: Total liquidity < 30 days of operating expenses (High Priority).
- Cash Runway Warning: Liquidity between 30-90 days (Medium Priority).
- Burn Rate Increase: Recent 7-day avg expenses > 120% of previous period (Medium Priority).
- Profit Drop: Negative profit delta vs previous period (Low Priority).
- Sector Concentration: One sector contributes ≥ 50% of revenue (Low Priority).
Company Performance Alerts
- Negative Net Profit: Subsidiary with profit < 0 (High Priority, per company).
- Low Margin: Subsidiary with margin < 5% (Medium Priority, per company).
- Downward Trend: Subsidiary with declining profit trend (Low Priority, per company).
Operational Alerts
- Annual Closing Pending: Submitted closing requests awaiting approval (Medium Priority).
- Projects at Risk: Projects on hold or past end date (High Priority, per company).
- Contracts Expiring: Active contracts expiring soon (Medium Priority, per company).
- High Turnover Rate: Employee turnover > 10% in 90 days (Medium Priority).
Escalated Subsidiary Alerts
All High severity alerts from subsidiary companies are automatically escalated to the holding dashboard with the company name prefix.
Industry-Specific Alerts
Each industry module has its own dedicated Alerts section with detailed documentation:
- Retail Alerts: Low Stock, Missing Reports, Sales Target Behind (4 alert types)
- Hospitality Alerts: Room Maintenance, Bookings, GOPPAR, Menu Items (8 alert types)
- Real Estate Alerts: Contracts, Leads, Projects, Properties (7 alert types)
- Factory Alerts: Machines, Production, Materials, Stock (7 alert types)
Shared Modules Alerts
Common operational signals. See Shared Alerts for details.
2. Priority Triggers
Alerts are classified by severity to help you prioritize actions.
Requires immediate executive attention.
- Holding: Cash Runway < 30 Days, Negative Net Profit (any subsidiary), or Projects at Risk.
- Factory: High Waste (> 5%), Machine Breakdown, Maintenance Overdue, or Raw Material Low Stock.
- Retail: Missing Daily Sales Report or Out of Stock (quantity ≤ 0).
- Hospitality: Overlapping Bookings, Menu Item Out of Stock, or Low GOPPAR.
- Real Estate: Expiring Contract (≤ 7 days), Hot Lead, Overdue Follow-up (> 7 days), Ending Project (≤ 3 days), or Property Vacant/Maintenance (> 30 days).
- Finance: Low Balance (< $1,000).
- HR: Contract Expired.
Operational risks that need management intervention.
- Holding: Cash Runway 30-90 Days, Low Margin (< 5%), Burn Rate Increase (> 20%), Contracts Expiring, High Turnover (> 10%), or Annual Closing Pending.
- Stock running low (Retail).
- Contracts expiring in < 60 days.
- Factory: Maintenance Due Soon, Sellable Stock Low, or Draft Sales (> 24h).
- Retail: Sales Target Behind (< 80%), Low Stock, or Pending Report.
- Hospitality: Room Maintenance, Pending Bookings, Stale Open Sales, or Menu Item Low Stock.
- Real Estate: Expiring Contract (8-30 days), Overdue Follow-up (1-7 days), Ending Project (4-14 days), Property Vacant/Maintenance.
Routine notifications and reminders.
- Holding: Profit Drop, Sector Concentration (≥ 50%), or Downward Trend (per company).
- Scheduled maintenance due.
- Draft items pending approval.
- Hospitality: Check-in Today notifications.
- Real Estate: Upcoming Follow-up, Expiring Contract (31-60 days), Ending Project (15-30 days).
Governance Handbook
Best practices for multi-subsidiary management and organizational structure.
1. Multi-Subsidiary Management Best Practices
Effective governance requires a balance between centralized control and subsidiary autonomy.
Standardization
- Chart of Accounts: Maintain a unified chart of accounts across all subsidiaries to ensure seamless financial consolidation.
- Fiscal Year: Align all subsidiaries to the same fiscal year start/end dates.
- Currency: While subsidiaries operate in local currency, ensure exchange rates are updated monthly in Global Settings.
Role Separation
- Holding Level: Focus on strategy, capital allocation, and audit. Avoid micromanaging daily operations.
- Subsidiary Managers: Empower GM's to handle operational decisions (staffing, inventory, sales) within approved budgets.
Audit & Compliance
- Regular Audits: Use the Audit Log module to review sensitive actions (deletions, huge transactions) weekly.
- Approval Thresholds: Set clear limits on expenses that require Holding approval.
2. Creating a New Subsidiary
Click "Companies" in the left sidebar menu.
Click the blue "Add New Company" button. The wizard will prompt for:
- Identity: Name, Industry Type (Retail, Hospitality, Factory, etc.), and Currency.
- Location: Use the interactive map to pin the subsidiary's headquarters.
- Staff Assignment: Immediately designate a General Manager, Accountant, and Clerk.
User Management
Control access, manage employee accounts, and handle security.
1. Managing Users
To add a new employee to a company:
- Go to User Management in the sidebar.
- Click "Add User".
- Fill in mandatory fields: Full Name, Email, and Password.
- Assign a Target Company and a standard Role (e.g., "Store Manager").
2. How to Lock a Suspicious Account
If you suspect unauthorized access:
- Locate the user in the table.
- Toggle the Status switch to "Suspended" (Red).
- The user will be immediately logged out and blocked from signing in.
3. Impersonation Mode (God Mode)
The Impersonation Mode (God Mode) allows Super Admins to access any subsidiary's dashboard to perform administrative tasks. Unlike standard impersonation, you retain your Super Admin permissions while operating within the target company's environment.
When to use it?
- Troubleshooting: View the exact data and dashboard state that a specific manager sees.
- Super-Admin Override: Fix configuration issues or bypass restrictions that the local manager cannot resolve themselves.
- Verification: Audit a company's data without needing the manager's credentials.
How to use it?
Navigate to Admin > Companies in the sidebar.
Locate the company you want to inspect.
Click the "Enter Dashboard" button in the actions column. You will be instantly logged in as the General Manager of that company.
How to Exit?
Look for the red banner or indicator at the top of the screen. Click on your profile menu and select "Exit Impersonation" or "Switch Back" to return to your Super Admin account.
Roles & Permissions
Define access levels and assign capabilities to different system roles.
1. Standard Roles
The system comes with pre-defined roles. To view them:
- Navigate to Roles & Permissions in the sidebar.
- Review the list showing Role Name and current Users Count.
Note: System roles like "Super Admin" cannot be deleted.
2. Creating Custom Roles
Click the "Create Role" button (top right). You will be directed to the setup form.
Enter a Display Label (e.g., "Shift Supervisor") and a unique Role Name (slug).
Check the boxes for specific permissions (e.g., "view_financials", "edit_employees"). Permissions are grouped by module.
Financial Workflows
Detailed guides for handling treasury and fiscal years.
1. Holding Closing
For subsidiary access. Navigate to Holding Annual Closing.
Click "New closing request" to begin the submission process.
Select the Fiscal Year. The system will automatically retrieve and consolidated your financial data (Income, Expense, Net Result). Add Notes for Holding Review if needed and click "Create".
2. Annual Closings (Review Desk)
For Super Admin / Chief Accountant. Navigate to Holding Annual Closing > Annual Closings.
View a table of closing requests. Columns include Fiscal Year, Reference, and financial summaries.
Use the Actions menu to "View" details. Approve or Finalize the request. You can also view/download the auto-generated Trial Balance and General Ledger.
Audit Logs
Track every system event for security and accountability.
Security & Auditing
The Audit Log tracks all critical system actions. Filters allow you to search by:
- Event: Action type (Created, Updated, Deleted).
- User: Who performed the action.
- Module: Which part of the system was affected (e.g., Financials, Users).
- IP Address: The source address of the request.
- Timestamp: Exact date and time of the event.
Broadcast Center
Mass communication tool for holding-wide announcements.
Sending Broadcasts
To send system-wide alerts to all users:
Go to Broadcast Center. Click "Compose broadcast".
Set a Title, Severity (Low/Medium/High), and optional Call-to-Action link. You can schedule it to publish at a future date.
Global Settings
Configure the core parameters of the holding system.
Configuration Tabs
The Settings page is divided into 7 key tabs for managing the application's core behavior.
1. Profile
Manage your own account security.
- Details: Update your Display Name and Email.
- Security: Change your password by entering the current one followed by the new credentials.
2. Application
White-label the platform for your specific brand identity.
- General: Set the global "Application Name".
- Assets: Upload a custom Logo and Favicon (Browser Icon).
- Login Screen: Customize the Title, Subtitle, and Description text. You can also upload a unique Background Image to welcome users.
3. Mail Configuration
Configure how the system sends transactional emails (welcomes, resets, alerts).
- Protocol: Enter your SMTP Host, Port, Username, and Password.
- Encryption: Select SSL, TLS, or None based on your provider.
- Sender Identity: Define the "From Name" and "From Address" that will appear in user inboxes.
- Toggle: Use the "Email delivery" checkbox to globally enable/disable sending.
4. Email Templates
Customize the actual content of system emails.
- Edit: Click any template (e.g., "Alert Center Notification") to open the rich text editor.
- Variables: Use dynamic placeholders like
{{ user_name }}or{{ app_name }}to personalize messages. - Test: Use the "Send test email" button to verify the layout before saving.
5. Currency
Manage the exchange rates used for consolidations.
- Base Currency: Displays the holding's primary reporting currency (e.g., TND).
- Exchange Rates: Manually add conversion rates for other operating currencies. You must specify the Symbol, Rate, and Effective Date.
6. Translations
Localize the application interface.
- Manage Languages: Add support for new locales (e.g., Arabic, French).
- Edit Strings: Search for specific interface text keys and provide custom translations in the editor table.
7. System Updates
Maintain the core platform.
- License: Enter your purchase code to activate the system.
- Status: View your current version and check for available upgrades.
Real Estate Module
Complete property management: listings, contracts, leads, and construction projects.
1. Real Estate Dashboard
A specialized command center for property portfolio management.
Summary Cards
- Revenue: Total income with percentage change indicator.
- Expenses: Total costs with percentage change.
- Profit: Net profit with percentage change.
- Open Alerts: Count of items needing attention (links to alerts page).
Charts & Visualizations
- Revenue vs Expenses vs Profit: Combined line/bar chart showing financial trends.
- Income vs Expenses: Donut chart visualizing the ratio.
- Comparison Table: Breakdown of Revenue, Expenses, Profit for "This Month" vs "Last Month".
Real Estate Metrics
- Properties: Total property count.
- Projects: Active development projects.
- Contracts: Active contracts.
- Leads: Active leads in pipeline.
Timeframe Filters
Use the dropdown to switch between This Year, Last Year, or Lifetime views.
2. Properties
Central registry of all real estate assets.
List View Summary Cards
- Total Properties: Count with growth indicator.
- Available Properties: Percentage available for sale/rent.
- Asset Value: Sum of all acquisition costs.
- Net Profit: Realized profit from sold properties.
Table Columns
- Property: Name and Reference ID (e.g., NXT-IMMO-001).
- Classification: Category badge (Residential, Touristic, Agricultural).
- Area: Size in square meters (m²).
- Cost: Acquisition cost.
- Price: Selling price or rent amount.
- Status: Color-coded badge (Available, Rented, Sold, etc.).
- Actions: View Details.
Filters
- Quick Filters: All, Available, Sold buttons.
- Search: Find by name or reference ID.
- Status: Dropdown filter.
- Classification: Dropdown filter.
- Date Range: From/To date pickers.
Map View
Interactive map showing property locations with clickable markers.
How to Add a Property
Click "New Property" button.
- Property Name: Descriptive name.
- Reference Number: Auto-generated or custom ID.
- Classification: Residential, Touristic, or Agricultural.
- Type: Apartment, Villa, Land, Building, or Commercial.
- Rooms / Floors: Number of rooms and floors.
- Address: Full street address.
- GPS Coordinates: Click "Choose on Map" to pin location.
- Area (m²): Property size.
- Acquisition Cost: Purchase price.
- Target Price: Selling or rental price.
- Status: Available, Maintenance, Rented, Reserved, Sold, Under Construction.
- Record as expense: Check to log acquisition cost as transaction.
Enter a Description and list Features (e.g., Pool, Garden). Click "Save".
Property View Page
- Profile Header: Name, ID, address, status badge.
- Metric Cards: Monthly Rent/Price, Area, Classification, Original Cost.
- General Information: Creation date, linked client.
- Description & Features: Full text displays.
- Contracts Table: Linked contracts with Number, Type, Client, Amount, Expiry.
3. Contracts
Manage rental, sale, and investment agreements.
Table Columns
- Contract Number: Unique identifier.
- Type: Investment, Rent, Reservation, or Sale.
- Property: Linked property name.
- Client: Customer name.
- Amount: Contract value.
- Period: Contract duration.
- Status: Active, Cancelled, Completed, Draft, Pending.
- Actions: View Property, Edit, Delete.
Filters
- Search: Text search for contract details.
- Type: Investment, Rent, Reservation, Sale.
- Status: Active, Cancelled, Completed, Draft, Pending.
- Date Range: From/To date pickers.
How to Create a Contract
Click "New Contract" button.
- Contract Number: Unique ID for tracking.
- Property: Select from dropdown.
- Type: Investment, Rent, Reservation, or Sale.
- Signature Date: When contract was signed.
- Client: Customer name.
- Phone: Customer contact.
- Amount: Contract value.
Click "Save". The contract is created and linked to the property.
4. Leads
Track potential buyers and renters through your sales pipeline.
Summary Cards
- Total Leads: Overall count.
- Hot Leads: High-priority prospects.
- Overdue: Leads past follow-up date.
- Converted: Leads that became contracts.
Table Columns
- Lead: Contact name and phone.
- Property: Property of interest.
- Status: New, Cold, Warm, Hot, Converted, Lost.
- Follow-up: Next follow-up date.
- Actions: Edit, Delete.
Status Pipeline
- New: Just added to the system.
- Cold: Low interest or unresponsive.
- Warm: Engaged but not ready.
- Hot: Ready to buy/rent soon.
- Converted: Became a contract.
- Lost: No longer interested.
5. Projects
Track construction and development projects with budget management.
Summary Cards
- Total Projects: Count with status (e.g., "1 In Progress").
- Total Budget: Aggregate budget (e.g., 2.5M TND).
- Total Expenses: Aggregate expenses and percentage of budget.
- Variance: Difference between budget and expenses.
Map-Based Interface
Projects are displayed on an interactive map. Click a marker to view detailed information in a side panel showing budget, expenses, and progress.
How to Create a Project
Click "Create Project" button.
- Project Name: Descriptive name.
- Project Code: Internal reference.
- Classification: Category (e.g., Residential, Commercial).
- Type: Sub-category.
- Description: Project details.
- Start Date / End Date: Project timeline.
- Total Budget: Allocated budget.
- Estimated Cost: Projected expenses.
- Location Name: Site name.
- GPS Coordinates: Use "Choose on Map".
- Contractors: Click "+ Add Contractor" to list contractors.
Click "Save". Project appears on the map.
Project Tasks
Each project has a dedicated tasks page for work breakdown.
Task Summary Cards
- Total Tasks: Overall count.
- Completed: Finished tasks.
- In Progress: Active tasks.
- Pending: Not yet started.
- Progress Bar: Visual completion percentage.
How to Add a Task
Click "Add Task" button.
- Title: Task name.
- Description: Work details.
- Status: Pending, In Progress, Completed.
- Assigned To: Team member.
- Due Date: Deadline.
- Estimated Cost / Actual Cost: Budget tracking.
Click "Save". Task appears in the list.
6. Real Estate Alerts
Automated alerts to monitor contracts, leads, projects, and properties.
Alert Types
- Expiring Contract: Active contract expiring within 60 days. ≤ 7 days (High), ≤ 30 days (Medium), ≤ 60 days (Low).
- Overdue Follow-up: Lead follow-up past due date. > 7 days overdue (High), 1-7 days overdue (Medium).
- Upcoming Follow-up: Lead follow-up scheduled within next 3 days (Low Priority).
- Ending Project: Project ending within 30 days. ≤ 3 days (High), ≤ 14 days (Medium), ≤ 30 days (Low).
- Hot Lead: Hot status lead with no scheduled follow-up or overdue follow-up (High Priority).
- Property Vacant: Property available for > 30 days. > 90 days (High), > 60 days (Medium), > 30 days (Low).
- Property Maintenance: Property in maintenance status. > 30 days (High), ≤ 30 days (Medium).
Priority Levels
6. Real Estate Settings
Configure module-specific options.
Real Estate Tab
- Property Classifications: Manage categories (Residential, Touristic, Agricultural).
- Property Types: Manage types (Apartment, Villa, Land, Building, Commercial).
- Project Classifications: Manage project categories (Residential, Commercial, etc.).
Retail Module
Complete retail management: products, inventory, daily sales tracking, and sales targets.
1. Retail Dashboard
A specialized command center for retail operations and sales performance.
Financial Pulse
- Revenue: Total income with monthly trend indicator (e.g., ↓ 3.4% vs last month).
- Expenses: Total costs with monthly trend.
- Profit: Net profit with monthly trend.
Retail Metrics
- Products: Total number of products in catalog.
- Stock: Total items currently in stock.
- Daily Sales: Sales recorded for current day.
- Monthly Sales: Sales recorded for current month.
Charts & Visualizations
- Revenue vs Expenses vs Profit: Multi-series chart comparing financial pillars.
- Income vs Expenses (Donut): Visual cash flow breakdown.
- Comparison Table: This Month vs Last Month for Revenue, Expenses, Profit.
Recent Activity
- Transaction Type: Icon indicating type.
- Description: Transaction details.
- Time: Relative time ago.
- Amount: Transaction value.
2. Retail Overview
Dedicated view for retail health and inventory management.
Summary Cards
- Total Products: Count of active products.
- Inventory Value: Total monetary value of stock.
- Stock Alerts: Products with critical stock levels (Out of Stock count).
- Dead Stock: Products with no recent sales activity.
Sales Target Widget
- Monthly Goal: Target amount for the month.
- Current Sales: Amount achieved so far.
- Remaining: Amount needed to reach target.
- Progress Bar: Visual percentage indicator.
Interactive Tabs
- Overview: Default view with summary charts.
- Best Sellers: Bar chart of top-performing products.
- Low Stock: Table with Product, Current Stock, Threshold, Status columns.
- Dead Stock: List of non-moving inventory items.
Sales by Category
Donut chart showing distribution of sales across product categories.
3. Products
Central hub for managing your product catalog and inventory.
Summary Cards
- Total Products: Count of all products.
- Low Stock: Products below reorder point.
- Out of Stock: Products with zero inventory.
- Inventory Value: Total stock value.
Table Columns
- Product: Name and SKU/Barcode.
- Current Stock: Units available.
- Reorder Point: Low stock threshold.
- Sellable: Whether product is active for sale (Yes/No).
- Stopped: Whether sales have been halted.
- Status: Stock status badge (In Stock, Low Stock, Out of Stock).
- Actions: Edit, Delete.
How to Add a Product
Click "New Product" button.
- Product Name: Name for display.
- Category: Select from dropdown.
- Barcode: Scannable code (required).
- SKU: Stock Keeping Unit code.
- Purchase Cost: Cost to acquire.
- Selling Price: Retail price.
- Discount (%): Default discount percentage.
- Stock Quantity: Current inventory count.
- Reorder Point: Level that triggers low stock alert.
- Optimal Stock Level: Ideal inventory quantity.
- Supplier Name: Vendor name.
- Supplier Contact: Vendor contact info.
- Description: Product details.
- Available for Sale: Checkbox to enable sales.
- Discontinued: Checkbox to mark as discontinued.
Click "Create Product".
4. Daily Sales
Track and manage point-of-sale transactions with validation workflow.
Table Columns
- Date: Calendar date of the sale.
- Total Amount: Final sale value.
- Status: Draft or Validated.
- Created by: User who initiated the sale.
- Validated by: Validator name and timestamp.
- Actions: View, Edit, Validate, Delete.
Filters
- Date Picker: Filter by specific date (YYYY-MM-DD format).
How to Create a Sale
Click "New Sale" button.
- Scan Barcode: Use barcode scanner for instant product addition.
- Product Search: Search and click to add products.
- Quantity: Number of units.
- Unit Price: Price per item.
- Discount: Line-level discount.
- Remove: Click X to remove items.
- Notes: Add internal comments.
- Total: Calculated automatically.
- Total Discounts: Sum of all discounts.
Click "Save". Sale is created as Draft.
From the list, click "Validate" to finalize the sale. Status changes to Validated with validator name and timestamp.
5. Sales Targets
Track monthly sales goals and performance.
Dashboard Elements
- Monthly Goal: Target amount for the month.
- Current Sales: Amount achieved with percentage of goal.
- Remaining: Amount needed to reach target.
Visualizations
- Target History Graph: Line/Bar chart comparing Sales vs Target over time.
- Target Progress: Breakdown chart of current performance.
Target Configuration
Monthly targets are configured in Retail Settings → Monthly Goal field.
6. Retail Alerts
Automated alerts to monitor inventory and sales performance.
Alert Types
- Low Stock: Product quantity below defined Reorder Point. Out of stock (≤ 0) triggers High priority; low stock triggers Medium.
- Pending Report: Daily sales reports with status other than "sent" (Medium Priority).
- Missing Report: No daily sales report submitted for yesterday (High Priority).
- Sales Target Behind: Current month sales < 80% of expected linear progress based on monthly target (Medium Priority).
Priority Levels
6. Retail Settings
Configure retail module options and categories.
Monthly Goal
- Monthly Goal: Numeric field to set sales target.
- Preview: Displays formatted target (e.g., "100 000 DT").
Product Categories
- Category List: Table showing Key (internal ID) and Label (display name).
- Edit: Modify category labels.
- Delete: Remove individual categories.
- Clear: Remove all categories.
How to Create a Category
Type the internal key (e.g., "electronics").
Type the display name (e.g., "Electronics").
Click "Create". Then click "Save" to persist all settings.
Hospitality Module
Complete hotel management: room inventory, bookings, F&B sales, and performance metrics.
1. Hospitality Dashboard
A specialized command center for hotel operations and revenue management.
Financial Pulse
- Revenue: Total income with monthly trend indicator.
- Expenses: Total costs with monthly trend.
- Profit: Net profit with monthly trend.
Hospitality Metrics
- Rooms: Total room count.
- Occupancy Rate: Percentage of occupied rooms.
- Bookings: Number of active bookings.
- Checkouts: Number of completed checkouts.
Charts & Widgets
- Revenue vs Expenses vs Profit: Multi-line/bar chart.
- Income vs Expenses: Doughnut chart with month comparison.
- Recent Activity: Latest transactions list.
- Company Alerts: Open alerts count with link.
2. GOPPAR (Gross Operating Profit Per Available Room)
Key hotel performance metric tracking profitability per room.
KPI Summary Cards
- GOPPAR: Primary metric - profit per available room.
- Gross Operating Profit: Total GOP (room + ancillary - expenses).
- Operating Expenses: Hotel operational costs.
- Ancillary Revenue: Non-room revenue (F&B, Spa, etc.).
- Room Revenue: Revenue from bookings.
- Available Rooms: Total inventory (excluding maintenance).
- Occupied Rooms: Rooms currently sold.
- Occupancy Rate: Occupied/Available ratio.
Visualizations
- GOPPAR Trend: Line chart showing 7-day performance trend.
Filters
- Date Range: Select specific time period.
- Reset: Clear date filter.
3. Hotel Rooms (Room Rack)
Manage room inventory and housekeeping status.
Summary Cards
- Total Rooms: All rooms in inventory.
- Available: Ready for sale.
- Occupied: Currently in use.
- Dirty: Needs housekeeping.
- Maintenance: Under repair.
- Out of Order: Unavailable.
Table Columns
- Room: Room number/identifier.
- Type: Category (Single, Double, Suite, Family).
- Price/Night: Nightly rate.
- Status: Color-coded badge.
- Actions: Edit, Delete.
Status Tabs
Filter by: All, Clean, Dirty, Occupied, Maintenance, Out of Order.
How to Add a Room
Click "Add Room" button.
- Room Number: Unique identifier (e.g., 101).
- Type: Single Room, Double Room, Suite, or Family Room.
- Price per Night: Nightly rate.
- Status: Clean, Dirty, Occupied, Maintenance, or Out of Order.
Click "Save". Room appears in the Room Rack.
4. Bookings
Manage guest reservations and track occupancy.
KPI Summary Cards
- Confirmed: Count of confirmed bookings.
- Active: Currently checked-in guests.
- Checked Out: Completed stays.
- Monthly Revenue: Total this month.
- Occupancy Rate: Current percentage.
Table Columns
- Guest: Guest name.
- Room: Room number and type.
- Check In: Arrival date.
- Check Out: Departure date.
- Nights: Duration of stay.
- Total: Booking cost.
- Status: Current state.
- Actions: Edit, Delete.
Booking Status Lifecycle
Pending → Confirmed → Checked In → Checked Out (or Cancelled).
How to Create a Booking
Click "New Booking" button.
- Room: Select from available inventory.
- Guest: Enter guest name.
- Check In: Arrival date (YYYY-MM-DD).
- Check Out: Departure date.
- Total: Booking amount.
- Status: Initial state (Pending/Confirmed).
Click "Save". Booking is created.
5. Hospitality Sales
Track F&B and ancillary revenue from guests and walk-ins.
Summary Cards
- Open Tabs: Unsettled sales.
- Settled Today: Completed transactions today.
- Revenue Today: Total revenue today.
- Charged to Rooms: Room-charged sales.
Table Columns
- Reference: Unique sale ID (e.g., HSP-260121-OFRR).
- Outlet: Point of sale with item count.
- Booking/Guest: Linked reservation or "Walk-in guest".
- Total: Sale amount.
- Status: Open, Settled, or Cancelled.
- Created At: Timestamp.
- Actions: View, Edit, Delete.
Filters
- Status: All, Open, Settled, Cancelled.
- Outlet: Filter by point of sale.
- Date Range: Start/End date.
How to Record a Sale
Click "Record Sale" button.
- Outlet: Select point of sale.
- Charge to booking: Link to guest or "Walk-in".
- Notes: Optional comments.
Click "+" next to menu items to add to the order.
Click "Charge now". Sale is created as Open.
From the View page, select Payment Method, enter Receipt Number, and click "Settle now".
6. Hospitality Alerts
Automated alerts to monitor hotel operations and performance.
Alert Types
- Room Maintenance: Hotel room in maintenance status (Medium Priority).
- Menu Item Out of Stock: Stock-manageable item with quantity ≤ 0 (High Priority).
- Pending Bookings: Bookings awaiting confirmation (Medium Priority).
- Overlapping Bookings: Double-booking detected for same room/date range (High Priority).
- Check-in Today: Confirmed guests scheduled to check in today (Low Priority).
- Stale Open Sales: Open sales inactive for 2+ hours, likely forgotten (Medium Priority).
- Low GOPPAR: Yesterday's GOPPAR below configured target threshold (High Priority).
- Menu Item Low Stock: Stock-manageable item with quantity 1-5 remaining (Medium Priority).
Priority Levels
6. Hospitality Settings
Configure menu items and outlets for F&B operations.
Menu Items Tab
Add Item Form
- Item Name: Display name.
- Category: Room Service, Restaurant, Bar, Spa, Laundry, Minibar.
- Type: Good or Service.
- Default Price: Base price.
Items List Actions
- Add Stock: Increase inventory.
- Edit: Modify item details.
- Delete: Remove item.
Outlets Tab
Add Outlet Form
- Outlet Name: Display name.
- Slug: URL-friendly identifier.
- Description: Outlet details.
- Active Outlet: Enable/disable.
Outlets List Actions
- Edit: Modify outlet.
- Delete: Remove outlet.
Factory/Manufacturing Module
Complete manufacturing management: production runs, machine tracking, materials, waste, and sellable stock.
1. Factory Dashboard
A specialized command center for manufacturing operations.
Financial Pulse
- Revenue: Total income from sales.
- Expenses: Total operational costs.
- Profit: Net profit.
Factory Metrics
- Machines: Total machine count.
- Operational: Machines currently running.
- Materials: Number of raw materials tracked.
- Maintenance: Pending maintenance tasks.
Widgets
- Company Alerts: Open alerts overview.
- Recent Activity: Latest transactions list.
2. Factory Overview
Central hub with multiple tabs for production monitoring.
Overview Tab
- Machine Status Cards: Per-machine status, utilization %, downtime %, next maintenance.
- Production Trend Chart: Line chart over time.
- Waste by Machine Chart: Percentage breakdown.
Production Runs Tab
- Table Columns: Date, Machine, Shift, Operator, Waste %, Cost/Unit, Actions.
- Button: "New Production Run".
Waste Tab
- Pending Scrap Lots: Production Date, Machine, Product/Batch, Scrap Units, Method, Value, Status, Actions (Handle).
- Waste by Machine Statistics: Good vs Scrap units per machine.
How to Handle Waste
Find the scrap lot in the Pending Scrap Lots table.
Click "Handle" in the Actions column.
Choose how to handle the waste (Dispose, Recycle, Sell as scrap).
Materials Tab
- Table Columns: Material, Current Stock, Reorder Point, Days until Stockout, Reorder Qty, Stock Value.
Sellable Stock Tab
- Table Columns: Product, Batch, Manufactured Date, Quantity, Cost per Unit, Total Cost, Potential Revenue.
How to Sell Finished Goods
Locate the batch in the Sellable Stock table or use the search.
Click on the batch to view lot-level details.
Click "Sell" and enter sale quantity and price. The sale is recorded as revenue.
Downtime Tab
- Table Columns: Date, Machine, Type (Planned/Unplanned), Duration, Reason, Status (Resolved/Ongoing).
3. Machines
Manage factory machinery and equipment.
Table Columns
- Machine Details: Name and description.
- Capacity: Production capacity.
- Maintenance Interval: Days between maintenance.
- Purchase Cost: Acquisition cost.
- Status: Operational, Maintenance, etc.
- Actions: Edit, Delete.
How to Add a Machine
Click "Add Machine" button.
- Name: Machine identifier.
- Description: Purpose and specifications.
- Capacity: Units per hour/day.
- Maintenance Interval: Days between services.
- Purchase Cost: Acquisition cost.
Click "Save". Machine appears in the list as Operational.
4. Raw Materials
Track inventory of production inputs.
Table Columns
- Material: Name and description.
- Current Stock: Available quantity.
- Standard Cost: Unit cost.
- Supplier: Vendor name.
- Reorder Point: Low stock threshold.
- Actions: Edit, Delete, Restock.
How to Add a Raw Material
Click "Add Material" button.
- Name: Material identifier.
- Description: Specifications.
- Unit: Measurement unit (kg, pieces, etc.).
- Standard Cost: Unit cost.
- Supplier: Vendor name.
- Reorder Point: Low stock threshold.
Click "Save". Material is added to inventory.
How to Restock a Material
Locate the material in the list.
Click "Restock" in the Actions column.
Enter quantity received and cost. Stock is updated.
5. Production Runs
Register and track manufacturing runs with materials, output, and quality.
How to Register a Production Run
Click "New Production Run" button.
- Machine: Select target machine.
- Date: Production date.
- Shift: Shift identifier.
- Batch Number: Unique batch ID.
- Select Materials: Choose raw materials consumed.
- Quantity: Amount used.
- Cost: Material cost tracking.
- Good Units: Successfully produced units.
- Scrap Units: Waste/defective units.
- Waste %: Auto-calculated.
- Hours Worked: Labor hours.
- Publish to Catalog: Mark as sellable.
- Pricing: Set sale price.
- Notes: Production notes.
- Quality Issues: Document defects.
Click "Register Production".
6. Maintenance
Track and schedule machine maintenance tasks.
Features
- Pending Tasks: Scheduled maintenance.
- Completed Tasks: History of completed work.
- Machine Status: Impact on availability.
7. Sellable Finished Goods
Manage finished goods ready for sale.
Summary Cards
- Stock Inventory: Total finished goods.
- Factory Revenue: Potential revenue.
Features
- Searchable Lots: Find specific batches.
- Batch Details: Expandable lot information.
- Sell Action: Process sales at batch level.
8. Factory Alerts
Automated alerts to monitor production, machines, and inventory.
Alert Types
- High Waste: Production run with > 5% scrap/waste (High Priority).
- Machine Breakdown: Machine status = 'broken' (High Priority).
- Maintenance Overdue: Machine past scheduled maintenance date (High Priority).
- Maintenance Due Soon: Machine maintenance needed within 7 days (Medium Priority).
- Raw Material Low Stock: Material below reorder threshold (High Priority).
- Sellable Stock Low: Available quantity < Minimum Order Quantity (Medium Priority).
- Draft Sales (Stale): Sale in 'draft' status for > 24 hours (Medium Priority).
Priority Levels
8. Factory Settings
Configure manufacturing module options.
Expense Categories Tab
- Category Management: Add/Edit/Delete expense categories.
Product Catalog Tab
- SKU: Stock Keeping Unit.
- Pricing: Default product prices.
- Identifiers: Product codes and references.
- Actions: Add, Edit, Delete products.
Infrastructure Guide
Production-ready configurations for performance and scalability.
1. Server Optimization
Nginx Configuration
Recommended settings for handling large file uploads and long timeouts.
client_max_body_size 100M;
fastcgi_read_timeout 300;
proxy_read_timeout 300;
Apache Configuration
Recommended settings for .htaccess or php.ini to match Nginx
optimizations.
<IfModule mod_php.c>
php_value post_max_size 100M
php_value upload_max_filesize 100M
php_value max_execution_time 300
php_value max_input_time 300
</IfModule>
Supervisor (Queue Workers)
Use Supervisor to keep your queue workers running in the background.
[program:combo-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
Cron Jobs
Add the following to your server's crontab for scheduled tasks:
* * * * * php /var/www/html/artisan schedule:run >> /dev/null 2>&1
Update & Patch Guide
Safe procedures for checking and applying system updates via the Settings page.
1. Checking for Updates (Remote)
The system provides a built-in update mechanism accessible from the Settings page.
Go to Settings in the sidebar, then click on the System Updates tab.
Ensure your License Key is displayed and shows a Verified status. This is required for remote updates.
Click the "Check for Updates" button. The system will connect to the update server and display the result:
- Up to Date: Your installation is current.
- New Update Available: A banner will appear showing the new version (e.g., v1.0.2).
2. Applying Updates Remotely
Once an update is available, click the "Install Now" button. The system will automatically download and apply the new files.
A progress indicator will appear. Do not close the browser or navigate away until the process completes.
After completion, the Current Version field will reflect the new version number. You may need to log out and back in to see all changes.
3. Manual Update Method
If the remote update fails or you prefer manual control, follow these steps:
Download the latest version from your marketplace account using your license key.
Use SFTP/FTP to upload the new files, overwriting existing ones. Do NOT
overwrite your .env file or storage/
folder.
Execute the database migration command via SSH:
php artisan migrate --force
Flush all application caches:
php artisan optimize:clear
Troubleshooting
Common issues and their solutions.
1. Common Errors
500 Server Error
Check the log file at storage/logs/laravel.log for the exact error message.
Common causes include permission issues on the storage folder.
419 Page Expired
This usually indicates a CSRF token mismatch. Clear your browser cookies or check if your session file permissions are correct.
Images Not Loading
Ensure you have created the storage symbolic link:
php artisan storage:link
FAQ
Frequently Asked Questions.
General Questions
Can I use multiple currencies?
Yes. Each specific company works in its own currency, but all financial data is consolidated into the Holding's base currency using the exchange rates defined in Global Settings.
How do I reset the Super Admin password?
If you cannot log in, use the "Forgot Password" link on the login page. If email is not
configured, you can manually update the password hash in the users database
table.
Is the system compatible with PHP 8.2?
Yes, the system is fully compatible with PHP 8.1, 8.2, and 8.3.