MasGen ProDONE CMMS

Computerised Maintenance Management — User Manual

Version 1.0  |  May 2026  |  MasGen Innovations

11 Modules · 54 Tables · 344 Stored Procedures · 47 Razor Pages
01

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.

SP-driven core

Every read & write goes through a named stored procedure — predictable, auditable, no LINQ surprises.

RBAC by design

Menus, sub-menus and actions gated by role privileges. SuperAdmin sees everything; other roles are scoped.

Blazor Server UI

.NET 9 Blazor with SignalR for live updates. Dispatch board, dashboards and forms refresh in real time.

Customer self-service

A row-level-secured portal so each customer sees only their own products, complaints & service history.

Module catalogue

CodeModulePurpose
UMUser ManagementAuth, roles, departments, designations, menus, audit log
CMCustomer ManagementCustomers, sites, contacts, categories, 360° view
COContract ManagementContracts, SLA tiers, asset coverage, renewals
SRService Request & Work OrderSR lifecycle, WO state machine, dispatch board
AMAsset ManagementAssets, hierarchy, QR codes, condition log, documents
FSField SchedulingTechnicians, availability, timesheet, calendar
IVInventoryWarehouses, parts, stock movements, van stock, requisitions
PPMPreventive MaintenanceSchedules, checklists, auto-generated WOs
FIFinance & InvoicingInvoices, lines, credit notes, payments, aged receivables
CRMCRM WebLive operational dashboards, complaints, processing inbox
CPCustomer PortalSelf-service: my purchases, service history, raise complaint

Architecture

Browser (Blazor Server UI)WebAPI (Controllers)BFL → BLL → DALSQL Server (Stored Procedures)
Naming convention. CRUD SPs are 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

DocumentFormatExample
Customer CodeCUST-{YYMMDD}-{NNNN}CUST-260507-0042
Contract CodeCON-{YYYY}-{NNN}CON-2026-007
Service RequestSR-{YYYY}-{NNNNN}SR-2026-00123
Work OrderWO-{YYYY}-{NNNNN}WO-2026-00041
PPM Work OrderPPM-{YYYY}-{NNNNN}PPM-2026-00012
InvoiceINV-{YYYY}-{NNNNN}INV-2026-00005
Credit NoteCN-{YYYY}-{NNNN}CN-2026-0002
AssetAST-{YYYY}-{NNNNN}AST-2026-00078
Purchase RequisitionPR-{YYYY}-{NNNN}PR-2026-0011
02

Roles, Login & Getting Started

Roles at a glance

RoleDefault accessTypical scope
SuperAdminFullFull system & UM administration
Operations ManagerModules: SR, WO, AM, FS, CRMManages SRs, WOs, contracts, dispatch board
Customer Service RepCM, SR, CRMOnboards customers, raises SRs, handles inbox
TechnicianWO (own), FSWorks assigned WOs, clocks in/out, completes
Maintenance PlannerPPM, AMCreates and tunes preventive maintenance schedules
StorekeeperIVRecords stock movements, raises requisitions
Finance OfficerFIApproves invoices, records payments, monitors ageing
Customer (Portal)CP onlyViews own assets, history, raises complaints

Login screen

MasGen CMMS — Sign In
superadmin
••••••••
Sign In

Forgot password? Contact your administrator.

What to do on first login

  1. SuperAdmin — change the default password and review the seeded role privileges in /rolemngaddbtn.
  2. SuperAdmin — confirm the 11 module groups appear in the left sidebar.
  3. 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

Left sidebar

Module navigation — main groups expand to show sub-pages.

Top header bar

Title, description and breadcrumb showing your current location. Click the icon to compress.

Form-on-left, list-on-right

Most CRUD pages — the form panel adds/edits, the table panel lists. Both can be collapsed.

Inline alerts

Save / delete / error messages appear at the top of the page in coloured banners.

03

User Management (UM)

Locked Module

UM 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

PageRouteUse it for
User Management/usermanagementCreate / edit / deactivate users, set role
Department/DepartmentLookup — department names
Designation/MasterDesignationLookup — job titles
Employee List/emplistCard-grid of employees with photos
Role Management/rolemanagementDefine roles
Role Privileges/rolemngaddbtnGrant submenus to roles
Audit Log/auditlogSystem-wide audit trail (read-only)

Common actions

Create a user

  1. Open User Management → User Management.
  2. Click + Add User.
  3. Fill First Name, Last Name, Email, Mobile, Department, Designation.
  4. Pick a Role from the dropdown.
  5. Click Save. A login + invite are created.

Grant a sub-menu to a role

  1. Open Role Management - Add.
  2. Select the role in the dropdown.
  3. Tick the sub-menus the role should access.
  4. Click Save. Users with that role see the new menus on next login.
Do not touch UM tables directly. The seeded SuperAdmin role is what holds the system together — every other module relies on UM for menu wiring.
04

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

PageRouteUse it for
Customers/customersList, create, edit, delete customers
Customer 360/customer360?id={id}Full profile: header, sites, contacts
Customer Sites/customer-sitesService locations
Customer Contacts/customer-contactsNamed contact persons
Customer Categories/customer-categoriesLookup — Premium / Std / etc.

Onboard a new customer

Add Customer
CUST-260507-0042
Greenfield Hospital
Corporate
CRN-100001
050-1234567
ops@greenfield.example
Premium
Save
  1. Open Customer Management → Customers.
  2. Leave Customer Code blank — system auto-generates it.
  3. Fill Name, Type; CRN/TRN required for Corporate.
  4. Click Save. The system runs a duplicate check (name + phone + CRN) and warns you of possible matches.
  5. The new customer immediately appears in the list on the right.
💡 Tip: The duplicate check is a soft warning — you can still proceed. Use the warning to either refine the input or click into the existing record instead.

Customer 360

Click 360 on any row to see a tabbed view: Overview, Sites, Contacts, Open SR count, Active Contracts, Outstanding Invoices.

05

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

AMC — Annual Maintenance

Fixed annual fee. Comprehensive coverage, all-inclusive labour and parts subject to fair-use.

PPV — Pay-per-Visit

Per-event billing. Used for ad-hoc service or when AMC isn't economical.

T&M — Time & Materials

Hourly rate plus parts cost. Useful for installation projects.

Warranty

Coverage during the manufacturer warranty period — typically zero-cost to customer.

SLA tiers — example

PriorityResponseResolution
Critical1 hr4 hrs
High4 hrs24 hrs
Medium8 hrs72 hrs
Low24 hrs168 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
Active vs. Draft. Only Active contracts gate SR coverage. Draft contracts do not appear in ValidateCoverage — change status to Active before go-live.
06

Service Request & Work Order (SR)

Operational Core

The 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

New
Assigned
In Progress
On Hold
Completed
Closed

Cancelled is reachable from any pre-Completed status.

SR & WO end-to-end pipeline

  1. Customer reports an issue — phone, email or via Customer Portal.
  2. CSR raises an SR on /service-requests — system runs DevSP_..._CreateSR, looks up active contract, returns Coverage = Covered / NotCovered.
  3. Convert SR to WO on /work-orders — system generates WO Number (WO-2026-NNNNN), moves SR to In Progress.
  4. Assign technician — naive double-book check (same tech ± 60 mins).
  5. Update status — only legal transitions allowed; every move logged in WorkOrderHistory.
  6. Complete — labour, parts, customer signature (≥ 10 chars). Triggers invoice generation if T&M / PPV.

Raise an SR — form

Raise New SR
Greenfield Hospital
High
Breakdown
F-COOL
AC unit on first floor not cooling — alarm at 03:30.
Raise SR

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.

Dispatch Board — 7-day view
DayTechWO #CustomerStatusTimeProblem
2026-05-07TECH-001WO-2026-00041Greenfield HospitalIn Progress11:00AC not cooling
2026-05-07TECH-002WO-2026-00042Royal Tower FMOn Hold14:00Lift drive failure
2026-05-08TECH-001WO-2026-00043Anjali SharmaAssigned09:30Routine check
Customer signature is mandatory. The Complete action will reject any signature shorter than 10 characters. The signature is stored on WorkOrders.CustomerSignature as proof of work.
07

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

PageRouteUse it for
Assets/assetsRegister / list / edit assets, generate QR
Asset Hierarchy/asset-hierarchyMaintain the location tree
Condition Log/asset-conditionsRecord condition ratings 1–5
Asset Documents/asset-documentsManuals, warranty cards, inspection reports

Build the location tree first

Site: Greenfield Main
└── Building: Tower A
    ├── Floor: Ground → Room: Reception
    └── Floor: First → Rooms: Operating Theatre 1, Pharmacy

Register an asset

  1. Build the location hierarchy first (Site → Building → Floor → Room) on /asset-hierarchy.
  2. Open Asset Management → Assets.
  3. Fill: Customer, Description, Make, Model, Serial No, Install Date, Warranty Expiry.
  4. Click Save. Asset Code (AST-2026-NNNNN) is auto-generated.
  5. 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
08

Field Scheduling (FS)

Manages the people doing the field work — technicians, daily availability, timesheets, and your business' working calendar.

Availability statuses

< 2 hrs allocated
Available
2–5 hrs allocated
Moderate
5–8 hrs allocated
High Load
≥ 8 hrs / On Leave
Booked

Onboard a technician

  1. Open Field Scheduling → Technicians.
  2. Link to a UM User Id (technician must already be a UM user).
  3. Fill Employee Code, Skills (e.g. "HVAC, Electrical"), Certifications, Zone Coverage.
  4. Save.
💡 Tip: The Tech Id used in WO assignment is the TechnicianId, not the UM UserId. Double-check before assigning.
09

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

Stock Balance
CodeDescriptionWarehouseBalanceReorderStatus
P-FLT-01AC FilterMW-014820OK
P-CAP-01Capacitor 35µFMW-01510Below Reorder
P-OIL-01Compressor Oil 1LMW-01105OK
10

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

SQL Agent (01:00 daily) → DevSP_..._PPM_GenerateWorkOrders → For every schedule with NextDueDate ≤ today: insert PPM WO, advance NextDueDate by frequency

PPM Compliance dashboard

Total PPM WOs
42
On Time
38
Overdue
4
On-Time %
90.5%
11

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

Draft
Approved
Partly Paid
Paid

Auto-generate from a WO

  1. WO is completed (status = Completed). Trigger: explicit "Generate Invoice" or part of WO completion.
  2. System reads WorkOrderLabour + WorkOrderParts for the WO.
  3. Builds a Draft invoice with one Labour line (hours × $50) and one Parts line.
  4. Computes Sub-total, Tax (5%), Total. Due Date = today + 30 days.
  5. Finance officer reviews, clicks Approve — status moves to Approved.

Aged receivables

BucketRuleAction
CurrentNot yet dueNone — awaiting due date
0–30Days past due ≤ 30First reminder
31–6031–60 daysManager call
61–9061–90 daysFormal escalation
90+Over 90 daysCollections / legal
12

CRM Web

Live operational dashboards for Customer Service Reps and Operations Managers — KPIs, complaint queue, and processing inbox.

Dashboard KPIs

Total SRs
182
Open
14
Completed
158
Active Contracts
37
Total WOs
211
In Progress WOs
9
Total Customers
94

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.

13

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

My Purchases

Asset Code, Description, Install Date, Warranty Expiry, Warranty Status (Active / Expired / No Warranty).

Service History

Every previous SR with status badge and dates — newest first.

Raise Complaint

Asset picker (filtered to own products), category, description. SR Number returned on submit.

Row-level security. Every CP DevSP takes @CustomerId and filters all reads by it. Even if the API endpoint is reachable, a customer cannot see another customer's data.
14

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

ColourExamplesMeaning
ActiveActive, Paid, Excellent, AvailableHealthy / on-track
In ProgressIn Progress, In SetupCurrently executing
On HoldOn Hold, Expired, High Load, Below ReorderAttention needed but not critical
CancelledCancelled, Critical, Failed, Insufficient stockAction required / blocked
DraftDraft, NewPre-launch / not yet active
ClosedClosedArchived / final

Soft delete vs hard delete

The UI only soft-deletes (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.

15

Status & Notification Reference

Service Request status

StatusBadgeMeaning
NewNewJust raised. Awaiting WO conversion.
In ProgressIn ProgressConverted to one or more WOs.
CompletedCompletedAll linked WOs completed.
CancelledCancelledCustomer or admin cancelled.

Work Order status

StatusBadgeMeaning
NewNewWO created without a tech assignment.
AssignedAssignedTechnician assigned, awaiting start.
In ProgressIn ProgressTechnician is on site / working.
On HoldOn HoldPending parts / customer / decision.
CompletedCompletedDone — labour, parts, signature recorded.
ClosedClosedFinal, archived. No more changes.
CancelledCancelledCancelled before completion.

Invoice status

StatusBadgeMeaning
DraftDraftGenerated, awaiting Finance approval.
ApprovedApprovedApproved & dispatched to customer.
Partly PaidPartly PaidOne or more payments recorded but balance > 0.
PaidPaidCumulative payments ≥ TotalAmount.
CancelledCancelledVoided.
16

Troubleshooting

SymptomMost likely cause / fix
I can't see a menu I expectYour role lacks privileges for that submenu. Ask SuperAdmin to grant via /rolemngaddbtn.
"Insufficient stock" on saveStock-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 CompleteSignature must be ≥ 10 chars (text or base64). Have the customer sign on the technician's tablet.
PPM WOs not auto-generatingSQL Agent job for DevSP_..._PPM_GenerateWorkOrders is disabled or failed. Re-enable + re-run.
Duplicate customer warning blocking saveIt's only a warning — refine input slightly or click into the matching record to edit it.
Generated QR doesn't scan to right pageQR encodes /assets/bycode/{AssetCode}. Confirm reverse proxy / DNS routes that path.
Connection refused on FEConfirm WebAPI is running and FE's HostServerURL in appsettings.json matches API URL.
Login works but home page is blankSame 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.
17

Glossary

TermDefinition
AMCAnnual Maintenance Contract — fixed-fee comprehensive cover.
PPVPay-per-Visit contract — billed per service event.
T&MTime & Materials — billed at hourly rate plus parts cost.
SLAService Level Agreement — committed response/resolution times by priority.
SRService Request — the customer-reported issue.
WOWork Order — a unit of field work derived from one SR.
PPMPreventive Maintenance — scheduled, proactive servicing.
CRN/TRNCommercial Registration / Tax Registration Number — corporate identity.
Soft deleteMarking a row IsActive = 0 rather than physically removing it.
CoverageWhether a customer/asset is currently under an active contract.
Reorder levelMinimum stock balance below which a part should be reordered.
Aged receivablesOutstanding invoice amounts bucketed by days overdue.
Dispatch boardDay-by-day grid of work assigned to each technician.
Van stockParts the technician carries on their service vehicle.
State machineThe legal sequence of statuses an SR / WO can move through.
DevSPBusiness-logic stored procedure (as opposed to a CRUD SP).
Row-level securityThe portal restricts each customer to their own data via @CustomerId.
You've reached the end of the manual. For a hands-on training path, see the companion MasGen ProDONE CMMS — Training Workbook.