The complete reference

Folks Inventory ERP — User Manual

Everything the platform does, page by page — the warehouse core, the procurement pipeline, point of sale, inter-store transfers, asset registers and double-entry accounts — written for the people who run it every day.

11 Modules
76 Pages
42 Chapters
v4.0 June 2026
Part I

Foundations

How the platform is built, how you sign in, and the patterns every page shares — read this once and the other 37 chapters move faster.

Chapter 01 · Foundations

Welcome & what's new

Folks Inventory ERP is the inventory-and-trade member of the Folks ERP suite. Where the back-office edition owns HR and the project edition owns delivery, this one owns physical goods, the money that flows in and out of the warehouse, and the points where you sell. It is a single .NET 9 Blazor Server application backed by one SQL Server database (MasGen_InventoryERP_DevV4), shipping eleven modules under a single warm "clay" theme.

Who this manual is for Store keepers, buyers, cashiers, accountants and administrators. You do not need to understand the code to use the product — but each chapter ends with the underlying tables and stored procedures, so power users and implementers can trace any screen straight to its data.

What's new in v4.0

Requisition-driven procurement

Purchase planning now starts from a real store requisition and walks the full pipeline to a received delivery, with a live status on every plan.

The clay design system

The whole app was re-skinned to the calm terracotta-on-cream theme, Hanken Grotesk + Newsreader type, and Line Awesome icons.

Point of sale, fully wired

Sessions, terminals, payment methods, day-close and reports — selling straight out of live store stock.

Double-entry accounts

The chart of accounts, balanced journal vouchers, cash book and balance sheet were realigned to a proper ledger model.

Chapter 02 · Foundations

Architecture at a glance

You never see this layer, but it explains why the app behaves the way it does. Folks Inventory ERP is deliberately SQL-first: there is no ORM and no business logic in LINQ. Every read and write goes through a named stored procedure, and every screen is plumbed through the same six tidy layers.

BO SPDAL BLL BFL Controller Blazor page
LayerResponsibilityExample
BO · Business ObjectThe data shape — one C# class per row / parameter setStoreItemDTO
SPDAL · Data accessCalls the stored procedure, maps reader columns to the BO by reflectionStoreItemRepository
BLL · Business logicRules, validation, orchestration between procsStoreItemService
BFL · FacadeA thin gateway the controller talks toStoreItemFacadeService
ControllerThe REST endpoint the Blazor page calls over HTTP/api/StoreInventoryItem
Blazor pageThe screen you actually use, over SignalRStoreItem.razor
Two flavours of stored procedure Generic CRUD procs are named SP_…_<Table>_Select/Insert/Update. Richer multi-step workflows (a transfer, a period close, a procurement hop) live in DevSP_… procedures that do real work in one transaction. When this manual says "the page posts a movement", a DevSP_ is doing the heavy lifting.
Chapter 03 · Foundations

Sign-in, roles & RBAC

The app opens on a split-screen login — a warm pitch panel on the left, your credentials on the right. Sign in with your username and password; on success the system resolves your role, builds your menu from the privileges granted to that role, and drops you on the dashboard.

folks-inventory / login
Folks Inventory ERP
Every store, asset and order — in one warm, calm workspace.
11
Modules
54
Tables
Live
Stock sync
Sign in to your workspace
Username
superadmin
Password
••••••••
Sign in
Login — username/password auth; the sidebar is then built from your role's privileges.

How role-based access works

RBAC is data-driven, not hard-coded. A role is granted privileges on menu pages; the sidebar is literally a query of "which pages may this user's role see". Add a page to a role and it appears; revoke it and the page — and its menu entry — disappear.

Menu source
The sidebar calls DevSP_…_UM_GetMenuDetailsByUserId and groups rows by MainMenu → SubMenu.
Route rule
A page's URL is "/" + SubMenuName lower-cased with spaces removed — e.g. StockBalance → /stockbalance.
Privilege grant
A role sees a page only when a UserRolePrivileges row links its role to that SubMenu.
Demo login
superadmin / superadmin — the SuperAdmin role, granted every page.
Can't see a page you expect? It is almost always a privilege, not a bug. Ask an administrator to grant your role the page in User Management → Employee Privilege (Chapter 37).
Chapter 04 · Foundations

Common page operations

Almost every screen is one of three shapes. Learn the three and you can drive a page you have never opened before.

Master pages

A form panel on top, a searchable, paginated table below. Create, edit and toggle records — most lookups, stores, items, vendors and assets are masters.

Report pages

A filter row and a read-only table, with Print and Export CSV. Ledgers, movement logs and POS reports are reports.

Dashboards

A grid of KPI cards and charts, with quick-action tiles that jump into the module's working pages.

ControlWhat it does
SearchFilters the table live across the visible columns.
Show 10 / 25 / 50Page size; the pager appears only when rows overflow one page.
ActiveA soft on/off — records are deactivated, almost never hard-deleted, to preserve history.
Print / ExportOn reports — opens the browser print dialog or downloads a CSV.
Auto codesCodes like ACC0001, AST0004 are derived from the row id — you never type them.
Chapter 05 · Foundations

The six pillars & the map

The eleven modules group into six pillars. This is the mental model the rest of the manual follows.

PillarModulesWhat it owns
WorkspaceDashboardThe live cockpit — KPIs across everything below.
WarehouseStore Master · Store Operations · TransferStores, items and every stock movement in and between them.
TradePurchase · Sales / POSGoods bought into stock and sold out of it.
AssetsAsset ManagementThe long-life register — devices, equipment, projects, sites.
FinanceAccountsThe double-entry money ledger behind every move.
AdministrationUser Management · Employee · Audit LogPeople, access and the trail of who did what.
Part II

Workspace

Where every shift begins — the live Command Center.

Chapter 06 · Module DR · /home

Command Center

The dashboard is the first thing you see after login and the page you return to between tasks. It rolls up the whole platform into a grid of KPI cards and a few working lists, so you can spot a problem — a store running dry, a procurement waiting, a slow POS day — without opening a single module.

folks-inventory / home
Command Center
Good morning, SuperAdmin · 2 stores online
Refresh
Stores
2
Items
5
Low stock
3
Open POs
1
POS today
1.8k
Stock value
312k
Needs attentionWhereState
Coffee Beans 1kg below reorderHQ Main StoreLow
Bread Loaf requisition → plan #2PurchaseNew request
Stock audit variance on Paper CupsBranch 2−4
Command Center — KPI rollups plus an attention list that links straight into the work.
folks-inventory / home
Command Center — live screen
Live screen — captured from the running application.

Reading the KPI cards

CardMeansClick goes to
StoresActive store countStore Master
ItemsDistinct items trackedItem Master
Low stockItems under their reorder levelStore Reports → Reorder
Open POsProcurement not yet deliveredPurchase Monitor
POS todayValue sold since the last day-closePOS Report
Stock valueOn-hand quantity × unit cost, all storesStock Balance
Route
/home
Module code
DR · single-page module (renders as a solo sidebar link)
Reads from
StoreMaster, StockAtStore, PurchasePlan, PosSale
Roles
All authenticated roles (content scoped by privilege)
Part III

Warehouse

The heart of the system: the stores and items you stock, and every movement that keeps the balance honest.

Chapter 07 · Module SM

Store Master

A store is any place stock physically lives — a warehouse, a shop floor, a kitchen, a virtual holding bin. Everything downstream (entries, sales, transfers, balances) is scoped to a store, so this is the first master you set up.

Creating a store

folks-inventory / store
Store Master
Define the places stock lives
New Store
Store Name *
HQ Main Store
Store Type
Warehouse
Location
Riyadh — HQ
Manager
Omar Khan
Auditor
Sara Ali
Purchase allowed
✓ Yes
CodeNameTypeLocationStatus
STR0001HQ Main StoreWarehouseRiyadh — HQActive
STR0002Branch 2 CaféRetailJeddahActive
Store Master — name, type, location, manager & auditor, with stock-control flags.
folks-inventory / store
Store Master — live screen
Live screen — captured from the running application.
FieldNotes
Store Name *Required, unique-by-intent. Shown everywhere a store is picked.
Store TypeFrom the Store Type lookup (Warehouse, Retail, Kitchen, Virtual…).
LocationFrom the Location Details lookup — a physical address/site.
Manager / AuditorEmployees responsible; the auditor signs off stock audits and dead-stock approvals.
Is Virtual / Purchase Allowed / Is ClosedFlags controlling whether stock is physical, can receive purchases, or is frozen.

The Store Master lookups

Store Type Store Location Item Brand Item Category Item Grade Store Dashboard
Routes
/store · /storetype · /storelocation · /storedashboard
Tables
StoreMaster, StoreType, LocationDetails
Roles
Store Admin, Warehouse Manager
Chapter 08 · Module SM

Item Master

An item is a thing you stock and move — a product, ingredient or consumable. Items are described once and then stocked into many stores. Classification (brand, category, grade) and a unit of measure make reporting and reordering meaningful.

FieldPurpose
Item Name *The label used on every movement and receipt.
Category / Brand / GradeClassification lookups for filtering and reporting.
UnitEach, Kg, Litre, Box… the unit every quantity is counted in.
Reorder levelThe threshold that drives the dashboard's low-stock alerts.
Unit cost / priceCost values stock; price drives POS line totals.
Item vs. stock Creating an item does not create stock. An item starts at zero in every store; quantity only appears after a Store Entry, a purchase delivery or a transfer (Chapters 10, 22, 17).
Routes
/storeitem · /itembrand · /itemcategory · /itemgrade
Tables
StoreItem, ItemBrand, ItemCategory, ItemGrade
Chapter 09 · Module SO

Store Operations — the movement model

Store Operations is where quantity actually changes. Every operation posts a movement against StockAtStore; the balance you see is never typed, it is the sum of movements. This is the single most important idea in the warehouse.

Entry + Balance Exit − POS − Transfer ± Return ± Audit → close
OperationEffect on stockPage
Store Entry+ adds/storeentry
Store Exit− removes/storeexit
POS Sale− removes/possale
Transfer− here, + there/transfer
Returns± reverses/storereturns
Damage / Dead stock− writes off/damageentry · /deadstock
Stock Auditreconciles/stockaudit
Closing Balancesnapshots/closingbalance
Chapter 10 · Module SO · /storeentry

Stock In · Store Entry

A Store Entry adds quantity to a store. It is what a delivery becomes when goods arrive, but you can also raise one directly for an opening balance or an internal find. Pick the store, the item, the quantity and unit, optionally a reference (PO, delivery note), and post.

  • Choose the receiving store and the item.
  • Enter quantity, unit and (optionally) the unit cost and a reference.
  • Post — a positive movement is written and the balance increases immediately.
  • The item's on-hand at that store goes up by the entered quantity on Stock Balance.
Table
StoreEntry → posts to StockAtStore
Proc
DevSP_…_StoreEntry_Insert
Chapter 11 · Module SO · /storeexit

Stock Out · Store Exit

A Store Exit removes quantity for a reason other than a POS sale — issuing to a kitchen, consuming internally, writing off. It is the mirror of an entry: pick store, item, quantity, reason, post a negative movement.

You cannot exit more than you hold The page validates against the live balance — an exit that would drive stock negative is refused. If you genuinely have less than the system thinks, run a Stock Audit (Chapter 14) to reconcile.
Table
StoreExit → posts to StockAtStore
Chapter 12 · Module SO

Returns & Damage

Two pages handle the exceptions. Store Returns brings stock back (a customer return, a reversed issue) — a corrective movement. Damage Entry writes stock off as no longer sellable, recording the reason; damaged quantity leaves the sellable balance but stays visible for loss reporting.

PageUse when…Stock effect
Store Returns /storereturnsGoods come back into stock+ / reversal
Damage Entry /damageentryGoods are spoiled/broken− write-off
Chapter 13 · Module SO · /stockbalance

Stock Balance & the movement ledger

Stock Balance is the truth screen — the live on-hand quantity per item per store, computed from every movement. It is read-only by design: you change the balance by posting an operation, never by editing the number.

folks-inventory / stockbalance
Stock Balance
Live on-hand, all stores
Export
ItemStoreInOutOn handState
Bread LoafHQ Main603624OK
Coffee Beans 1kgHQ Main20146Low
Paper CupsBranch 250500Out
Cappuccino MixBranch 2301218OK
Stock Balance — In − Out = On hand, with a reorder-aware state badge.
folks-inventory / stockbalance
Stock Balance — live screen
Live screen — captured from the running application.
Reads
StockAtStore (aggregated from all movement tables)
Sibling
Store Reports → Movement Log shows the line-by-line history.
Chapter 14 · Module SO · /stockaudit

Stock Audit & variance

A stock audit reconciles the system balance against a physical count. You generate an audit batch (which stamps an STRAUD… code), enter the counted quantity for each item, and the system computes the variance. A shortfall is treated as a loss.

  • Generate an audit batch for a store — it snapshots the current system quantities.
  • Enter the physical count for each item.
  • Variance = physical − system is shown per line.
  • A negative variance auto-creates a Damage row linked to the audit id, so the loss is both recorded and written off in one step.
Why losses become damage Folks Inventory never silently changes a balance. A short count is a real event, so it is posted as a damage write-off you can report on — not an unexplained adjustment.
Chapter 15 · Module SO

Dead Stock, Store Expense & Closing Balance

PageWhat it does
Dead Stock /deadstockFlags non-moving stock for write-down, approved by the store's auditor.
Store Expense /storeexpenseRecords costs attributable to a store (utilities, handling) for accounts.
Closing Balance /closingbalanceOne Run Period Close writes a header per store and snapshots every StockAtStore row into the closing-balance detail — your period-end stock picture, frozen.
Closing is a snapshot, not a lock Running a period close does not stop you trading — it captures the balance at that instant into StoreClossingBalanceDetails so you have a defensible period-end figure. A single DevSP_…_RunPeriodClose does it in one transaction.
Chapter 16 · Module SO

Requisition, Reports & Item-to-Asset

Three connective pages close out Store Operations:

PageRole in the flow
Store Item Requisition /storeitemreqThe starting gun for procurement — a store asks for an item and quantity it needs (Chapter 18 picks it up).
Store Reports /storereportsA hub of report tiles — movement log, reorder suggestions, stock valuation.
Store Item → Asset /storeitemtoassetPromotes a stocked item into the long-life asset register (Chapter 28) when it becomes equipment.
Chapter 17 · Module TF · /transfer

Inter-Store Transfer

A transfer moves stock from one store (the consigner) to another (the consignee) in a single governed action. It is a dual-write: an exit at the source and an entry at the destination, both stamped with the same transfer code so the two legs always reconcile.

Consigner store Store Exit − TRF-yyyymmdd-… Store Entry + Consignee store
PagePurpose
Transfer /transferRaise and post a transfer; both legs are written atomically.
Consigner /consignerLookup of sending parties.
Consignee /consigneeLookup of receiving parties.
Transfer Report /transferreportHistory of transfers with both movement legs.
Movements
StoreExit @ consigner + StoreEntry @ consignee, linked by TRF-…
Guarantee
One transaction — you never get half a transfer.
Part IV · the showcase

Procurement — Requisition to Receipt

The pipeline that turns a store's need into stock on the shelf, with a governed stop and a recorded document at every hop.

Chapter 18 · Module PU

The procurement pipeline

Procurement in Folks Inventory ERP is not one form — it is a tracked pipeline. A plan is created from a requisition and then walks six stages, each on its own page, each stamping a live status. A buyer can always see exactly where any item sits.

01
Requisition

Store raises a need.

/storeitemreq
02
Plan

Buyer plans the qty.

/purchaseplan
03
Indent + Tender

Float to vendors.

/createtenderreq
04
Compare

Rank quotes.

/comparequot
05
Award PO

Lowest wins.

/processpo
06
Deliver

Receive to stock.

/delivery

Status walks New Request → Indent Generated → Tender Created → Delivery Processing → Delivered. The document chain — requisition, plan, indent, tender request, quotes, purchase order, delivery note — is written as you go, and the final receipt posts a Store Entry that updates the balance.

StagePage · buttonWritesStatus after
1 · Requisition/storeitemreqStoreItemRequestRequested
2 · Plan/purchaseplan · SavePurchasePlanNew Request
3 · Indent/purchaseplan · Generate IndentsPORD, PurchaseIntendIndent Generated
4 · Tender/createtenderreq · Create TenderPurchaseOrderRequestTender Created
5 · Quotes/comparequot · CaptureQuoteForPORequestDetailsTender Created
6 · Award/processpo · AwardPurchaseOrderDelivery Processing
7 · Deliver/delivery · ReceiveDelivery, StoreDeliveryNote Delivered
Chapter 19 · Module PU · /vendorentry

Vendors

Vendors are the suppliers a tender is floated to and a PO is awarded to. Capture the trading name, contact and email — only vendors with an email are eligible to quote, so the compare step has someone to ask.

Table
Vendors
Eligibility
A vendor must have an email to receive tenders / appear in compare-quotes.
Chapter 20 · Module PU · /purchaseplan

Purchase Plan

The plan is the spine of procurement. Start it from a Store Item Requisition — picking the requisition auto-fills the item, requested quantity and unit, and links the plan back to the request. Set the planned quantity and save; the plan enters the pipeline as New Request. From the plan list, Generate Indents advances it.

folks-inventory / purchaseplan
Purchase Plan
From requisition #1
Generate Indents
Requisition
REQ#1 · Bread Loaf
Requested
25 Each
Planned qty
30
PlanItemQtyStoreStatus
#2Bread Loaf30HQ MainNew request
Purchase Plan — requisition-driven, with the pipeline action on the toolbar.
folks-inventory / purchasedashboard
Purchase Dashboard — live screen
Live screen — the Purchase Dashboard, captured from the running application.
Chapter 21 · Module PU

Tender & Compare Quotes

After indents are generated, Create Tender Request (/createtenderreq) bundles the indented lines and floats them to active vendors — the plan moves to Tender Created. Compare Quotes (/comparequot) then captures one quote per eligible vendor and ranks them, so the cheapest compliant offer is obvious.

VendorUnit priceTotalRank
Gulf Foods Co.6.20186.00Lowest
Al-Noor Supplies6.75202.502nd
Desert Trading7.10213.003rd
Chapter 22 · Module PU

Award PO & Delivery

Process PO (/processpo) awards the order to the lowest quoted vendor, creating a PurchaseOrder and moving the plan to Delivery Processing. Delivery (/delivery) then processes logistics, raises the delivery note and receives the goods — which posts a Store Entry and lands the plan on Delivered.

Procurement closes the loop into the warehouse Receiving a delivery is not just a status — it writes a real StoreDeliveryNote and posts the received quantity as a Store Entry, so the stock balance reflects the purchase the moment it arrives.
Chapter 23 · Module PU

Purchase Monitor & Dashboard

Purchase Monitor (/purchasemonitor) is the control tower — every plan with its current stage, so nothing stalls unseen. The Purchase Dashboard (/purchasedashboard) rolls procurement into KPIs: open plans, spend, vendor mix, delivery cycle time.

Tables
PurchasePlan, PORD, PurchaseIntend, PurchaseOrderRequest, PurchaseOrder, Delivery
Roles
Buyer, Procurement Manager
Part V

Sales / Point of Sale

Selling out of live stock — sessions, terminals, the till and the day-close.

Chapter 24 · Module PO

POS overview

The point-of-sale module sells items straight out of a store's stock. A sale is rung inside an open session on a terminal, paid with a payment method, and recorded as a PosSale — which decrements stock and posts the takings. At end of shift, a day-close reconciles the drawer.

Open session Ring sales Stock − Day close
Chapter 25 · Module PO

Terminals, methods & sessions

PageSets up…
POS Terminal /posterminalA physical till bound to a store, with a default cashier.
Payment Method /pospaymentmethodCash, card, wallet… the tenders a sale can be settled with.
POS Session /possessionA cashier's shift on a terminal — opens with a float, closes at day-close.
Chapter 26 · Module PO · /possale

Ringing a sale

The sale screen is a fast till: search or scan items into the cart, adjust quantities, take payment. VAT is computed on the subtotal, and confirming the sale decrements each item from the session's store and writes the PosSale with its lines.

folks-inventory / possale
Point of Sale
Session #14 · HQ Main · Cashier: Layla
Pay
Cappuccino×218.00
Croissant×321.00
Bread Loaf×17.00
Water 500ml×48.00
Subtotal54.00
VAT 15%8.10
SAR 62.10
CashCardWallet
New Sale — cart on the left, tender on the right; confirming decrements stock.
folks-inventory / possale
Point of Sale — live screen
Live screen — captured from the running application.
Chapter 27 · Module PO

Day close & reports

PagePurpose
Sale List /possalelistEvery sale in the period, drill into lines.
Day Close /posdaycloseReconciles expected vs counted cash, closes the session.
POS Report / Sales Report /posreport · /possalesreportTakings by item, method, terminal and cashier.
Tables
PosSale, PosSaleDetails, PosSession, PosTerminal, PosPaymentMethod
Part VI

Asset Management

The long-life register — the things you own and maintain rather than sell.

Chapter 28 · Module AS

Asset Management overview

Assets are durable items — ovens, vehicles, laptops, fixtures — tracked for their value, location and condition rather than their sellable quantity. The module is sixteen pages: registers, classification lookups, the place hierarchy, and the lifecycle pages (maintenance, audit, disposal). It opens on an Asset Dashboard of KPIs and quick actions.

Asset Dashboard Asset Item Category Type Device Equipment Utility Projects Sites Locations
Chapter 29 · Module AS

Asset registers

The core register is Asset Item (/assetitem) — each asset carries an auto code (AST0004), a name, a category, a value per item, an item count and a purchase date. Asset Category and Asset Type classify them for reporting.

CodeAssetCategoryValueCount
AST0001Dell LatitudeLaptops95,000.0010
AST0002Espresso MachineKitchen42,000.002
AST0003Delivery VanVehicles180,000.001
Chapter 30 · Module AS

Devices, equipment & utilities

RegisterTracksKey lookups
Device Master /devicemasterIT & electronic devicesDevice Type, Ownership, Contact
Equipment Master /equipmentmasterMachinery & plantEquipment Type, Ownership
Utility Master /utilitymasterUtilities & servicesUtility Type, Ownership, Contact

Each register shows names, not raw ids — type, ownership and contact are chosen from dropdowns and displayed as labels, with a derived code (DEV0001, EQP0001).

Chapter 31 · Module AS

Projects, sites & locations

Assets live somewhere. Projects (/projects), Project Sites (/projectsites) and Location Details (/locationdetails) form the place hierarchy that an asset, a store or a device can be assigned to.

Project Site Location
Chapter 32 · Module AS

Maintenance, auditing & disposal

PageLifecycle stage
Asset Maintenance /assetmaintananceSchedule and close maintenance jobs against an asset unit.
Asset Auditing /assetauditingVerify an asset's presence and condition at a site, with an audit status.
Asset Dispose /assetdisposeRetire an asset at end of life, recording the disposal type.
Tables
AssetItem, AssetCategory, AssetType, DeviceMaster, EquipmentMaster, Projects, ProjectSites, LocationDetails
Part VII

Accounts

The money ledger behind every physical move — a real double-entry book.

Chapter 33 · Module AC

Accounts overview

The Accounts module is a proper double-entry ledger: a chart of accounts grouped into ledger groups, balanced journal vouchers, a cash book, cheques and bank charges, and a balance sheet. Stock and trade events have a money side, and this is where it is recorded.

Chapter 34 · Module AC

Chart of accounts

The Account Master (/accountmaster) is the chart of accounts — each account has a derived code (ACC0001), a name, a ledger group, a type (Asset, Liability, Income, Expense, Equity) and an opening balance. Ledger Group and Sub Ledger organise it.

CodeAccountGroupTypeOpening
ACC0001CashCurrent AssetsAsset50,000.00
ACC0002HDFC BankBankAsset220,000.00
ACC0003Rent ExpenseOverheadsExpense0.00
Chapter 35 · Module AC · /transactionentry

Transaction entry — double-entry

A transaction is a balanced voucher: total debits must equal total credits before it will save. The entry screen lets you add as many lines as needed, picking an account per line and a debit or credit amount, with a narration.

Account
Debit
Credit
Inventory (stock received)
186.00
VAT Input
27.90
Accounts Payable — Gulf Foods
213.90
Totals
213.90
213.90
It must balance The Save button stays disabled until debits = credits. This is the guard that keeps the books true — there is no way to post a lopsided voucher.
Chapter 36 · Module AC

Cash book & statements

ReportShows
Ledger /ledgerPosted transactions for a date range, with print & CSV export.
Cash Book /cashbookCash receipts and payments with a running balance.
Cheque Details /chequedetailsCheques with bank, account, amount and status (Pending / Cleared / Bounced).
Bank Charge Details /bankchargedetailsBank fees captured to the right expense account.
Balance Sheet /balancesheetAssets vs. liabilities & equity, grouped.
Tables
Accounts_Ledger, Accounts_LedgerGroup, Transaction, Accounts_Cheque_Details
Roles
Accountant, Finance Manager
Part VIII

Administration

People, access and accountability.

Chapter 37 · Module UM

User Management & RBAC

User Management is the security base of the whole suite — users, roles, the menu tree, and the privileges that map roles to pages. Everything else in this manual is visible only because UM grants it.

PageManages
User Management /usermanagementUsers and their designation-based access.
Role Management /rolemanagementThe roles a user can hold.
Menu Management /menumanagementThe main-menu / sub-menu tree the sidebar is built from.
Employee Privilege /employeePriviliegeGrants pages to a role — the lever that shows/hides screens.
Workflow /workflowInternal & external approval routing.
UM is the locked base The entities UM owns — employees, departments, designations, roles, menus, privileges — are reused everywhere else rather than duplicated. That is why an employee picked as a store manager is the same record UM administers.
Chapter 38 · Module EM

Employee register

The employee register is the people directory the rest of the app draws on — store managers, auditors, cashiers, buyers are all employees here.

PagePurpose
Employee List /emplistThe master table — code, name, designation, phone, email, status.
Employee Registration /empregistrationOnboard a new employee.
Employee Profile /empprofileThe full record for one person.
Department / Designation /department · /designationOrganisational lookups.
Chapter 39 · Module AL · /auditlog

Audit Log

The audit log is the trail of who did what and when across the platform — a read-only report you filter by user, action and date. It is the page you open when you need to answer "who changed this?"

Route
/auditlog · solo sidebar link
Nature
Read-only report (Print / Export)
Part IX

Reference

The quick-lookup back of the book — statuses, the data model, troubleshooting and a glossary.

Chapter 40 · Reference

Status & badge reference

Procurement pipeline status

New Request Indent Generated Tender Created Delivery Processing Delivered

Stock state

In stock Low (below reorder) Out of stock

Cheque status

Pending Cleared Bounced
Chapter 41 · Reference

The SQL-first data model

For implementers: every screen maps to tables and procedures by a consistent naming convention.

ArtefactConventionExample
Generic CRUD procSP_…_<Table>_<Verb>SP_…_StoreMaster_Insert
Workflow procDevSP_…_<Process>DevSP_…_RunPeriodClose
List endpoint/api/<Resource> or /GetRecords/api/StoreInventoryItem
Auto codePrefix + zero-padded idAST0004
Where the menu comes from The sidebar is data, not code: MainMenu + SubMenu rows, surfaced by DevSP_…_UM_GetMenuDetailsByUserId, with the route derived as "/" + SubMenuName (lower-cased, spaces removed).
Chapter 42 · Reference

Troubleshooting & glossary

SymptomMost likely causeFix
A page is missing from the sidebarYour role lacks the privilegeGrant it in Employee Privilege (Ch 37)
A dropdown is emptyThe lookup has no rows yetAdd records in the relevant master
An exit/sale is refusedWould drive stock negativeRun a Stock Audit to reconcile (Ch 14)
A voucher won't saveDebits ≠ creditsBalance the lines (Ch 35)
A plan is stuckA pipeline action wasn't runOpen Purchase Monitor and advance it (Ch 23)

Glossary

Movement
A single signed change to stock — every entry, exit, sale, transfer leg, return or damage.
StockAtStore
The live on-hand quantity per item per store, computed from movements.
Requisition
A store's request for an item and quantity — the start of procurement.
Plan
The procurement record that walks the six pipeline stages.
Indent
The internal authorisation to buy, generated from a plan.
Tender
A request for quotes floated to eligible vendors.
Consigner / Consignee
The sending / receiving store in a transfer.
Session
A cashier's POS shift on a terminal, opened with a float and reconciled at day-close.
Period close
A snapshot of every stock balance into the closing-balance detail.
RBAC
Role-based access control — pages shown per role via seeded privileges.
DevSP
A workflow stored procedure that performs a multi-step action in one transaction.
Now make it stick You've read the reference — head to the Exercise Workbook and run the Al-Murjan Café & Bakery case study end to end.