Table of Contents
- Introduction & System Overview
- Roles, Login & Getting Started
- User Management (UM) Locked
- Customer Management (CM)
- Contract Management (CO)
- Service Request & Work Order (SR) Core
- Asset Management (AM)
- Field Scheduling (FS)
- Inventory (IV)
- Preventive Maintenance (PPM)
- Finance & Invoicing (FI)
- CRM Web
- Customer Portal (CP)
- Common Page Operations
- Status & Notification Reference
- Troubleshooting
- Glossary
Introduction & System Overview
The MasGen ProDONE CMMS is an enterprise-class Computerised Maintenance Management platform that runs the full operational lifecycle — from customer onboarding to contract definition, service requests, work-order dispatch, asset history, inventory, preventive maintenance, invoicing and customer self-service — all on a single SQL-Server-backed engine.
Every read & write goes through a named stored procedure — predictable, auditable, no LINQ surprises.
Menus, sub-menus and actions gated by role privileges. SuperAdmin sees everything; other roles are scoped.
.NET 9 Blazor with SignalR for live updates. Dispatch board, dashboards and forms refresh in real time.
A row-level-secured portal so each customer sees only their own products, complaints & service history.
Module catalogue
| Code | Module | Purpose |
|---|---|---|
UM | User Management | Auth, roles, departments, designations, menus, audit log |
CM | Customer Management | Customers, sites, contacts, categories, 360° view |
CO | Contract Management | Contracts, SLA tiers, asset coverage, renewals |
SR | Service Request & Work Order | SR lifecycle, WO state machine, dispatch board |
AM | Asset Management | Assets, hierarchy, QR codes, condition log, documents |
FS | Field Scheduling | Technicians, availability, timesheet, calendar |
IV | Inventory | Warehouses, parts, stock movements, van stock, requisitions |
PPM | Preventive Maintenance | Schedules, checklists, auto-generated WOs |
FI | Finance & Invoicing | Invoices, lines, credit notes, payments, aged receivables |
CRM | CRM Web | Live operational dashboards, complaints, processing inbox |
CP | Customer Portal | Self-service: my purchases, service history, raise complaint |
Architecture
SP_CF_MasGen_CMMS_{Module}_{Table}_{Op}; business-logic SPs are DevSP_CF_MasGen_CMMS_{Module}_{Name}. Every table has {Table}Id, IsActive BIT and LastUpdatedDateTime DATETIME2.Document numbering
| Document | Format | Example |
|---|---|---|
| Customer Code | CUST-{YYMMDD}-{NNNN} | CUST-260507-0042 |
| Contract Code | CON-{YYYY}-{NNN} | CON-2026-007 |
| Service Request | SR-{YYYY}-{NNNNN} | SR-2026-00123 |
| Work Order | WO-{YYYY}-{NNNNN} | WO-2026-00041 |
| PPM Work Order | PPM-{YYYY}-{NNNNN} | PPM-2026-00012 |
| Invoice | INV-{YYYY}-{NNNNN} | INV-2026-00005 |
| Credit Note | CN-{YYYY}-{NNNN} | CN-2026-0002 |
| Asset | AST-{YYYY}-{NNNNN} | AST-2026-00078 |
| Purchase Requisition | PR-{YYYY}-{NNNN} | PR-2026-0011 |
Roles, Login & Getting Started
Roles at a glance
| Role | Default access | Typical scope |
|---|---|---|
| SuperAdmin | Full | Full system & UM administration |
| Operations Manager | Modules: SR, WO, AM, FS, CRM | Manages SRs, WOs, contracts, dispatch board |
| Customer Service Rep | CM, SR, CRM | Onboards customers, raises SRs, handles inbox |
| Technician | WO (own), FS | Works assigned WOs, clocks in/out, completes |
| Maintenance Planner | PPM, AM | Creates and tunes preventive maintenance schedules |
| Storekeeper | IV | Records stock movements, raises requisitions |
| Finance Officer | FI | Approves invoices, records payments, monitors ageing |
| Customer (Portal) | CP only | Views own assets, history, raises complaints |
Login screen
Forgot password? Contact your administrator.
What to do on first login
- SuperAdmin — change the default password and review the seeded role privileges in
/rolemngaddbtn. - SuperAdmin — confirm the 11 module groups appear in the left sidebar.
- Other users — you'll only see the modules entitled to your role. If something's missing, ask your admin.
Layout you'll see on every page
Module navigation — main groups expand to show sub-pages.
Title, description and breadcrumb showing your current location. Click the icon to compress.
Most CRUD pages — the form panel adds/edits, the table panel lists. Both can be collapsed.
Save / delete / error messages appear at the top of the page in coloured banners.
User Management (UM)
Locked ModuleUM is the foundation of the platform. It controls authentication, role-based menus, departments, designations, employees and the audit trail. The UM module is intentionally locked — its tables and SPs are stable and should not be customised.
Pages & routes
| Page | Route | Use it for |
|---|---|---|
| User Management | /usermanagement | Create / edit / deactivate users, set role |
| Department | /Department | Lookup — department names |
| Designation | /MasterDesignation | Lookup — job titles |
| Employee List | /emplist | Card-grid of employees with photos |
| Role Management | /rolemanagement | Define roles |
| Role Privileges | /rolemngaddbtn | Grant submenus to roles |
| Audit Log | /auditlog | System-wide audit trail (read-only) |
Common actions
Create a user
- Open User Management → User Management.
- Click + Add User.
- Fill First Name, Last Name, Email, Mobile, Department, Designation.
- Pick a Role from the dropdown.
- Click Save. A login + invite are created.
Grant a sub-menu to a role
- Open Role Management - Add.
- Select the role in the dropdown.
- Tick the sub-menus the role should access.
- Click Save. Users with that role see the new menus on next login.
Customer Management (CM)
Onboard and maintain the master record of every customer. CM stores the organisational header, plus child records for service sites and contact persons.
Pages & routes
| Page | Route | Use it for |
|---|---|---|
| Customers | /customers | List, create, edit, delete customers |
| Customer 360 | /customer360?id={id} | Full profile: header, sites, contacts |
| Customer Sites | /customer-sites | Service locations |
| Customer Contacts | /customer-contacts | Named contact persons |
| Customer Categories | /customer-categories | Lookup — Premium / Std / etc. |
Onboard a new customer
- Open Customer Management → Customers.
- Leave Customer Code blank — system auto-generates it.
- Fill Name, Type; CRN/TRN required for Corporate.
- Click Save. The system runs a duplicate check (name + phone + CRN) and warns you of possible matches.
- The new customer immediately appears in the list on the right.
Customer 360
Click 360 on any row to see a tabbed view: Overview, Sites, Contacts, Open SR count, Active Contracts, Outstanding Invoices.
Contract Management (CO)
Defines what's covered, when and at what SLA. Contracts gate every service request: when an SR is raised, the system looks up the customer's active contract for SLA timing.
Contract types
Fixed annual fee. Comprehensive coverage, all-inclusive labour and parts subject to fair-use.
Per-event billing. Used for ad-hoc service or when AMC isn't economical.
Hourly rate plus parts cost. Useful for installation projects.
Coverage during the manufacturer warranty period — typically zero-cost to customer.
SLA tiers — example
| Priority | Response | Resolution |
|---|---|---|
| Critical | 1 hr | 4 hrs |
| High | 4 hrs | 24 hrs |
| Medium | 8 hrs | 72 hrs |
| Low | 24 hrs | 168 hrs |
Renewal alerts
Open Contract Management → Expiry Alerts. Choose a window (7 / 15 / 30 / 60 / 90 days) and the page lists every contract expiring within it. Each row shows days-to-expiry colour-coded:
- Red — < 7 days, urgent renewal needed
- Amber — 7–30 days, plan the renewal call
- Blue — 30–90 days, informational
ValidateCoverage — change status to Active before go-live.Service Request & Work Order (SR)
Operational CoreThe operational heart of the platform. Every customer issue is logged as a Service Request (SR); when work is needed on-site it is converted to one or more Work Orders (WO), assigned to technicians, and progressed through a state machine until completion.
Work Order state machine
Cancelled is reachable from any pre-Completed status.
SR & WO end-to-end pipeline
- Customer reports an issue — phone, email or via Customer Portal.
- CSR raises an SR on
/service-requests— system runsDevSP_..._CreateSR, looks up active contract, returns Coverage =Covered/NotCovered. - Convert SR to WO on
/work-orders— system generates WO Number (WO-2026-NNNNN), moves SR to In Progress. - Assign technician — naive double-book check (same tech ± 60 mins).
- Update status — only legal transitions allowed; every move logged in
WorkOrderHistory. - Complete — labour, parts, customer signature (≥ 10 chars). Triggers invoice generation if T&M / PPV.
Raise an SR — form
Dispatch board
Open SR & WO → Dispatch Board. The grid shows all WOs in the next 7 days (default), grouped by date and technician. Use it to spot gaps and re-balance load.
| Day | Tech | WO # | Customer | Status | Time | Problem |
|---|---|---|---|---|---|---|
| 2026-05-07 | TECH-001 | WO-2026-00041 | Greenfield Hospital | In Progress | 11:00 | AC not cooling |
| 2026-05-07 | TECH-002 | WO-2026-00042 | Royal Tower FM | On Hold | 14:00 | Lift drive failure |
| 2026-05-08 | TECH-001 | WO-2026-00043 | Anjali Sharma | Assigned | 09:30 | Routine check |
WorkOrders.CustomerSignature as proof of work.Asset Management (AM)
The asset registry. Every piece of equipment your business services lives here — with full hierarchy (Site → Building → Floor → Room), QR codes, condition history, and supporting documents.
Pages & routes
| Page | Route | Use it for |
|---|---|---|
| Assets | /assets | Register / list / edit assets, generate QR |
| Asset Hierarchy | /asset-hierarchy | Maintain the location tree |
| Condition Log | /asset-conditions | Record condition ratings 1–5 |
| Asset Documents | /asset-documents | Manuals, warranty cards, inspection reports |
Build the location tree first
└── Building: Tower A
├── Floor: Ground → Room: Reception
└── Floor: First → Rooms: Operating Theatre 1, Pharmacy
Register an asset
- Build the location hierarchy first (Site → Building → Floor → Room) on
/asset-hierarchy. - Open Asset Management → Assets.
- Fill: Customer, Description, Make, Model, Serial No, Install Date, Warranty Expiry.
- Click Save. Asset Code (
AST-2026-NNNNN) is auto-generated. - Click Gen QR on the row — a QR payload is generated and stored.
Condition rating colour code
- 1 — Critical — equipment in unsafe condition, immediate intervention needed
- 2 — Poor — degraded; schedule major service
- 3 — Fair — within tolerance; routine maintenance only
- 4 — Good — operating well
- 5 — Excellent — like new
Field Scheduling (FS)
Manages the people doing the field work — technicians, daily availability, timesheets, and your business' working calendar.
Availability statuses
Onboard a technician
- Open Field Scheduling → Technicians.
- Link to a UM User Id (technician must already be a UM user).
- Fill Employee Code, Skills (e.g. "HVAC, Electrical"), Certifications, Zone Coverage.
- Save.
TechnicianId, not the UM UserId. Double-check before assigning.
Inventory (IV)
Tracks parts, where they are stored (warehouse vs. van stock), every stock movement, and reorder levels. Integrated with WO completion — parts consumed on a WO trigger automatic stock-out entries.
Stock-in / Stock-out
Stock-in
- From
/stock-ledger, set Type = In. - Enter Part, Warehouse, Qty (must be > 0), GRN reference.
- Stock Balance updates immediately.
- No upper limit; the warehouse can receive any quantity.
Stock-out
- From
/stock-ledger, set Type = Out. - System runs balance check — blocks negative stock with message "Insufficient stock (balance N)".
- WO Reference is recommended — joins inventory to the work order.
- Auto-flags the part as BelowReorder if balance ≤ ReorderLevel.
Reorder watch
| Code | Description | Warehouse | Balance | Reorder | Status |
|---|---|---|---|---|---|
| P-FLT-01 | AC Filter | MW-01 | 48 | 20 | OK |
| P-CAP-01 | Capacitor 35µF | MW-01 | 5 | 10 | Below Reorder |
| P-OIL-01 | Compressor Oil 1L | MW-01 | 10 | 5 | OK |
Preventive Maintenance (PPM)
Define recurring maintenance schedules per asset. The system auto-generates Work Orders when each schedule is due, with checklists tied to that schedule.
Frequency options
- Daily — high-criticality production assets
- Weekly — front-line equipment
- Monthly — most common cadence
- Quarterly — typical for HVAC, lifts
- Annual — major overhauls, regulatory inspections
How auto-generation works
DevSP_..._PPM_GenerateWorkOrders → For every schedule with NextDueDate ≤ today: insert PPM WO, advance NextDueDate by frequency
PPM Compliance dashboard
Finance & Invoicing (FI)
Generates invoices from completed Work Orders, manages credit notes and payment receipts, and produces an aged-receivables view for collections.
Invoice lifecycle
Auto-generate from a WO
- WO is completed (status = Completed). Trigger: explicit "Generate Invoice" or part of WO completion.
- System reads
WorkOrderLabour+WorkOrderPartsfor the WO. - Builds a Draft invoice with one Labour line (hours × $50) and one Parts line.
- Computes Sub-total, Tax (5%), Total. Due Date = today + 30 days.
- Finance officer reviews, clicks Approve — status moves to Approved.
Aged receivables
| Bucket | Rule | Action |
|---|---|---|
| Current | Not yet due | None — awaiting due date |
| 0–30 | Days past due ≤ 30 | First reminder |
| 31–60 | 31–60 days | Manager call |
| 61–90 | 61–90 days | Formal escalation |
| 90+ | Over 90 days | Collections / legal |
CRM Web
Live operational dashboards for Customer Service Reps and Operations Managers — KPIs, complaint queue, and processing inbox.
Dashboard KPIs
Processing inbox
Open CRM Web → Processing Inbox. SRs are sorted by Priority (Critical first) then by RaisedAt — top of the list is always the most urgent oldest open item. Work it first.
Customer Portal (CP)
A self-service portal for customers — view registered products, see service history, and raise complaints without phoning the help desk. Row-level security at the SP layer ensures each customer sees only their own data.
What the customer sees
Asset Code, Description, Install Date, Warranty Expiry, Warranty Status (Active / Expired / No Warranty).
Every previous SR with status badge and dates — newest first.
Asset picker (filtered to own products), category, description. SR Number returned on submit.
@CustomerId and filters all reads by it. Even if the API endpoint is reachable, a customer cannot see another customer's data.Common Page Operations
These conventions are consistent across the application. Once you've done them on one page, you've done them on all.
Status badge colour reference
| Colour | Examples | Meaning |
|---|---|---|
| Active | Active, Paid, Excellent, Available | Healthy / on-track |
| In Progress | In Progress, In Setup | Currently executing |
| On Hold | On Hold, Expired, High Load, Below Reorder | Attention needed but not critical |
| Cancelled | Cancelled, Critical, Failed, Insufficient stock | Action required / blocked |
| Draft | Draft, New | Pre-launch / not yet active |
| Closed | Closed | Archived / final |
Soft delete vs hard delete
IsActive = 0). Records disappear from lists but remain in the database for audit. Hard delete is not exposed via the UI.Auto-generated codes
Anywhere you see a code field (Customer Code, Asset Code, SR Number, WO Number, Invoice Number, etc.), leave it blank to let the system generate per the document numbering convention in chapter 1.
Status & Notification Reference
Service Request status
| Status | Badge | Meaning |
|---|---|---|
| New | New | Just raised. Awaiting WO conversion. |
| In Progress | In Progress | Converted to one or more WOs. |
| Completed | Completed | All linked WOs completed. |
| Cancelled | Cancelled | Customer or admin cancelled. |
Work Order status
| Status | Badge | Meaning |
|---|---|---|
| New | New | WO created without a tech assignment. |
| Assigned | Assigned | Technician assigned, awaiting start. |
| In Progress | In Progress | Technician is on site / working. |
| On Hold | On Hold | Pending parts / customer / decision. |
| Completed | Completed | Done — labour, parts, signature recorded. |
| Closed | Closed | Final, archived. No more changes. |
| Cancelled | Cancelled | Cancelled before completion. |
Invoice status
| Status | Badge | Meaning |
|---|---|---|
| Draft | Draft | Generated, awaiting Finance approval. |
| Approved | Approved | Approved & dispatched to customer. |
| Partly Paid | Partly Paid | One or more payments recorded but balance > 0. |
| Paid | Paid | Cumulative payments ≥ TotalAmount. |
| Cancelled | Cancelled | Voided. |
Troubleshooting
| Symptom | Most likely cause / fix |
|---|---|
| I can't see a menu I expect | Your role lacks privileges for that submenu. Ask SuperAdmin to grant via /rolemngaddbtn. |
| "Insufficient stock" on save | Stock-out exceeds warehouse balance. Check /stock-balance; reduce qty or stock-in first. |
| "Illegal status transition" | The WO state machine doesn't allow that move. Refer to chapter 6 for legal next-states. |
| "Customer signature mandatory" on Complete | Signature must be ≥ 10 chars (text or base64). Have the customer sign on the technician's tablet. |
| PPM WOs not auto-generating | SQL Agent job for DevSP_..._PPM_GenerateWorkOrders is disabled or failed. Re-enable + re-run. |
| Duplicate customer warning blocking save | It's only a warning — refine input slightly or click into the matching record to edit it. |
| Generated QR doesn't scan to right page | QR encodes /assets/bycode/{AssetCode}. Confirm reverse proxy / DNS routes that path. |
| Connection refused on FE | Confirm WebAPI is running and FE's HostServerURL in appsettings.json matches API URL. |
| Login works but home page is blank | Same as menu issue — your role has no menus assigned. SuperAdmin must grant. |
| "I deleted by mistake" | UI only soft-deletes. SuperAdmin can restore via direct SQL UPDATE. No data is physically lost. |
Glossary
| Term | Definition |
|---|---|
| AMC | Annual Maintenance Contract — fixed-fee comprehensive cover. |
| PPV | Pay-per-Visit contract — billed per service event. |
| T&M | Time & Materials — billed at hourly rate plus parts cost. |
| SLA | Service Level Agreement — committed response/resolution times by priority. |
| SR | Service Request — the customer-reported issue. |
| WO | Work Order — a unit of field work derived from one SR. |
| PPM | Preventive Maintenance — scheduled, proactive servicing. |
| CRN/TRN | Commercial Registration / Tax Registration Number — corporate identity. |
| Soft delete | Marking a row IsActive = 0 rather than physically removing it. |
| Coverage | Whether a customer/asset is currently under an active contract. |
| Reorder level | Minimum stock balance below which a part should be reordered. |
| Aged receivables | Outstanding invoice amounts bucketed by days overdue. |
| Dispatch board | Day-by-day grid of work assigned to each technician. |
| Van stock | Parts the technician carries on their service vehicle. |
| State machine | The legal sequence of statuses an SR / WO can move through. |
| DevSP | Business-logic stored procedure (as opposed to a CRUD SP). |
| Row-level security | The portal restricts each customer to their own data via @CustomerId. |