BEXO ERP Docs

BEXO ERP System — Complete User Guide

Version: 1.0
Date: 2026-05-30
Application: BEXO Enterprise Resource Planning System
Platform: Windows (WPF Client + ASP.NET Core API)


Table of Contents

  1. System Overview
  2. Getting Started
  3. Authentication & Login
  4. Core Modules
  5. Workflow Examples
  6. Best Practices
  7. Troubleshooting

System Overview

BEXO is an integrated ERP solution designed for multi-company operations with comprehensive financial, inventory, payroll, and reporting capabilities.

Key Features

  • Multi-Company Support: Manage up to 12 companies simultaneously
  • Complete Financial Suite: General Ledger, Accounts Payable, Accounts Receivable
  • Inventory Management: Stock tracking, warehouse management, production planning
  • Payroll & HR: Employee management, payroll processing, gratuity calculations
  • Advanced Reporting: Trial Balance, Profit & Loss, Cash Flow, Ratio Analysis
  • Data Security: Role-based access control (RBAC), encrypted connections, audit trails

System Architecture

┌─────────────────────────────────────────┐
│      BEXO WPF Client (Windows)          │
│   - 68 Navigable Views                  │
│   - Real-time Data Binding              │
│   - Offline Support                     │
└────────────────┬────────────────────────┘
                 │ HTTPS (Port 5443)
                 ↓
┌─────────────────────────────────────────┐
│    BEXO API (ASP.NET Core 8)            │
│   - 415+ REST Endpoints                 │
│   - JWT Authentication                  │
│   - OutputCache for Performance         │
└────────────────┬────────────────────────┘
                 │ Integrated Security
                 ↓
┌─────────────────────────────────────────┐
│    SQL Server Database (BEXO_ERP)       │
│   - 98 Entity Tables                    │
│   - Automated Daily Backups             │
│   - Health Monitoring (5-min checks)    │
└─────────────────────────────────────────┘

Getting Started

System Requirements

Hardware: - Processor: Intel Core i5 or equivalent (minimum) - RAM: 8 GB minimum, 16 GB recommended - Storage: 50 GB free disk space - Network: Dedicated LAN connection (100 Mbps minimum)

Software: - Windows 10/Windows Server 2016 or later - .NET 8 ASP.NET Core Runtime (installed on server) - SQL Server 2016 or later (for production)

Installation Steps

Step 1: Verify Prerequisites

# Check .NET 8 installation
dotnet --version

# Check SQL Server accessibility
sqlcmd -S .\BEXO_ERP -U sa -P <password>

# Verify network connectivity to BEXO API
Test-NetConnection -ComputerName <api-server> -Port 5443

Step 2: Deploy WPF Client

  1. Copy the released BEXO application folder to C:\Program Files\BEXO\
  2. Create a desktop shortcut to BEXO.UI.exe
  3. Grant user permissions to write logs (C:\temp\bexo_*.log)

Step 3: Configure API Connection

  • API runs at: https://<server-ip>:5443/
  • Self-signed certificate is acceptable for internal use
  • All connections use TLS 1.3 encryption

Step 4: Database Setup

-- Verify BEXO_ERP database exists
SELECT name FROM sys.databases WHERE name = 'BEXO_ERP'

-- Check table count (should be 98)
SELECT COUNT(*) FROM information_schema.tables

Authentication & Login

Initial Login

Default Test Credentials:

Username: designer
Password: Test@123
Role: Design (read-only access)
Company: Demo Company

Role Hierarchy: | Role | Level | Permissions | |------|-------|-------------| | SuperAdmin | 5 | Full system access, user management | | Admin | 4 | Company operations, payroll, all modules | | Manager | 3 | Department operations, limited payroll | | User | 2 | Standard operations (create/read) | | Design | 1 | Read-only (testing/QA) |

Login Flow

1. Launch BEXO.UI.exe
   ↓
2. Enter Username & Password
   ↓
3. Select Company (dropdown shows all authorized companies)
   ↓
4. Click "Login"
   ↓
5. Dashboard loads with role-specific widgets
   ↓
6. Ready to navigate modules

Example Login Sequence: 1. Open BEXO application 2. Username field: Enter marketing2 3. Password field: Enter credentials 4. Company dropdown: Select "Main Company" 5. Click "Login" button 6. Wait for dashboard to load (2-5 seconds typical)


Core Modules

Module 1: Dashboard

Purpose: Overview of key metrics and quick actions
Access: All roles after login

Dashboard Widgets: - Summary Cards: Cash balance, receivables, payables, stock value - Trend Charts: Revenue (12 months), Expense trends - Alerts: Overdue invoices, low inventory, pending approvals - Quick Actions: Create Invoice, Add Payment, Stock Receipt

Dashboard Walkthrough:

Action: Login as Admin
Result: See all 6 summary cards + charts + alerts

Action: Click "Create Invoice" quick action
Result: Navigate to Invoice Creation screen

Module 2: Customers & Invoicing

Purpose: Manage customer relationships and create sales invoices
Access: User role and above

Customer Master

Key Fields: - Customer Name (required, unique) - Email, Phone, Address - Credit Limit (controls max invoice amount) - Payment Terms (Due date calculation) - Tax ID, Currency

Steps to Create Customer:

1. Navigate: Dashboard → Customers
2. Click "Add New Customer" button
3. Fill required fields:
   - Name: "Acme Corporation"
   - Email: "[email protected]"
   - Phone: "+971-4-555-0000"
   - Credit Limit: 50,000 AED
4. Select Tax Category (Standard / Exempt / Zero-Rated)
5. Click "Save"
6. Confirm: Green success message "Customer created successfully"

Creating Sales Invoice

Required Information: - Customer (from saved customer list) - Invoice Date (defaults to today, can be adjusted) - Due Date (calculated from Payment Terms) - Line Items (Product + Quantity + Rate)

Invoice Creation Workflow:

1. Navigate: Dashboard → Invoices → Create New
2. Select Customer: "Acme Corporation"
3. Invoice Date: 2026-05-30 (auto-filled)
4. Add Line Items:
   - Product: "Product A" | Qty: 100 | Rate: 50 AED
   - Product: "Product B" | Qty: 50 | Rate: 100 AED
5. System auto-calculates:
   - Subtotal: 10,000 AED
   - VAT (5%): 500 AED
   - Total: 10,500 AED
6. Click "Save & Create"
7. Invoice ID assigned (e.g., "INV-2026-00125")
8. Print or Send Email options appear

Invoice Status Flow:

Draft → Confirmed → Partially Paid → Paid → Archived

Module 3: Payments

Purpose: Record customer payments and supplier payments
Access: Manager role and above

Recording Customer Payment

Payment Methods Supported: - Cash - Check - Bank Transfer - Credit Card - Wire Transfer - Other

Steps:

1. Navigate: Dashboard → Payments → Customer Payment
2. Select Invoice: "INV-2026-00125" (10,500 AED due)
3. Payment Method: "Bank Transfer"
4. Amount: 10,500 AED
5. Reference Number: "TXN-2026-5502"
6. Payment Date: 2026-05-30
7. Bank Account: "Business Account - AED"
8. Click "Record Payment"
9. System performs:
   - Reduces receivable balance
   - Updates invoice status to "Paid"
   - Creates journal entry (Debit Bank, Credit Receivable)
10. Success: Invoice marked complete

Payment Validation Rules: - Payment amount ≤ Outstanding balance - Payment date ≤ Today + 1 day (server timezone UTC+4) - Reference number required for bank/check payments - Check/Wire/Bank require either Account# or Reference


Module 4: Inventory & Stock

Purpose: Manage products, stock levels, and stock movements
Access: User role and above

Product Master

Key Attributes: - Product Code (auto-generated or custom) - Name, Description - Category (Manufacturing/Service/Raw Material) - Unit of Measure (PC, KG, L, Box, etc.) - Standard Cost, Selling Price - Reorder Level, Stock On Hand

Product Creation:

1. Navigate: Inventory → Products → Add Product
2. Product Code: "PROD-2026-A100" (auto-assigned)
3. Name: "Premium Widget - Red"
4. Category: "Manufacturing"
5. UOM: "PC" (Pieces)
6. Standard Cost: 45 AED
7. Selling Price: 95 AED
8. Reorder Level: 500 units
9. Click "Save"
10. Product ID generated (e.g., 1247)

Stock Movements

Types of Movements: 1. Stock Receipt (Purchase/Production) 2. Stock Issue (Sales/Consumption) 3. Adjustment (Loss/Damage) 4. Transfer (Between warehouses)

Stock Receipt Example:

1. Navigate: Inventory → Stock Receipt
2. From: "Supplier PO-2026-445"
3. Products:
   - Product A: 1,000 units @ 45 AED (Subtotal: 45,000 AED)
   - Product B: 500 units @ 75 AED (Subtotal: 37,500 AED)
4. Click "Post Receipt"
5. System updates:
   - Stock balances increase
   - Cost flow → FIFO assigned
   - GL Entry created (Debit Inventory, Credit Payable)

Module 5: General Ledger & Accounting

Purpose: Core financial recording and reporting
Access: Admin role and above

Chart of Accounts

Account Structure:

1000-1999: Assets (Cash, Bank, Receivables, Inventory)
2000-2999: Liabilities (Payable, Loans, Accruals)
3000-3999: Equity (Capital, Retained Earnings)
4000-4999: Revenue (Sales, Other Income)
5000-5999: Expenses (COGS, Salaries, Rent, Utilities)

Journal Entry Creation

Scenario: Record Rent Payment (1,000 AED)

1. Navigate: General Ledger → Journal Entries → New
2. Date: 2026-05-30
3. Reference: "CHQ-2026-1005"
4. Entries:

   Line 1 (Debit):
   - Account: 5100 (Rent Expense)
   - Amount: 1,000 AED
   - Description: "Office rent - May 2026"

   Line 2 (Credit):
   - Account: 1010 (Cash)
   - Amount: 1,000 AED
   - Description: "Check payment"

5. Click "Save"
6. Entry balanced? YES → Journal Entry saved
7. GL balances updated automatically

Module 6: Financial Reports

Purpose: Analyze financial performance and position
Access: All roles (limited by company)

Trial Balance

Navigate: Reports → Trial Balance
Report Date: 2026-05-30

Output (CSV/PDF):
─────────────────────────────────────
Account Code | Account Name        | Debit    | Credit
─────────────────────────────────────
1000         | Cash               | 250,000  |
1200         | Accounts Receivable| 175,500  |
1300         | Inventory          | 450,000  |
2000         | Accounts Payable   |          | 180,000
2500         | Short-term Loans   |          | 200,000
3000         | Capital            |          | 400,000
4100         | Sales Revenue      |          | 287,500
5100         | Cost of Goods Sold | 145,000  |
5200         | Operating Expenses | 47,000   |
─────────────────────────────────────
TOTALS                             |1,067,500 |1,067,500
Status: ✓ BALANCED

Profit & Loss Statement

Navigate: Reports → P&L Statement
Period: May 1-31, 2026

BEXO ERP — PROFIT & LOSS STATEMENT
═════════════════════════════════════════
May 1-31, 2026 (Monthly)

REVENUE:
  Sales (Local)               287,500 AED
  Sales (Export)              125,000 AED
  Other Income                 12,500 AED
─────────────────────────────────────────
TOTAL REVENUE                425,000 AED

COST OF GOODS SOLD:
  Opening Inventory          400,000 AED
  + Purchases                150,000 AED
  - Closing Inventory       (345,000) AED
─────────────────────────────────────────
TOTAL COGS                   205,000 AED

GROSS PROFIT (58%)           220,000 AED

OPERATING EXPENSES:
  Salaries & Wages            45,000 AED
  Rent Expense                 8,000 AED
  Utilities                    2,500 AED
  Depreciation                 1,500 AED
  Other Expenses               3,000 AED
─────────────────────────────────────────
TOTAL OPERATING EXPENSES      60,000 AED

NET PROFIT (29%)             160,000 AED
═════════════════════════════════════════

Module 7: Payroll & HR

Purpose: Employee management, salary processing, compliance
Access: Admin/Manager roles

Employee Setup

1. Navigate: HR → Employees → Add Employee
2. Personal Details:
   - Name: "Ahmed Al-Mansouri"
   - ID Number: "784-2026-001"
   - Date of Birth: 1990-03-15
   - Nationality: UAE
3. Employment Details:
   - Designation: "Senior Accountant"
   - Department: "Finance"
   - Hire Date: 2020-01-10
   - Basic Salary: 8,000 AED
4. Leave Entitlements:
   - Annual Leave: 30 days
   - Sick Leave: 10 days
5. Click "Save"

Payroll Processing

1. Navigate: Payroll → Salary Run → New Run
2. Period: May 2026
3. Select Employees: [Auto-populated with active employees]
4. System calculates:
   - Basic Salary: 8,000 AED
   - Allowances: 1,500 AED (Housing, Transport)
   - Deductions: (350) AED (Health Insurance)
   - Gross: 9,150 AED
5. Review & Approve
6. Generate Payslips (PDF)
7. Create GL Entry (Debit Salary Expense, Credit Payable)
8. Mark Payroll as "Processed"

Module 8: Production Planning

Purpose: Manage manufacturing operations and stock flow
Access: Manager role and above

Manufacturing Order (MO) Creation

1. Navigate: Production → MO's → Create New
2. Product: "Finished Widget A"
3. Quantity: 500 units
4. Due Date: 2026-06-15
5. Bill of Materials (BOM):
   - Component A: 2 units per FG
   - Component B: 1 unit per FG
   - Component C: 0.5 unit per FG
6. System calculates:
   - Component A required: 1,000 units
   - Component B required: 500 units
   - Component C required: 250 units
7. Click "Create MO"
8. MO Status: "Created" (awaiting authorization)

Production Receipt (Goods Completion)

1. Navigate: Production → Receipts → New Receipt
2. Manufacturing Order: "MO-2026-0147"
3. Qty Completed: 500 units
4. Variance: 0 units (no loss)
5. Production Date: 2026-06-08
6. Click "Post Receipt"
7. System performs:
   - Components issued from stock (reduces balance)
   - Finished product received (increases balance)
   - Cost flow calculated
   - GL entries created
8. Receipt Status: "Posted"

Workflow Examples

Example 1: Complete Sales-to-Cash Cycle

STEP 1: Create Customer
├─ Navigate to Customers
├─ Add: "Tech Solutions LLC"
├─ Set Credit Limit: 100,000 AED
└─ Save

STEP 2: Create Sales Invoice
├─ Navigate to Invoices
├─ Select Customer: "Tech Solutions LLC"
├─ Add Products:
│  ├─ Product A: 50 units @ 200 AED = 10,000 AED
│  └─ Product B: 100 units @ 150 AED = 15,000 AED
├─ Invoice Total: 25,500 AED (incl. 5% VAT)
├─ Invoice Created: INV-2026-00256
└─ Save

STEP 3: Record Partial Payment (15,000 AED)
├─ Navigate to Payments
├─ Select Invoice: INV-2026-00256
├─ Payment Method: "Bank Transfer"
├─ Amount: 15,000 AED
├─ Reference: "SWIFT-UAE-2026-5501"
├─ Record Payment
└─ Invoice Status: "Partially Paid"

STEP 4: Record Final Payment (10,500 AED)
├─ Remaining: 10,500 AED
├─ Payment Method: "Check"
├─ Check #: "CHQ-2026-1847"
├─ Record Payment
└─ Invoice Status: "Paid" ✓

STEP 5: View Trial Balance Impact
├─ Navigate to Reports → Trial Balance
├─ Accounts Updated:
│  ├─ Cash / Bank: +25,500 AED
│  ├─ Accounts Receivable: 0 AED (was 25,500)
│  ├─ Sales Revenue: +25,500 AED (Credit)
│  └─ VAT Payable: +1,275 AED (5% of sales)
└─ Report: BALANCED ✓

Example 2: Inventory Receipt & Stock Issue

STEP 1: Receive Purchase Order Goods
├─ Navigate to Stock Receipt
├─ PO Reference: "PO-2026-1105"
├─ Supplier: "Al-Khaleej Trading"
├─ Items:
│  ├─ Raw Material A: 1,000 KG @ 50 AED/KG = 50,000 AED
│  └─ Raw Material B: 500 KG @ 80 AED/KG = 40,000 AED
├─ Receipt Total: 90,000 AED
└─ Post Receipt

STEP 2: Issue Stock for Production
├─ Navigate to Stock Issue
├─ Manufacturing Order: "MO-2026-0512"
├─ Issue Details:
│  ├─ Raw Material A: 500 KG (for 250 units FG)
│  └─ Raw Material B: 250 KG (for 250 units FG)
├─ Cost Valuation: FIFO applied
│  ├─ Material A Cost: 25,000 AED
│  └─ Material B Cost: 20,000 AED
└─ Post Issue

STEP 3: Manufacturing Completion
├─ Navigate to Production Receipt
├─ MO Reference: "MO-2026-0512"
├─ Completed Quantity: 250 units (FG-Widget-A)
├─ Standard Cost per Unit: 180 AED
├─ Total Cost: 45,000 AED
└─ Post Receipt

STEP 4: Verify Inventory Balances
├─ Navigate to Inventory Report
├─ Raw Material A:
│  ├─ Opening: 1,000 KG
│  ├─ Issued: (500) KG
│  └─ Balance: 500 KG ✓
├─ Finished Good - Widget A:
│  ├─ Opening: 2,140 units
│  ├─ Received: +250 units
│  └─ Balance: 2,390 units ✓
└─ GL Impact:
   ├─ Raw Materials: 45,000 AED (reduced)
   ├─ WIP → Finished Goods: 45,000 AED (increased)
   └─ COGS: 0 (until sold)

Example 3: Payroll Processing Month-End

STEP 1: HR Review - Attendance & Leave
├─ Review Attendance Records
├─ Process Leave Requests
├─ Confirm All Timesheets
├─ Flag Anomalies (High Overtime, Unauthorized Absences)
└─ Approval Status: "Ready for Payroll"

STEP 2: Initialize Payroll Run
├─ Navigate to Payroll → Monthly Salary Run
├─ Period: May 2026
├─ Processing Date: 2026-05-30
├─ Employee Count: 45 active employees
└─ Click "Auto-Calculate"

STEP 3: System Calculates Each Employee
   Employee: Ahmed Al-Mansouri
   ├─ Basic Salary:           8,000 AED
   ├─ Housing Allowance:      2,000 AED
   ├─ Transport Allowance:    1,500 AED
   ├─ Overtime (8 hrs):       1,200 AED
   ├─ Gross Salary:          12,700 AED
   │
   ├─ Deductions:
   │  ├─ Health Insurance:      (350) AED
   │  ├─ Pension:               (600) AED
   │  └─ Tax (if applicable):     (0) AED
   ├─ Net Salary:            11,750 AED
   │
   └─ YTD Tracking:
      ├─ YTD Gross:         62,500 AED
      └─ YTD Net:           58,200 AED

STEP 4: Review & Approve
├─ Generate Payroll Summary Report
├─ Total Payroll Cost:      567,500 AED
├─ Total Deductions:         42,300 AED
├─ Total Net:               525,200 AED
├─ Review for Anomalies: ✓ Approved
└─ Click "Process Payroll"

STEP 5: Generate Documentation
├─ Individual Payslips (PDF for each employee)
├─ Payroll Register (complete list)
├─ Statutory Reports (Wages Summary, Benefits)
└─ Email Payslips to Employees (if configured)

STEP 6: GL Posting
├─ Create Journal Entry:
│  ├─ Debit: 5100 (Salaries Expense):    567,500 AED
│  ├─ Debit: 5110 (Payroll Tax):          42,300 AED
│  ├─ Credit: 2050 (Salary Payable):    (609,800) AED
│  └─ Net Impact on P&L:              (609,800) AED
├─ Post to GL
└─ Status: "Payroll Processed"

STEP 7: Payment Run
├─ Navigate to Payments → Salary Payment
├─ Select Processed Payroll
├─ Payment Method: "Bank Transfer"
├─ Total to Pay: 525,200 AED
├─ Batch Reference: "PAYROLL-2026-05-30"
├─ Prepare Bank File (SWIFT/ACH)
└─ Transfer Completed

Best Practices

Data Entry Best Practices

Task ✓ Do ✗ Don't
Customer Names Use full legal name Abbreviate or use shortcuts
Invoice Dates Use actual transaction date Use entry date for convenience
Quantities Verify with packing slip Estimate or round for speed
Payment Dates Match bank confirmation Use entry date
GL Accounts Use exact account code Guess or use similar account
Descriptions Clear reference info Leave blank or vague

Month-End Close Checklist

❑ Week 1:
  ❑ Process all customer invoices
  ❑ Record all customer payments received
  ❑ Reconcile bank statements
  ❑ Investigate outstanding receivables

❑ Week 2:
  ❑ Process all supplier invoices
  ❑ Record all supplier payments made
  ❑ Reconcile supplier statements
  ❑ Finalize stock count & adjustments

❑ Week 3:
  ❑ Process payroll for the month
  ❑ Prepare tax returns (VAT, Withholding)
  ❑ Review & approve all GL entries
  ❑ Reconcile GL balances to subsidiary ledgers

❑ Week 4:
  ❑ Generate Trial Balance (must balance)
  ❑ Prepare Financial Statements (P&L, Balance Sheet)
  ❑ Review variance analysis
  ❑ Archive month-end reports
  ❑ Lock down accounting period

Performance Optimization

For faster data loading: - Products list returns cached results (10,000+ items OK) - Invoices use company-scoped pagination (50 items per page) - Reports include date filters (don't load all historical data)

For reporting: - Export to CSV for Excel analysis (no 65K row limits) - Use Excel pivot tables for trend analysis - Schedule recurring reports via email


Troubleshooting

Common Issues & Solutions

Issue: "Cannot connect to API"

Error Message: "Failed to connect to BEXO API server"

Causes & Solutions:
1. Network connectivity
   └─ Check: ping <api-server-ip>
   └─ Firewall: Ensure port 5443 is open
   └─ VPN: If remote, verify VPN connection

2. API service not running
   └─ Check: Get-Service BEXO_API_Prod
   └─ Start: Start-Service BEXO_API_Prod
   └─ Restart: Restart-Service BEXO_API_Prod

3. SSL Certificate issue
   └─ Check: SSL cert not expired or self-signed issue
   └─ Allow: Trust self-signed cert on test systems
   └─ Install: Proper cert for production

Resolution: Restart WPF client after confirming API is running

Issue: "Login failed - Invalid credentials"

Causes & Solutions:
1. Wrong username/password
   └─ Verify: Confirm credentials with IT
   └─ Reset: Use admin console to reset password

2. User account disabled
   └─ Check: HR/Admin panel → Users → Status
   └─ Enable: Change user status from Inactive to Active

3. Wrong company selected
   └─ Note: Credentials must match company assignment
   └─ Verify: User assigned to selected company

Resolution: Confirm company assignment matches user's role

Issue: "Database connection error"

Error: "Unable to connect to BEXO_ERP database"

Causes & Solutions:
1. SQL Server service not running
   └─ Check: Get-Service MSSQLSERVER
   └─ Verify: SQL Server Configuration Manager

2. Database BEXO_ERP not exists
   └─ Restore: Restore from latest backup
   └─ Recreate: Contact IT/DBA

3. Connection string incorrect
   └─ Check: appsettings.json → ConnectionStrings
   └─ Format: Server=<ip>; Database=BEXO_ERP; ...

Resolution: Verify SQL Server service and database availability

Issue: "Slow invoice loading"

Cause: Large dataset or missing cache

Solutions:
1. Use pagination
   └─ Filter by date range (last 90 days)
   └─ Use company filter
   └─ Sort by date (descending, most recent first)

2. Clear application cache
   └─ Close & reopen WPF application
   └─ Clears in-memory cache (~2GB freed)

3. API performance
   └─ Check: API response time logs
   └─ Restart: Restart API service
   └─ Monitor: Watch server CPU/RAM usage

Resolution: Use date filters for historical invoice searches

Issue: "Duplicate invoice numbers being created"

Cause: Concurrent access or cache sync issue

Solutions:
1. Logout & login
   └─ Force refresh from server
   └─ Clear local cache

2. Check invoice number sequence
   └─ Reports → Invoice Register
   └─ Verify: No gaps or duplicates
   └─ Reset: Contact admin if corrupted

3. Network latency
   └─ Ensure: Stable connection to API
   └─ Reduce: Number of concurrent users
   └─ Upgrade: Network infrastructure if bottleneck

Resolution: Maintain single user session per operator

System Administration

Backup & Recovery

Automated Daily Backups:

Schedule:     Daily at 02:00 AM (Server local time, UAE UTC+4)
Backup Type:  FULL DATABASE + RESTORE VERIFYONLY
Location:     C:\Backups\BEXO_SQL\ (on server)
              \\<NAS>\BEXO_Deploy\db_backups\ (off-box copy)
Retention:    7-day rolling window (oldest auto-deleted)

Recovery Procedure:

# 1. List available backups
Get-ChildItem C:\Backups\BEXO_SQL\ | Sort -Property LastWriteTime -Descending

# 2. Stop the API
Stop-Service BEXO_API_Prod

# 3. Restore database
RESTORE DATABASE BEXO_ERP
FROM DISK = 'C:\Backups\BEXO_SQL\BEXO_ERP_2026-05-30_02-00.bak'
WITH REPLACE, RECOVERY

# 4. Restart API
Start-Service BEXO_API_Prod

# 5. Verify
Invoke-RestMethod -Uri "https://localhost:5443/api/health" -SkipCertificateCheck

Health Monitoring

Health Check (runs every 5 minutes):

Endpoint: GET /api/health
Response: { "status": "Healthy", "timestamp": "2026-05-30T10:15:30Z" }

Alert Log: C:\Tools\logs\bexo_alerts.log

On Failure:
1. Automatic API restart (3 attempts, 80s between attempts)
2. Health check repeated after restart
3. Alert logged with timestamp & error details
4. Administrator notified (if email configured)

User Management

Admin Tasks:
├─ Create/Disable User Accounts
├─ Assign Roles (SuperAdmin, Admin, Manager, User, Design)
├─ Assign Company Access
├─ Reset Passwords
├─ View Audit Logs (who accessed what, when)
└─ Configure Email Settings for Reports

Document History

Version Date Changes Author
1.0 2026-05-30 Initial comprehensive guide BEXO Team

Support & Contact

For technical support: - Email: [email protected] - Internal IT: extension 2000 - Emergency: After-hours contact on phone directory


END OF USER GUIDE