Modules Overview
Introduction
Damsy ERP is organized into MVC Areas — self-contained modules that share authentication, session state, and the same data-access stack, but expose different menus, layouts, and business workflows. After login, the home dashboard shows only the modules your user account is licensed for.
Each module is gated by a boolean flag on Session["dtVerifyUser"] (type BO.User) and by the CompID company context set at sign-in.
Purpose
This page orients you to the full module map: what each area does, how to reach it, and where to read implementation-level detail. Use it as the starting point before diving into payroll, billing, stock, or any other functional area.
When to Use
Refer to this overview when you:
- Need a single reference for all module entry URLs
- Are assigning module flags to a new user account
- Are planning cross-module integrations (for example, attendance feeding payroll)
- Want to choose the right module doc for a support or development task
Module Summary
| Module | User flag | MVC Area | Dashboard URL | Documentation |
|---|---|---|---|---|
| Payroll | Payroll | Payroll | /Payroll/PayrollDashboard/Index | Payroll |
| Registration | Webenroll | Registration | /Registration/RegistrationDashboard/Index | Registration |
| Bills | Billing | Bills | /Bills/BillsDashboard/Index | Bills |
| Stock | ZSTOCK | Stock | /Stock/StockDashboard/Index | Stock |
| Sales | ZSales | Sales | /Sales/SalesDashboard/Index | Sales |
| ESS | Ess | ESS | /ESS/EssDashboard/Index | ESS |
| Attendance | AttPunch | AttendancePunching | /AttendancePunching/AttendanceDashboard/Index | Attendance |
| Operation | Operation | Operation | /Operation/OperationDashboard/Index | Operation |
| Administration | ControlPanel | Adminisration | /Adminisration/UserDashBoard/Index | Administration |
| Management | ManagementDashboard | ManagmentDashBoard | /ManagmentDashBoard/ManagmentDashBoard/Index | Management Dashboard |
| Verification | VerificationAndApproval | VerificationAndApproval | /VerificationAndApproval/VerificationApprovalDashboard/Index | Verification |
| Contracted Rates | ContractedRates | ContractedRates | /ContractedRates/ContractedDashboard/Index | Contracted Rates |
Dashboard tiles call /Login/ModuleManagement?PageID=.... The PageID string is not always identical to the module flag — for example, Registration uses PageID Registration but flag Webenroll. See Module Routing.
How Modules Connect
Shared Architecture
Every module follows the same request stack:
- Session gate — redirect to login if
CompIDis missing - Controller — Area controller action
- BO + DAL — business object populated with
CompID, then stored procedure call viaBaseHelper - View — Razor page under module layout (
_LayoutPayroll,_BillsLayout, etc.) - Reports — Crystal Reports (
.rpt+.aspxviewers) or ClosedXML Excel where applicable
Modern modules use the unified sidebar shell (shell-modern.css, sidebar-unified.css). Legacy modules (Sales, Operation, Attendance) retain a top header-navbar layout.
Permissions Model
| Layer | What it controls |
|---|---|
Module flag on BO.User | Whether the home dashboard tile appears |
CompID session | Company-scoped data on every DAL call |
GetDataUserPermissions / MenuMaster | Fine-grained menu and page access (may be empty on minimal DB seeds) |
Session["Entryflag"] | Re-authentication for sensitive admin actions |
There is no single ModuleAccess session key — access is the combination of flags, company context, and database-driven menu permissions.
Related Pages
Important Notes
A blank database with only the minimal seed script may grant module flags but omit MenuMaster and UserPermissions rows. Users can log in and see tiles, yet individual menu links may fail until permissions are copied from a production database.
Module dashboard URLs can be bookmarked. The session must remain valid; module flags are not re-checked on every ModuleManagement redirect.
Common Mistakes
| Mistake | Result |
|---|---|
| Granting Payroll without Attendance when workflows depend on punch data | Salary process runs on incomplete attendance |
Using corrected spelling in Area URLs (Administration, ManagementDashboard) | 404 — historical typos are part of the route |
Expecting ESS to replace root EmpSelfService APIs | Mobile or guard integrations may still hit root controllers |
Next Steps
- Open the module doc for the area you are implementing or supporting.
- Trace one screen from controller → DAL → stored procedure in the codebase.
- Confirm module flags and menu permissions for test users before UAT.