@page "/compliance" @using System.Collections.Generic @using System.Linq @using System.Threading.Tasks @rendermode InteractiveServer
@* Page Header Area *@

Compliance & Policy Control

Audit travel approvals, verify National Treasury compliance, and review POPIA privacy safeguards

@* Alert / Feedback Notification Banner *@ @if (!string.IsNullOrEmpty(AlertFeedback)) {
@AlertFeedback
} @* Scorecard Grid *@
Overall Compliance Rating
@OverallCompliance%
National Treasury compliant
POPIA Security Safeguards
Fully Certified
ISO 27001 active framework
Bookings Outside Policy
@OutsidePolicyCount
Requires CFO/Exec approval
Open Policy Anomalies
@AnomaliesCount
Requires instant review
@* Compliance split layout *@
@* Card 1: Scorecard & metrics *@

SAQA Travel Compliance Scorecard

Live index measurements against SAQA policy rules and National Treasury Instruction No. 03

@* Metric 1 *@
POPIA Privacy Compliance 100% compliant

AES 256 bit encryption on travel documents & traveller records at rest & in transit.

@* Metric 2 *@
Cabin Class Limits Adherence 96% adherence

Economy limit enforced strictly. Exceptional premium cabins tracked & logged.

@* Metric 3 *@
Hotel Rate Matrix Compliance 78% compliance

Ensures 3 quotes per booking. Handful of peak-season bookings bypassed limit matrix.

@* Metric 4 *@
After-Hours Support SLA Response 98% performance

Emergency consultant call backs resolved in less than 15 minutes.

Sourced from GDS telemetry sync logs Updated May 2026
@* Card 2: Exceptions and Flags *@

Exceptions & Flagged Bookings

Real-time alerts requiring human justification & executive approval

Active Review
@foreach (var exc in ExceptionsList) {
@if (exc.IsCritical) { } else { }

@exc.Title

@exc.Date

@exc.Description

Justification: @exc.Justification

Owner: @exc.Traveller
@if (exc.Status == "Pending") { } else { @exc.Status }
}

Flagged records automatically route alerts to executive dashboards upon booking completion.

@* Compliance and Policy Library Grid Sections *@
@* Security compliance cards - left side (lg:col-span-8) *@

Travel Data Privacy & Cyber Safeguards

POPIA compliance rules and robust data protection standards configured across platforms

ISO 27001
@* Safeguard 1 *@

AES 256 Data Encryption

All passports, reward accounts, and credit card frameworks are shielded securely using military-grade AES-256 standard protocols.

@* Safeguard 2 *@

POPIA Information Safeguards

Strict privacy protocols verified. Consent tracking is logged on every user profile activation, complying with South African privacy laws.

@* Safeguard 3 *@

7-Year Audit Trail Retained

Every booking, approval, modifier, or exception justification is timestamped and archived safely for external AGSA auditing purposes.

@* Safeguard 4 *@

ISO 27001 Certified Host

Data is hosted inside secure data centers. Monitored 24/7 with strict failover controls.

@* Compliance reports generator - right side (lg:col-span-4) *@

Standard SLA Report Outputs

Export standard compliance matrices & cost containment breakdowns

@* Report row 1 *@
National Treasury Matrix
Instruction 03 compliance logs
@* Report row 2 *@
POPIA Privacy Compliance Audit
Access log validation reports
@* Report row 3 *@
Executive Class Upgrade Log
Exemptions log with justifications
@* Report row 4 *@
Standard Monthly SLA Review
Performance vs target response matrix

Report metrics cover SAQA travel spend data for the May 2026 reporting cycle.

@* ===================== MODAL DIALOGS ===================== *@ @* 1. Policy Library Reference Modal *@ @if (ShowPolicyLibraryModal) {

SAQA Travel Policy Library

Authorized compliance guidelines and cap matrices

All bookings generated must comply with SAQA corporate governance policy and National Treasury frameworks. Exceptions require written CFO sign-off prior to ticketing.
1. Airline Cabin Restrictions

All local, regional, and international travel bookings are restricted to Economy Cabin flights. Premium Economy or Business classes require verified medical justifications from Human Resources, approved by the Chief Financial Officer.

2. Accommodation Rate Matrices

Maximum nightly accommodation rates are aligned strictly with National Treasury Instruction No. 03 of 2016/17 (Cape Town maximum cap: R 1,900/night; Johannesburg: R 1,650/night). Minimum of 3 competitive quotes must be processed by the corporate booking tool prior to checkout.

3. Ground Transportation Caps

Car rental class is capped at Group B vehicles (e.g. automatic compact). Shuttles should be booked through verified pre-authorized local transfer vendors. Personal extension days differential billing is strictly monitored.

4. Foreign Exchange & Per Diems

Daily travel allowances (per diems) are aligned with SARS guidelines for overseas destinations. Expenses must be OCR-submitted and synced within 7 working days post-trip completion.

} @code { // Exception class model representation public class TravelException { public int Id { get; set; } public string Title { get; set; } = string.Empty; public string Date { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public string Justification { get; set; } = string.Empty; public string Traveller { get; set; } = string.Empty; public string Status { get; set; } = "Pending"; public bool IsCritical { get; set; } } // Core States private int OverallCompliance { get; set; } = 94; private int OutsidePolicyCount { get; set; } = 7; private int AnomaliesCount { get; set; } = 2; private string AlertFeedback { get; set; } = string.Empty; // Modal control private bool ShowPolicyLibraryModal { get; set; } = false; // Database arrays private List ExceptionsList { get; set; } = new(); protected override void OnInitialized() { // Populate pre-loaded Exceptions & Policy alerts matching GDS parameters ExceptionsList = new List { new TravelException { Id = 1, Title = "Cabin Class Upgrade (BA JNB to LHR)", Date = "14 May 2026", Description = "T. Maluleke booked Premium Economy cabin on British Airways JNB-LHR route.", Justification = "Medical reasons verified by SAQA HR and confirmed by executive CFO. Approved cabin class exception.", Traveller = "T. Maluleke", Status = "Approved", IsCritical = false }, new TravelException { Id = 2, Title = "Hotel Rate Bypassed Limits (Cape Town Engagement)", Date = "22 May 2026", Description = "J. Mokoena nightly rate processed at R 2,400 per night vs maximum NT Cap matrix of R 1,900.", Justification = "Peak season business engagement at Waterfront. No alternative hotels available within standard NT limits on short notice.", Traveller = "J. Mokoena", Status = "Pending", IsCritical = true }, new TravelException { Id = 3, Title = "Leisure Extension differential check", Date = "20 May 2026", Description = "S. Pillay added 2 non-working personal days to domestic Durban travel itinerary.", Justification = "Weekend stay extension. Airfare price differential & weekend hotel lodging billed personally to coordinator account.", Traveller = "S. Pillay", Status = "Approved", IsCritical = false } }; } // Interactive Exception Approvals private void AuthorizeException(int id) { var exc = ExceptionsList.FirstOrDefault(e => e.Id == id); if (exc != null) { exc.Status = "Approved"; if (exc.IsCritical) { AnomaliesCount = System.Math.Max(0, AnomaliesCount - 1); OverallCompliance = System.Math.Min(100, OverallCompliance + 2); } TriggerFeedback($"Exception justification authorized successfully for {exc.Traveller}. Compliance indices recalculated."); } } private void RejectException(int id) { var exc = ExceptionsList.FirstOrDefault(e => e.Id == id); if (exc != null) { exc.Status = "Rejected"; if (exc.IsCritical) { AnomaliesCount = System.Math.Max(0, AnomaliesCount - 1); } TriggerFeedback($"Exception justification rejected for {exc.Traveller}. Compliance violation flagged for PO settlement collection."); } } // Compliance Audit trigger private async Task TriggerFullComplianceAudit() { TriggerFeedback("Analyzing Sync Logs... Querying 142 Active GDS PNR entries for policy compliance."); await Task.Delay(1800); OverallCompliance = 96; AnomaliesCount = ExceptionsList.Count(e => e.Status == "Pending"); OutsidePolicyCount = ExceptionsList.Count; TriggerFeedback("Compliance Telemetry Scan Finished! 94% overall compliance rate recalculated across all May 2026 travel bookings. All flags archived."); } // Report Downloads simulation private void TriggerReportDownload(string reportName) { TriggerFeedback($"Compiling dataset... {reportName} download queued. System auto-generating document structure."); } // Modal Helpers private void OpenPolicyLibraryModal() { ShowPolicyLibraryModal = true; } private void ClosePolicyLibraryModal() { ShowPolicyLibraryModal = false; } // Feedback alert triggered toaster private void TriggerFeedback(string message) { AlertFeedback = message; _ = DismissAlertAfterDelay(); } private async Task DismissAlertAfterDelay() { await Task.Delay(5000); AlertFeedback = string.Empty; StateHasChanged(); } }