NM-ERP

User Manual for Office Staff

Covers: Login · Dashboard · Clients · Dealers · Vendors · Individuals · Products · Categories · Brands · Stock · Price Lists · Dispatches · Projects · Payments · Site Activities · Planned Activities · Installers · Daily Log · Salary Tracking · Payroll Employees · Staff · Employee Ledger · Payroll Runs · Corrections · Payroll Settings · Holidays · Payslips · Leave Register · Leave Summary · Year-end Leave · Reports · Daily Logs · Company · Warehouses · Units · Activity Types · Expense Types · Log Categories · Users · Activity Monitor

1. Introduction

The NM-ERP system manages the day-to-day operations of the business — client records, goods dispatched, products in stock, project tracking, installer management, and partner companies. It replaces spreadsheets with a single, searchable system that keeps everyone working from the same data.

Who this manual is for

Sales staff, operations coordinators, and accounts personnel. No technical knowledge is needed. Every task described in this manual requires only a web browser.

Most common daily tasks

TaskWhere to goSection
Log in to the systemOpen the website URL2
View dashboardDashboard (landing page)4
Create a dispatchOperations → Dispatches → + Create Dispatch7.4
Update dispatch statusDispatches list → Update Status button7.7
Add a new clientSales → Clients → + New Client5.1
Add a client addressClients → [client name] → Addresses card5.1
Add a contact personClients → [client name] → Contact Persons card5.1
Add a productInventory → Products → + Add Product6.2
Check all stock levelsInventory → Stock6.4
View a projectOperations → Projects → click row8.1
Record a paymentProjects → detail → Payments tab → Record Payment8.3
Log a site activityOperations → Site Activities → + New Activity9.2
Fill installer daily logField → Installer Daily Log11.3
Print dispatch labelsDispatch detail → Packages tab → Print Labels7.6
Delete a dispatchDispatch detail → Delete Dispatch button7.9
Add a payroll employeePayroll → Employees → + Add Employee12.1
Add a ledger entry / view balancePayroll → Employees → click employee row12.3
Run monthly payroll (admin)Payroll → Payroll Runs → + Generate for Month12.4
Fix a finalized payroll mistakeEmployee Ledger → + New Correction12.5
View/print a payslipEmployee Ledger → View Payslip12.7
Record staff leavePayroll → Leave Register → + Add Leave12.8
Enter opening leave balances (one-time)Payroll → Employees → Edit, then Leave Register → Confirm opening balances12.8
Check a month's leave (paid / LOP)Payroll → Leave Summary12.9
Choose year-end carry forward or pay outPayroll → Year-end Leave12.10
Read a staff member's daily work logReports → Daily Logs → click a row13.4
Manage company settingsSettings → Company14.1

2. Login

When you open the system, you will see the sign-in page. Every user has a phone number and password set up by an administrator.

Login page
The sign-in page. Enter your phone number and password.

How to sign in

  1. Enter your phone number in the Phone field (10-digit mobile number with +91 prefix shown automatically).
  2. Enter your password in the Password field. Click the eye icon to show/hide the password.
  3. Click Sign In. You will be taken to the Dashboard.

Forgot Password

  1. On the sign-in page, click Forgot password? below the password field.
  2. A modal opens. Enter your phone number and click Send OTP.
  3. You will receive a 6-digit OTP via email. Enter the OTP code.
  4. Set your new password (minimum 6 characters) and click Reset Password.
  5. You can now sign in with your new password.

Signing out

Click your name at the bottom of the sidebar, then click Sign out.

Important: If you forget your password and cannot access your email, ask an administrator to reset it for you from Settings → Users.

4. Dashboard

The Dashboard is your landing page after login. It gives you a quick overview of what needs attention across the business — overdue items, upcoming work, and recent activity.

Dashboard page
The Dashboard shows KPIs at the top, gap items on the left, and activity on the right.

KPI Strip

Four summary numbers are shown at the top of the page:

KPIMeaning
Active ProjectsNumber of projects currently in progress
In TransitNumber of dispatches currently in transit
This WeekActivities planned for the current week
Pending PaymentsNumber of projects with outstanding payment milestones

Attention Needed

The left column lists items that need your attention, each with a count. Items with zero count are shown as "All clear". Click any item to jump to the filtered list page.

This Week & Recent Activity

The right column shows projects completing this week, activities planned this week, and a feed of the most recent changes across the system.

Quick Links

At the top of the Dashboard, quick links let you jump directly to + New Dispatch, + New Project, or + New Activity.

5. Contacts

The Contacts module stores everyone the business deals with: clients who buy installations, dealers who resell services, vendors who supply materials, and the individual people associated with those companies.

5.1 Clients

A Client is a company or person who buys stretch ceiling installations directly from you. Every dispatch must be linked to a client.

How clients, addresses, and individuals relate

Client Company
e.g. Sharma Interiors Pvt. Ltd.
Registered Office Address
Billing Address
Delivery Address — Site 1
Delivery Address — Site 2
Client Company
Rahul Sharma — Owner
Priya Mehta — Site Engineer

One client can have many addresses (for different sites, billing, and their registered office) and many contact persons (the people you deal with at that company). When creating a dispatch, you choose which address to deliver to and which person to contact.

Client List

Clients list page
The clients list shows all active clients. Use the search bar to find a client by name or city.

The table shows: Client Name, City, Primary Contact (a linked person's name), Phone, and Status (Active/Inactive).

To show inactive clients, tick the Show inactive checkbox above the table.

Adding a New Client

New client modal
The New Client form. Fill in the company name and GST details, then click Save.
  1. Click "+ New Client" (top right of the Clients page).
  2. Fill in the Company Name (required). This is the official business name that will appear on dispatches.
  3. Enter GSTIN (optional but recommended for GST compliance). Must be 15 characters.
  4. Choose GST Treatment: Regular (most businesses), Composition, Unregistered, or Consumer (individuals/households).
  5. Add any notes in the Notes field — this is visible to all staff.
  6. Click Save. The client appears in the list immediately.

Opening a Client Record

Click any row in the client list to open the client's detail page.

Client detail page
The client detail page. The Overview tab shows all key information in cards.

The Overview tab has four cards:

  • Basic Info — Company name, GSTIN, GST treatment, notes
  • Contact Details — Phone numbers and email addresses; add or remove using the inline buttons
  • Addresses — All physical addresses for this client
  • Contact Persons — The people you communicate with at this company

Editing a Client

Edit client modal
The Edit modal includes Basic Info, phones, and emails in one place.
  1. Open the client detail page.
  2. Click the More ▼ button (top right of the page).
  3. Click Edit. The edit modal opens, pre-filled with the current values.
  4. Make changes and click Save.

Adding an Address

You can add multiple addresses to a client — for example, their registered office, billing address, and several delivery sites.

Add address modal
The Add Address form. Choose the address type and fill in the full address.
  1. Open the client detail page and scroll to the Addresses card.
  2. Click + Add Address.
  3. Choose the Address Type:
    • Registered Office — Company's legal address
    • Billing — Where invoices should be sent
    • Delivery / Site — Where goods are to be dispatched
    • Other — Any other location
  4. Enter an Address Label (optional) to distinguish multiple addresses of the same type — e.g. "Floor 3, Bandra" or "Goregaon Site".
  5. Fill in Line 1, Line 2, City, Pincode, and State.
  6. Click Save.
Tip: Add delivery addresses before creating dispatches for that client. The dispatch form will show a dropdown of saved addresses to choose from.

Adding a Contact Person

Contact persons are the individuals at the client company you speak with — site engineers, owners, architects. Each person can have their own phone number and email.

  1. Open the client detail page and scroll to the Contact Persons card.
  2. Click + Add Person.
  3. Enter their name, designation, phone, and email.
  4. Click Save.

Once added, the person also appears in the Individuals list (under Sales → Individuals) and can be selected as the contact person on dispatches.

Deactivating and Reactivating a Client

More menu with Deactivate option
The More ▼ menu shows Edit, Duplicate, and Deactivate options.

Deactivating a client hides them from dispatch autocomplete but does not delete their history. To deactivate:

  1. Open the client detail page.
  2. Click More ▼ → Deactivate.
  3. Confirm when prompted.

To reactivate: go to the Clients list, tick Show inactive, open the record, and choose More ▼ → Reactivate.

5.2 Dealers

A Dealer is a reseller or partner company that purchases installations on behalf of their own clients. Dealers are always companies (not individuals).

Dealers list
The dealers list. Same layout as the clients list.

Dealer-specific fields

New dealer modal
The New Dealer form includes credit and commission fields specific to dealers.
FieldMeaning
Dealer CodeYour internal reference code for this dealer (e.g. DLR-001). Required.
Credit LimitMaximum outstanding balance this dealer is allowed (in ₹). Leave blank for no limit.
Credit DaysPayment terms — number of days the dealer has to pay after dispatch (e.g. 30).
Commission %Commission percentage paid to this dealer on sales.

Dealers can have multiple addresses and contact persons, the same as clients. See Section 5.1 for how to add them.

5.3 Vendors

A Vendor is a supplier — a company that provides materials to you (membranes, profiles, LED components, etc.). Vendors are always companies.

Vendors list
The vendors list.
New vendor modal
New Vendor form. The Vendor Code is your internal reference.

Vendors are also used as a dispatch source: when a vendor ships goods directly to your client (drop-shipment), you create a dispatch with Dispatch From → Vendor Direct and select the vendor. See Section 7.4.

Add vendor addresses so that they appear correctly on dispatch paperwork when goods are shipped directly from the vendor.

5.4 Individuals

An Individual is a person — an employee, architect, or homeowner — who may be linked to a parent company (client, dealer, or vendor) or may exist independently.

Individuals list
The individuals list shows all persons in the system.

How individuals relate to companies

When you add a contact person to a client (from the client detail page, as described in Section 5.1), that person automatically appears in the Individuals list. You can view and edit them from either place.

Individuals do not have GSTIN or credit terms — those belong to the parent company. When creating a dispatch, selecting a contact person from the Individuals list fills in the "Contact Person" field on the dispatch form.

Note: You typically do not need to use the Individuals list directly. Add people through the client or dealer detail page. The Individuals list is useful for searching across all persons regardless of their parent company.

5.5 Duplicating a Record

You can create a copy of any client, dealer, vendor, individual, product, or installer using the Duplicate option. This saves time when adding a record that is similar to an existing one.

More menu showing Duplicate option
The More ▼ menu includes a Duplicate option on all master data records.
  1. Open the detail page of the record you want to copy.
  2. Click More ▼ → Duplicate.
  3. A new record is created with the name followed by "(Copy)". The edit modal opens automatically so you can rename it and adjust the details.
  4. Make your changes and click Save.
Note: Duplicating a contact copies the company name and basic details, but does not copy addresses or contact persons. You will need to add those to the new record separately.

6. Products

Products are organised in a three-level hierarchy:

Category → Type → Product
e.g. Membranes → Matte Finish (sq.ft) → T0B3M 2000mm Matte White

6.1 Categories and Types

Categories group related products together. Each category has an HSN/SAC code (used for GST) and a GST rate. Types belong to a category and define how products in that group are measured and how stock is tracked.

Categories page
The Categories page. Categories are listed on the left; click one to see its types on the right.
Category selected — types visible on right
Click a category to see its Types on the right panel. Each type shows its unit and product class.

Product Classes

Every type has a product class that controls whether stock is tracked:

ClassExamplesStock behaviour
Component Membranes, profiles, hardware Stock is deducted when a dispatch is created
Consumable Adhesive, fasteners, cable ties Stock is deducted when a dispatch is created
Finished Good Pre-assembled panels, complete kits No stock tracking
Service Installation labour, design consultation No stock tracking

Adding a Category

Add category modal
The Add Category form. The HSN/SAC code is required for GST compliance.
  1. Go to Inventory → Categories.
  2. Click + Add Category.
  3. Enter the category Name (e.g. "Membranes").
  4. Enter the HSN/SAC Code (6 or 8 digits, from the GST rate schedule).
  5. Enter the GST Rate (e.g. 18 for 18%). This is used on invoices.
  6. Click Save.

Adding a Type to a Category

  1. Click on a category in the left panel.
  2. Click + Add Type (appears in the right panel header).
  3. Enter the type name (e.g. "Matte Finish").
  4. Choose the Unit: sq.ft, sq.m, rft, unit, or lot.
  5. Choose the Product Class (see table above).
  6. Click Save.

6.2 Products

A Product is the specific item that gets dispatched or stocked — a particular membrane SKU, a profile size, or a type of LED driver.

Products list
The products list shows Name, Brand, Category, Type, Product Class, and Unit.

Adding a Product

  1. Go to Inventory → Products and click + Add Product.
  2. Enter the product Name and optionally an SKU (your stock-keeping code).
  3. Select the Category, then the Type (the type determines the unit and product class).
  4. Enter pricing: List Price (selling price) and Purchase Price (your cost). All prices are exclusive of GST.
  5. Click Save.

Product Detail Page

Product detail overview
The product detail page shows pricing, specifications, and current stock level.
Product detail stock tab
The Stock tab shows current stock, stock in transit, and adjustment history.

Click on any product row to open the detail page. The Stock tab shows:

  • Current Stock — units available right now
  • Stock in Transit — units in active dispatches not yet delivered
  • Reorder Level — minimum stock you want to maintain
  • Adjustment History — every stock movement (dispatches, manual adjustments)
Note: Stock is only tracked for Component and Consumable class products. Service and Finished Good products do not have stock levels.

6.3 Brands

Brands let you tag products by manufacturer or brand name (e.g. "Barrisol", "Clipso"). Brands are optional — you can assign a brand when creating or editing a product.

Brands list
The Brands page. A simple list of brand names with Active/Inactive status.

Adding a Brand

  1. Go to Inventory → Brands.
  2. Click + Add Brand.
  3. Enter the brand Name.
  4. Click Save.

You can also create a brand inline while editing a product — click "Add Brand" in the brand dropdown on the product form.

6.4 Stock

The Stock page shows current stock levels for all products in one place. This is a read-only overview — to adjust stock, use the product detail page.

Stock page
The Stock page. Search by SKU or name, filter by product class, and toggle zero-stock items.

Stock page columns

ColumnMeaning
SKUThe product's stock-keeping code
NameProduct name
ClassComponent, Consumable, Finished Good, or Service
UnitUnit of measurement (sq.ft, rft, unit, etc.)
On HandCurrent quantity in stock (can be negative if backorders exist)
Last AdjustedDate of the most recent stock change

Filtering

  • Search — type a SKU or product name to filter instantly
  • Class filter — show only Component, Consumable, etc.
  • Zero stock filter — toggle "Hide zero stock" to focus on items that need attention, or "Show all" to see everything

6.5 Price Lists

Price Lists manage selling prices for products across three pricing tiers: Retail, Dealer, and Special. Each product can have different prices for each tier.

Price Lists page
The Price Lists page. Switch between Retail, Dealer, and Special tabs.

Price list columns

ColumnMeaning
SKUProduct stock-keeping code
NameProduct name
ClassProduct class
CategoryProduct category
Current PriceThe active selling price for this tier (in ₹, excluding GST)
Effective FromDate this price became active

Click on a product row to open a side panel with the full pricing history and details for that product.

Tip: Use the "Show unpriced variants" checkbox to find products that do not yet have a price set for the selected tier.

7. Dispatches

A dispatch records a shipment of goods to a client. Every dispatch has a unique number, is linked to a client, contains a list of items, and moves through a series of stages from packing to delivery.

7.1 Dispatch List

Dispatch list page
The dispatch list. Every dispatch row shows its current stage with a colour badge.

List columns

ColumnMeaning
Dispatch No.Auto-generated number (e.g. DISP-202526-001). Unique per company per financial year.
Ready DateThe date the goods were ready for pickup.
ClientThe receiving company or person.
Project No.Optional project reference.
StageCurrent status of the dispatch (see Section 7.2).
CourierThe courier service being used.
UrgencyNormal or Urgent.

Filtering the list

Dispatch list filtered by stage
Use the Stage dropdown and date range filter to narrow down the list.
  • Stage filter — select a specific stage (e.g. "In Transit") to see only those dispatches
  • From / To date filter — filter by Ready Date range using the calendar date picker
  • Search bar — search by dispatch number, client name, or project number
  • Clear Filters button — resets all filters at once

Generate PDF

Click the Generate PDF button (top right of the list) to download a PDF report of the currently filtered dispatches. The PDF includes all visible columns and respects your active stage and date filters.

7.2 Dispatch Stages

Every dispatch moves through these stages in order:

Ready
Goods packed,
awaiting pickup
→
Dispatched
Goods handed
to transporter
→
In Transit
LR/Docket no.
confirmed
→
Delivered
Received by
client

Cancellation is possible from Ready or Dispatched stage only. Once a dispatch is In Transit, it cannot be cancelled.

What each stage means

StageMeaningWhat to do next
Ready Goods are packed and labelled. Packages are confirmed. When transporter picks up, click Update Status → Dispatched
Dispatched Goods have left the premises with the transporter. When you have the LR/Docket number, click Update Status → In Transit
In Transit Transporter confirmed; LR number recorded. Goods are on their way. When client confirms delivery, click Update Status → Delivered
Delivered Client has received the goods. Receiver's name recorded. No further action. Print History PDF if needed.
Cancelled Dispatch was cancelled. Stock has been restored automatically. No further action. Print History PDF if needed.

What is required at each stage transition

TransitionRequired field
Any → DispatchedNone (just the status date)
Dispatched → In TransitLR / Docket Number (from the transport company)
In Transit → DeliveredReceiver Name (person who accepted delivery)
Any → CancelledCancellation Reason
Important: Packages must be confirmed before a dispatch can be moved from Ready to Dispatched. If the "Update Status" button does not offer "Dispatched" as an option, check the Packages tab first.

7.3 Dispatch Purpose

Every dispatch has a purpose that determines what fields are shown on the form and how the dispatch number is formatted. There are four types:

PurposeNumber PrefixWhen to use
Project DispatchDSP-Sending materials to a project site (most common)
SamplingSMP-Sending product samples for client evaluation
Job WorksJW-Sending materials to a vendor for processing
Document SubmissionDOC-Sending documents to a recipient (no product items)

The purpose selector appears as four clickable cards at the top of the create dispatch form. Project Dispatch is selected by default. Changing the purpose immediately shows or hides relevant form sections.

Key differences by purpose

  • Job Works — shows a Vendor field instead of Client, plus Work Order Number and Processing Instructions fields
  • Document Submission — hides the product Items section entirely
  • Sampling and Job Works — show an Expected Return Date field
  • Project Dispatch — requires a Project link (autocomplete selector)
Tip: The purpose is shown on the dispatch list page as a label next to the dispatch number, so you can quickly see what type each dispatch is.

7.4 Creating a Dispatch

Click + Create Dispatch from the Dispatches list page. The form has four sections.

Section 1 — Dispatch From (choose the origin)

Dispatch From section
The top of the Create Dispatch form. Choose where goods are being dispatched from.

Select one of three origins:

OptionWhen to use
Company Address (default)Goods are going out from your main office/workshop.
WarehouseGoods are going out from a specific storage location. Select the warehouse from the dropdown.
Vendor DirectA vendor is shipping directly to your client. Search for the vendor and select their dispatch address.
Warehouse option selected
When "Warehouse" is selected, a dropdown appears to choose which warehouse.
Vendor Direct option selected
When "Vendor Direct" is selected, search for the vendor by name.

Also in this section, fill in the Document Type (Challan or Invoice) and the Document Number.

Section 2 — Client & Delivery

This section identifies who the goods are going to and where they are going.

  1. Client / Company — start typing the client or dealer name. A dropdown of matching records appears. Click to select.
  2. Billing Address — select from the client's saved addresses. The dropdown auto-populates after selecting the client.
  3. Delivery Address — select the site or delivery address.
  4. Contact Person (optional) — select the person at the client who should be contacted about this dispatch.
  5. Urgency — Normal or Urgent. Urgent dispatches are highlighted.
  6. Ready Date — the date the goods will be ready for pickup. Defaults to today.
  7. Expected Delivery Date — auto-suggested as Ready Date + 3 days. You can change it.
  8. Project Number / Name (optional) — link this dispatch to a project for tracking.
Tip: If the client's address is not in the dropdown, you can add it inline by clicking "Add new address" in the address dropdown, or by going to the client record first and adding the address there.

Section 3 — Items

Items section
The Items section. Search for products, enter quantities, and add remarks per line.
  1. Click + Add item.
  2. In the Product column, start typing the product name. Select from the dropdown.
  3. The Unit fills in automatically from the product's type.
  4. Enter the Quantity.
  5. Add Remarks if needed (e.g. "Cut to 3.2m lengths", "Special colour batch").
  6. Repeat for each item. Click the ✕ button on a row to remove it.
Insufficient stock: If any item does not have enough stock, a confirmation dialog appears listing the short products (e.g. "T0B3M 2000mm: 5 available, 10 requested"). You can choose to proceed anyway (the stock goes negative, representing a backorder) or cancel to go back and adjust quantities.

Section 4 — Transport

Transport section
The Transport section. Fill in courier details; you can add the LR number later.
FieldNotes
Transport ModeRoad, Air, Rail, Bus, Sea, or Hand Delivery. Select Hand Delivery when goods are picked up in person — no courier or LR number is needed.
Transport CompanyName of the transport or logistics company.
Courier AgencyCourier name if using a courier (e.g. DTDC, Delhivery).
Docket / LR No.The tracking number from the transporter. Can be left blank and filled later when you mark the dispatch as "In Transit".
Packed By / Verified ByNames of the staff who packed and verified the shipment.
NotesAny additional instructions or information about this dispatch.

After filling all sections, click Create Dispatch → at the bottom. The new dispatch opens in detail view at Ready stage.

7.5 Dispatch Detail Page

Dispatch detail overview tab
The dispatch detail page. The stage badge and dispatch number are shown at the top.

The detail page has six tabs:

TabWhat it shows
OverviewFull dispatch details: client, addresses, dispatch source, dates, transport, notes
ItemsLine items: product name, quantity, unit, remarks
PackagesPhysical packages: create, assign items, confirm, print labels
DocumentsPacking list PDF download; uploaded challan/invoice files
HistoryStage change log and tracking notes; Update Status button
ActivityTimeline of all changes made to this dispatch (see Section 14)
Dispatch items tab
The Items tab lists every product in this dispatch.
Dispatch history tab
The History tab records every stage change and tracking note in chronological order.

7.6 Packages

Before a dispatch can be moved to Dispatched stage, all packages must be confirmed. Packages are the physical boxes or rolls that the goods are shipped in. Confirming packages allows you to print individual package labels (with dimensions, weight, and QR code).

Step 1 — Create packages

Packages tab — create packages
The Packages tab before any packages are created. Enter the number of packages and click Create.
  1. Open the dispatch detail page and click the Packages tab.
  2. Enter the number of packages (e.g. 3 boxes).
  3. Click Create Packages. Three empty package slots appear.

Step 2 — Assign items to packages

Each package has an Assign Items section. Move items from the dispatch into each package. You can split an item across multiple packages — for example, if a membrane roll is cut across two boxes.

  1. Click on Package 1 (or whichever package you are filling).
  2. Add items and enter the quantity going into that package.
  3. Optionally fill in Weight (kg), Dimensions (length × width × height in cm), and Package Type (box, roll, envelope, etc.).
  4. Repeat for each package until all items are assigned.

Step 3 — Confirm packages

  1. Once all items are assigned to packages, click Confirm Packages.
  2. The packages are locked. Each package row shows a Print Label button.
  3. Click Print Label on each package to download and print the label PDF.
Note: Once packages are confirmed, they cannot be changed. To make changes, you must use the Edit button (visible at Ready stage before packages are confirmed). See Section 7.8.

7.7 Updating Dispatch Status

Use the Update Status button to move a dispatch to its next stage. This button appears on the dispatch list (in the Actions column) and on the dispatch detail page header and History tab.

Update Status modal
The Update Status modal. The stage dropdown shows only valid next stages.
  1. Click Update Status on the dispatch list row or detail page.
  2. Choose the New Stage from the dropdown. Only valid next stages are shown — you cannot skip backwards.
  3. Set the Status Date (defaults to today). Use the actual date the event happened.
  4. Fill in the stage-specific field if shown:
    • In Transit: enter the LR / Docket Number from the transporter
    • Delivered: enter the Receiver's Name
    • Cancelled: enter the Cancellation Reason
  5. Optionally add a Status Note (e.g. "Delay due to road closure; expected tomorrow").
  6. Click Save Status.
Adding a tracking note without changing stage: When a dispatch is In Transit, the stage dropdown includes an option "In Transit (tracking update only)". Select this to add a tracking note without changing the stage — useful for recording courier updates mid-transit.

Terminal stages

Once a dispatch reaches Delivered or Cancelled, it cannot be changed further. The "Update Status" button is replaced with a Print Dispatch History button, which generates a PDF summary of the entire dispatch history.

7.8 Editing a Dispatch

Dispatches can be edited only while in Ready stage and before packages have been confirmed. Once packages are confirmed or the dispatch has moved to a later stage, editing is not possible.

Edit dispatch modal
The Edit Dispatch modal. Modify delivery info, items, or transport details.
  1. Open the dispatch detail page (must be in Ready stage, packages not yet confirmed).
  2. Click the Edit button in the page header. A full-screen edit modal opens.
  3. Make changes across the three sections: Delivery Information, Items, Transport.
  4. Click Save. The page refreshes with the updated details.
Warning: Saving an edit replaces all items in the dispatch. Stock levels are adjusted automatically — removed items are restocked, newly added items are deducted.

7.9 Deleting a Dispatch

Dispatches that were created by mistake can be permanently deleted. Deletion is only available for dispatches in Ready or Cancelled stage.

Delete dispatch confirmation modal
The type-to-confirm modal. You must type the exact dispatch number before the Confirm button enables.
  1. Open the dispatch detail page. The red Delete Dispatch button appears in the action bar (only on Ready or Cancelled dispatches).
  2. Click Delete Dispatch. A confirmation modal appears.
  3. Type the exact dispatch number (e.g. "DISP-202526-003") into the confirmation field. The Confirm button only enables when the number matches exactly.
  4. Click Confirm. The dispatch and all its packages, items, and history are permanently removed.
Warning: Deletion is permanent and cannot be undone. If the dispatch was in Ready stage, all stock that was deducted when the dispatch was created is automatically restored to inventory.
Note: If the dispatch was in Cancelled stage, stock was already restored when it was cancelled — no additional stock change occurs.

8. Projects

A project tracks an installation job from enquiry through to completion. Projects link to clients and can be referenced on dispatches for tracking which goods went to which job site.

8.1 Project List

Projects list page
The projects list. Search by project number or name, or filter by stage.

List columns

ColumnMeaning
Project #Unique project reference number
NameShort project name or description
ClientThe client this project belongs to
StageCurrent project stage (Enquiry, Quoted, Mockup, Confirmed, In Progress, Completed, Lost, Cancelled)
BudgetEstimated project budget
Assigned ToStaff member responsible for this project
Enquiry DateWhen the initial enquiry was received

Filtering

  • Search — type a project number or name
  • Stage filter — filter by a specific project stage
  • Assigned To — filter by the responsible staff member

Adding a Project

  1. Go to Operations → Projects.
  2. Click + Add Project.
  3. Fill in the project name, client, budget, and other details.
  4. Click Save. The project is created at "Enquiry" stage.

8.2 Project Detail

Project detail page
The project detail page with multiple tabs for different aspects of the project.

Click on any project row to open the detail page. The page has seven tabs:

TabWhat it shows
OverviewAll project details: client, budget, assigned staff, dates, stage, notes
Line ItemsProducts and services included in this project
MilestonesKey project milestones and their completion status
MockupsAttached design mockups and drawings
DocumentsProject-related documents (quotations, POs, invoices)
Stage HistoryLog of all stage changes with dates and notes
PaymentsPayment schedule, milestones, and recorded payments (see Section 8.3)
ActivityTimeline of all changes (see Section 14)

To edit a project, click More ▼ → Edit from the detail page.

8.3 Project Payments

The Payments tab on the project detail page lets you track payments against milestones. Define a payment schedule with the project value, add milestones, and record payments as they come in.

Project Payments tab
The Payments tab shows the project value, milestone table, and payment history.

Setting up a payment schedule

  1. Open a project and click the Payments tab.
  2. Click Set Up Payment Schedule.
  3. Enter the Base Amount (project value before GST) and GST Percentage (defaults to 18%).
  4. The Grand Total is calculated automatically. Click Save.

Adding milestones

  1. Click + Add Milestone.
  2. Enter a Name (e.g. "Advance", "After measurement", "Before dispatch").
  3. Optionally enter an Invoice Number.
  4. Choose Fixed Amount or Percentage of Total, then enter the amount.
  5. Optionally set a Due Date.
  6. Click Save.

Recording a payment

  1. Click Record Payment.
  2. Enter the Amount, Payment Date, and optionally a Reference Number (e.g. UTR/RTGS number).
  3. Allocate the payment to one or more milestones. Click Auto-allocate to fill amounts automatically (earliest milestone first), or enter amounts manually.
  4. Click Confirm Payment. The milestone balances update immediately.

Milestone status badges

StatusMeaning
PendingNo payments received yet
PartialSome payment received but not fully paid
PaidFully paid
OverdueDue date has passed and balance remains
Important: Recorded payments cannot be edited or deleted — they are permanent records. Double-check the amount and allocation before confirming.

9. Site Activities

Site Activities track work done at project sites — installations, measurements, inspections, and other field visits. Each activity is linked to a project, has one or more activity types, and can include assigned installers, linked dispatches, expenses, and uploaded photos.

9.1 Activity List

Site Activities list page
Operations → Site Activities. Filter by activity type, date range, or search by project name.

Go to Operations → Site Activities to see all recorded activities. The list shows:

  • Date — when the activity took place
  • Project — which project the activity belongs to
  • Activity Types — what kind of work was done
  • Installers — who was assigned
  • Status — Completed or Cancelled

Filtering

  • Search — type a project name or number
  • Activity Type — filter by a specific type (e.g. Installation, Measurement)
  • Date range — filter by From and To dates

9.2 Creating an Activity

  1. Go to Operations → Site Activities.
  2. Click + New Activity.
  3. Select the Project from the dropdown.
  4. Set the Activity Date.
  5. Select one or more Activity Types.
  6. Optionally add Installers, Dispatches, Expenses, and upload Photos.
  7. Add any Notes about the work done.
  8. Click Save.
Tip: You can also import site visits in bulk using the Import Site Visits button on the list page.

10. Planned Activities

Planned Activities let you schedule future work — upcoming installations, measurements, or inspections. Unlike Site Activities (which record past work), planned activities are for scheduling what is coming up.

Planned Activities page
Operations → Planned Activities. Switch between list view and calendar view.

List and Calendar views

Use the toggle buttons in the top-right corner to switch between List view (table showing date, project, activity type, and notes) and Calendar view (monthly calendar with activities shown on their planned dates).

Creating a planned activity

  1. Go to Operations → Planned Activities.
  2. Click + New Planned Activity.
  3. Select the Project.
  4. Set the Planned Date.
  5. Select the Activity Type.
  6. Optionally add Notes.
  7. Click Save.
Note: Planned activities appear on the Dashboard under "This Week" when they fall within the current week, helping you track upcoming work.

11. Installers

The Installers module manages your installation team — the people who go to client sites to install stretch ceilings and backlighting. Each installer can have multiple skills assigned to them.

11.1 Installer Skills

Installer Skills define the types of work your installation team can do (e.g. "Stretch Ceiling Installation", "LED Backlighting", "Profile Cutting"). Define skills first, then assign them to individual installers.

Installer Skills list
The Installer Skills page under Field → Installer Skills.

Adding a Skill

  1. Go to Field → Installer Skills.
  2. Click + Add Skill.
  3. Enter the skill Name (e.g. "Stretch Ceiling Installation").
  4. Click Save.

Skills can be deactivated (More ▼ → Deactivate) if no longer needed. Use the Show inactive checkbox to see deactivated skills.

11.2 Installers

An Installer is a person on your installation team. Each installer has a name, phone number, employment type, and one or more skills from the skills list.

Installers list
The Installers page shows name, employment type, phone, skills, and status.

List columns

ColumnMeaning
NameInstaller's full name
Employment TypeFull Time or Contract
Primary PhoneContact number
SkillsAssigned skills (from the Installer Skills list)
StatusActive or Inactive

Adding an Installer

  1. Go to Field → Installers.
  2. Click + Add Installer.
  3. Enter the installer's Name and Phone number.
  4. Select Employment Type: Full Time or Contract.
  5. Choose one or more Skills from the dropdown.
  6. Click Save.

Viewing installer details

Click on any installer row to open a side panel showing the Overview and Skills tabs. From the panel footer, you can Edit, Deactivate, or Duplicate the installer.

Filtering

  • Search — type an installer name
  • Filter tabs — All, Full Time, or Contract
  • Show inactive — toggle to include deactivated installers

11.3 Installer Daily Log

The Installer Daily Log tracks where each installer is working on any given day. It shows a date-based grid of all installers with their daily entries (projects, categories, and notes).

Installer Daily Log page
Field → Installer Daily Log. Navigate between dates using the arrows or date picker.

How it works

  • Use the date navigation (left/right arrows or date picker) to select a day.
  • Each row shows an installer with their daily entries as coloured pills (one per project/category).
  • A green dot means the installer has entries for that day; red dot means no entries yet.
  • A gap badge shows how many installers are missing entries for the selected date.

Adding an entry

  1. Go to Field → Installer Daily Log.
  2. Select the date for the entry.
  3. Click the + Add Entry button or click on an installer row.
  4. Select the Installer, Category (e.g. Site Work, Travel), and optionally a Project.
  5. Add any Notes and click Save.

Calendar view

Click on an installer name to open their individual calendar view, which shows a monthly calendar with all entries and a summary of completed, cancelled, and total days.

Logging installer leave (this is how installer leave reaches payroll)

Installers do not use the Leave Register. Their leave is read from the Daily Log: any day logged under a category that counts as leave (for example "Leave") or counts as weekly off (for example "Weekly Off") is picked up by that month's payroll run. Which categories count is set in 14.6 Log Categories. Every installer leave day is unpaid (LOP).

Half day

  1. Open the entry form with + Add Entry and pick the installer.
  2. Choose a leave category (one that counts as leave) and a single date. A Half day checkbox appears.
  3. Tick Half day if the installer was on leave for only half the day. It counts as 0.5 leave day (0.5 day unpaid). Unticked = 1 full day.
  4. Click Save.

The Half day checkbox disappears (and is unticked) if you switch to a category that does not count as leave, or enter a date range.

Entering leave for several days at once (date range)

When the category counts as leave or as a weekly off, the Date field becomes a Date Range. Pick the first and last day. Below the dates you see a line such as "5 days (skips 1 Sunday, 1 holiday)".

  • Sundays and the installer's location holidays are skipped automatically — no entry is created for those dates.
  • A range can be at most 62 days. If you see "Pick a range of 62 days or less.", split it into two entries.
  • If every day in the range is a Sunday or holiday you see "This range has only Sundays/holidays." and nothing is saved.
  • Half day is not offered for a range — enter the half day as its own single-date entry.
Daily Log entry form with a leave date range and day count
Leave for a date range. The line under the dates shows how many days will be created and which Sundays/holidays are skipped.

Mark Leave / Mark Weekly Off for several installers

  1. Tick the installers on the Daily Log list using their checkboxes. Only installers with no entry yet for the day shown can be ticked; the button shows how many are selected, e.g. "Mark Leave (3)".
  2. Click Mark Leave (or Mark Weekly Off). A small date-range box opens.
  3. Pick the Date Range, add optional Notes, check the day count line, and click Confirm.

Sundays and holidays are skipped here too. If you see "No log category is set to count as leave. Set one in Log Categories." or "More than one log category counts as leave…", an administrator needs to fix the Payroll treatment in 14.6 Log Categories so that exactly one category counts as leave (and one as weekly off).

Warning: "payroll is finalized"

If you log leave for a month whose payroll has already been finalized, the form shows "October 2026 payroll is finalized. This won't change pay. Use Corrections if needed." You can still save the entry — the Daily Log is never locked — but the finalized pay does not change. Tell the administrator so they can fix the pay with a Correction if needed.

Tip: Fill in each installer's Daily Log for the whole month before the month's payroll run is generated. A working day (Monday to Saturday, not a holiday) with no Daily Log entry is paid as present, and the payroll run shows a warning for it.
Note: Entries that are auto-created from site activities show an italic label. You can add additional manual entries on top of auto-created ones.

12. Salary Tracking

The Payroll section replaces the monthly salary Excel workbook. It keeps one record per employee (installers and office/internal staff both), a running balance for what the company owes each person, a monthly Payroll Run that calculates everyone's pay at once, and on-demand payslips.

Payroll Employees list
Payroll → Employees. The starting point for the whole module.
Who can see this: The whole Payroll section in the sidebar is only visible to Admin and HR users. Within it, Employees and Staff are open to both Admin and HR — but Payroll Runs and Payroll Settings are Admin only. If you don't see Payroll in your sidebar at all, ask an administrator to check your user role in Settings → Users.

Leave pages: Leave Register, Leave Summary and Year-end Leave are open to both Admin and HR. HR can add, edit and delete leave, use Adjust Balance on an employee's Leave tab, run Confirm opening balances, and make year-end choices. The Holidays list, the leave start month, the Employee form and the payroll runs themselves stay Admin only — HR sees the paid/LOP result through the Leave Register, the Leave tab and the Leave Summary.
How leave works in short: staff leave is entered in the Leave Register; installer leave comes from the Installer Daily Log. When the month's payroll run is generated, the system works out how many leave days are paid (taken from the staff member's leave balance) and how many are LOP (loss of pay), and reduces Present Days and salary for the LOP days. You never type Present Days or LOP by hand on these runs.

12.1 Payroll Employees

This is the master list of everyone on payroll — both installers and office/internal staff. Each row is one person's salary record: their department, designation, salary amount, and payment mode.

Employees list columns

ColumnMeaning
Emp IDThe employee's payroll ID, e.g. EMP-013
NamePulled from the linked Installer or Staff record
TypeInstaller or Staff
DeptDepartment
DesignationJob title
CompanyWhich company entity pays this person
Salary ModeCash or Bank
Monthly SalaryFixed monthly salary amount
StatusActive or Left

Use the search box to find someone by name or Emp ID. The Department, Person Type, Company, and Status filters can be combined. The list shows Active employees only by default — change the Status filter to see people who have left.

Adding an employee

  1. Go to Payroll → Employees and click + Add Employee.
  2. Choose Person Type — Installer or Staff. This decides which list you search in the next step.
  3. Search and select the person by name. Their Date of Joining, PAN, Aadhaar, and Employment Type fill in automatically for reference (you can't edit these here). The same person can be added more than once if needed.
  4. Enter the Emp ID. A suggested ID is filled in automatically based on the last one used for the selected company — you can change it if you like.
  5. Choose Company, Department, Designation, and Location from the dropdowns.
  6. Choose Salary Mode — Bank Transfer (the default) or Cash. If Bank Transfer, fill in Bank Name, Account Number, IFSC Code, and Account Holder Name.
  7. Enter Monthly Salary, Starting Salary, Opening Balance, and Leave Balance. Opening Balance can be negative if the employee owes the company money — otherwise leave it at 0.00. As On Date defaults to today.
  8. Add allowances and salary history if needed — see below. These are optional and can also be added later from the Employee Ledger page.
  9. Click Save Employee. You're taken to the new employee's Ledger page.
Add/Edit Payroll Employee form
The Employee form. Person Type, the person picker, and Company can no longer be changed once the employee is saved.

Adding an allowance

On the Employee form, in the Allowances card, click + Add Allowance. Choose the Allowance Type (e.g. Meal Allowance, Conveyance) — the Amount and whether it's Per Day or Flat Monthly fill in automatically from the type, and you can override both. Click Save to add it to the table.

Adding a salary increment

In the Salary Appraisal History card, click + Add Increment. Enter the Increment Amount, the Effective Date, and optionally an Appraisal Period (e.g. "FY2026-27") and Notes. This is a permanent record — increments cannot be edited or removed once added, only new ones added on top.

Tip: When editing an existing employee, allowances and increments save immediately when you click their own Save button in the modal — you don't need to also save the main form. When adding a new employee, they only save once you click the main Save Employee button.

Editing an employee

Click the ✎ icon on any row, or open the employee's Ledger page and click ✎ Edit Employee. Everything is editable except Person Type, the linked Installer/Staff person, and Company — those are shown for reference only.

Leave fields on the Employee form

Two leave fields sit side by side near the bottom of the form:

FieldWhat to enter
Leave Balance (days)The staff member's paid leave days available. 0 or more, in steps of 0.5 (e.g. 8, 6.5). It can never be negative. For installers this figure is not used.
Extra weekly offs per monthShown for Staff only. Choose 0–4. These are days off each month on top of Sundays that are not counted as leave — for example 1 for someone allowed one extra day off a month. Default 0. Unused days lapse at month end; working that day is not overtime.
Employee form leave fields
Leave Balance (days) and Extra weekly offs per month on the Employee form.
  • Every change to a staff member's Leave Balance is recorded on their Leave tab as a "Balance adjustment" row with the note "Edited on Employee form" (or "Entered on Employee form" for a new employee).
  • Leave Balance locks once the employee's company has finalized its first leave-driven payroll run (April 2026 for us). After that the field is read-only and shows "Change the balance with Adjust Balance on the Leave tab." — use Adjust Balance instead.
  • When adding a new employee the Leave Balance stays editable — it is their starting balance.
  • An installer can be linked to only one active payroll employee at a time. If you see "This installer is already linked to payroll employee …", deactivate that other record first.

What happens to leave when you deactivate an employee

When you click Deactivate on a staff member who still has leave days, the confirm box adds one line telling you what will happen to that balance:

Leaving statusWhat happens to the leave balance
QuitPaid out as Leave encashment in the run for the month they leave, e.g. "Leave balance 6.5 days will be paid out in the October 2026 run."
Terminated / AbscondedThe balance lapses (no payout). If their final month's run is still to be finalized: "Leave will be settled when the October 2026 run is finalized." Otherwise it lapses straight away: "Leave balance 6.5 days will lapse (terminated)."
Still "Active" with a leaving date set"The leaving date is set but the status is Active. Set the leaving status first." — set Quit / Terminated / Absconded on the Staff or Installer record first.
Important: Always enter the leaving date and the leaving status (Quit, Terminated or Absconded) before the leaver's last payroll run. A leaver is included in the run for the month of their leaving date, with salary only for the days they worked that month. Without a leaving date they are not picked up at all.

12.2 Staff

Staff is where you record the personal details of office/internal staff — people who are not installers. It works exactly like the Installers page: the same Personal Details, Employment Details, Identity, Address, Phones, Emails, and Emergency Contacts sections.

Staff list
Payroll → Staff. Search, select rows with the checkboxes, and click a row to open its detail panel.

Adding a staff member

  1. Go to Payroll → Staff and click + Add Staff.
  2. Fill in the same sections as an Installer record — Personal Details, Employment Details, Identity documents, Address, and any Phones/Emails/Emergency Contacts.
  3. Click Save. You're returned to the Staff list.

Add this Staff person to Payroll → Employees separately (Person Type = Staff) once you also need to track their salary — creating a Staff record on its own does not create a payroll record.

Deactivating / reactivating staff

Select one or more rows using the checkboxes and use the bulk-deactivate action, or open a staff member's detail panel and click Deactivate/Reactivate. Deactivating a staff member also deactivates their phone and email records.

12.3 Employee Ledger

Click any row on the Employees list to open that person's Ledger — a running record of everything earned, deducted, or paid, with a live balance of what the company currently owes them (or, if negative, what they owe the company).

Employee Ledger page
The Employee Ledger. Summary card at the top, full entry history below.

Summary card

Shows Emp ID, Department/Designation, Monthly Salary, Leave Balance, and the Current Balance Payable in large text (shown in red if negative). Below it, one tile per allowance the employee is currently assigned.

Ledger table

ColumnMeaning
DateWhen the entry happened
TypeEarning, Deduction, Payment, or Correction
Categorye.g. Salary, Incentive, PF, Advance Given
Credit / DebitAmount added to or taken from the balance
BalanceRunning balance after this entry

Rows are shown newest first. Some rows have a lock icon instead of edit/delete buttons:

Lock iconMeaning
🔒 From RunCreated automatically by a monthly Payroll Run — can't be edited directly
🔒 CorrectionCreated by a Correction — permanent record, click through to see it
🔒 From PaymentCreated when a payment was recorded in Payables — click it to open that payment

Any other row was added by hand (an "ad-hoc" entry) and shows ✎ (edit) and 🗑 (delete) icons instead.

Adding a ledger entry by hand

  1. On the Ledger page, click + Add Entry.
  2. Choose Entry Type — Earning, Deduction, or Payment. This changes the Category options below it.
  3. Choose a Category. For Earnings: Incentive, Bonus, OT Amount, or Other Earning. For Deductions: PF, ESI, PT, TDS, LOP, Loan Repayment, Advance Recovery, or Other. For Payments: Advance Given or Loan Disbursement — the two salary-payment categories are greyed out because those are always created automatically from Payables, never entered here.
  4. Enter the Date (defaults to today) and the Amount (must be greater than 0).
  5. Add a note if useful (e.g. "Diwali bonus") and click Save. The balance updates immediately.

To fix a mistake on an ad-hoc entry, use its ✎ icon to edit or 🗑 to delete it (deleting asks for confirmation and cannot be undone from the screen). Entries locked to a Payroll Run or a Correction cannot be edited or deleted this way — see 12.5 Corrections to fix a mistake from a finalized run.

Leave tab

The Ledger page has three tabs: Salary Ledger, Loan/Advance Ledger and Leave. Click Leave to see the person's leave. (Clicking a row on the Leave Summary opens this tab directly.) The + Add Entry button at the top is hidden while the Leave tab is open — the tab has its own buttons.

For staff

A Leave balance card at the top shows Current balance, Paid leave taken this FY and LOP days this FY, with two buttons: Add Leave (opens the same form as the Leave Register, with the employee already filled in) and Adjust Balance.

The balance and the "taken this FY" numbers change only when a month's Payroll Run is finalized. While the run is still a draft, the run may already show paid leave days for someone, but their Leave tab still shows the old balance. This is normal.
Staff Leave tab on the Employee Ledger
The Leave tab for a staff member: balance card, Add Leave and Adjust Balance, and the full leave history.

Below the card is the leave history, newest first:

ColumnMeaning
DateThe leave dates (e.g. 05/10–07/10/2026) or the date of the change. A grey Back-dated tag means the row was added later with an earlier date.
TypeLeave, Opening balance, Balance adjustment, Year-end carry, Payout or Lapsed
Days (±)How the row changed the balance (e.g. +8, -1). Leave not yet finalized shows its days in grey — it has not touched the balance yet.
Paid/LOPFor leave rows, the same status as in the Leave Register (e.g. "Finalized · Paid 2 · LOP 1")
NoteYour note or reason, or a system note such as "Payroll run October 2026"
ByWho made the change
Running balanceBalance after this row — shown only on rows that changed the balance

Click a leave row that is not yet finalized to edit it.

Adjust Balance (staff only)

Use this to correct a staff member's leave balance — for example after an opening balance review. Admin and HR can both use it.

  1. Click Adjust Balance on the Leave tab. The box shows the Current balance at the top.
  2. Enter Days — a positive number to add, or a negative number to take away, in steps of 0.5 (e.g. 12 or -1.5). It can't be 0. The line "New balance: … days" shows the result.
  3. Check the Effective date (defaults to today; can't be in the future).
  4. Enter a Reason (at least 3 characters, e.g. "Opening balance review").
  5. Click Save. You see e.g. "Balance adjusted (+12 days)" and a new "Balance adjustment" row appears in the history.
Adjust Balance form
Adjust Balance. The preview line shows the new balance before you save.
The balance can never go below zero. If the adjustment would make it negative you see e.g. "Balance would become -1.5 days. Balance can't go below zero."
For installers (read-only)

Installers have no leave balance, so there is no Add Leave or Adjust Balance (and the Leave Balance tile in the summary card is hidden). The tab shows "Leave this FY: 23 of 60 days" and a list of the leave days logged in the Daily Log for the chosen financial year (FY filter): Date, Day, Category, Counts as (1, 0.5 (half day), or "Not counted (Sunday)", "Not counted (holiday: …)", "Not counted (outside employment)") and Note. Leave logged under either company counts. The "of 60" matters for the March Leave salary.

Deactivating / reactivating an employee

Use the Deactivate/Reactivate button at the top of the Ledger page. A deactivated employee is excluded from future Payroll Runs but their ledger history stays intact. A leaver whose leaving date is in the run month is still included in that month's run — see 12.1 → What happens to leave when you deactivate.

12.4 Payroll Runs

Admin only: Generating, editing, and finalizing Payroll Runs is restricted to administrators.

A Payroll Run calculates one month's salary for every active employee at once — salary, allowances, incentives, bonus, overtime, and deductions — and, once finalized, posts the results to each employee's Ledger and creates the payment records in Payables.

Payroll Runs list
Payroll → Payroll Runs. One row per company per month.

Generating a run

  1. Go to Payroll → Payroll Runs and click + Generate for Month.
  2. Choose the Company, Month, and Year, then click Generate. You can't generate two runs for the same company and month.
  3. You land on the new run's review page, with one line per active employee already calculated.

Reviewing and fixing a line before finalizing

The run's table (Employee, Previous Balance, Present Days, Leave Taken, Salary, Allowances, Incentive, Bonus, OT Amount, Deductions, Gross, Net Payable) is read-only while you're looking at it. (Runs from April 2026 onward show leave differently — see Leave on payroll runs below.) To change a number for one employee:

  1. Click the ✎ icon on that employee's row.
  2. A form opens with Present Days, Leave Taken, Incentive, Bonus, OT Hours, OT Amount, and the 8 deduction fields (PF, ESI, PT, TDS, LOP, Loan Repayment, Advance Recovery, Other).
  3. Update whichever fields need correcting and click Save. The row's Salary, Gross, and Net Payable recalculate automatically.
A row with a Net Payable of ₹0 or less shows a warning icon — no payment record will be created for that employee this month. This is just informational; it doesn't stop you from finalizing.

Leave on payroll runs (leave-driven runs)

Every run for a month on or after the leave start month (April 2026 — set in Payroll Settings) is a leave-driven run. On these runs the system works out leave, paid days, LOP and Present Days for you from the Leave Register (staff) and the Installer Daily Log (installers). Runs for earlier months, and all runs while the start month is not set, work the old way with Present Days, Leave Taken and LOP typed by hand.

If the start month is not set, clicking + Generate for Month first asks "Leave-driven payroll is not enabled. This run will use manual Present Days." — click Cancel and set the start month first unless you really want a manual run.

Payroll run with Leave, Present Days and Leave pay columns
A leave-driven draft run. The Leave column shows each person's total leave and how it was split.

What changes on a leave-driven run:

Column / itemMeaning
LeaveTotal leave days with their split, e.g. 4 (Paid 2 / LOP 1 / OT 1). Paid = taken from the leave balance; LOP = unpaid; OT = leave days cancelled by approved overtime days; Weekly off = the staff member's extra weekly off. Installers only ever show LOP, e.g. "2.5 (LOP 2.5)". Replaces the old Leave Taken column.
Present DaysWorked out automatically: days employed in the month (30 for a full month) minus LOP days. Salary = monthly salary ÷ 30 × Present Days.
Leave payInstaller Leave salary (March run) or staff Leave encashment (March pay out or a leaver who quit). A dash when none. If someone does not qualify, a grey reason appears under ₹0, e.g. "Not eligible (FY leave 64 > 60)".
DeductionsNo longer includes an LOP amount — LOP is already taken off through Present Days.
Leave breakdown

Click the number in the Leave cell to see which dates make it up, e.g. "Leave 4 (01/10, 05–07/10) = Paid 2 + LOP 1 + OT 1". For an installer it also lists leave rows that were not counted (Sundays, holidays). Click the Leave pay amount to see how it was worked out. Press Escape or click elsewhere to close.

Editing a line on a leave-driven run

The ✎ form no longer has Present Days, Leave Taken or LOP — the top of the form shows the calculated summary, e.g. "Leave 4 (Paid 2 / LOP 1 / OT 1) · Present 29". For staff with leave that month there is one new field, OT days offset: the number of approved overtime days that cancel leave days (0.5 steps, at most that month's leave days). It gives no OT pay for those days. The summary updates as you type.

Leave warnings

A Leave warnings (N) panel appears when something in the data looks wrong:

  • An installer's working days with no Daily Log entry (they are paid as present) — use Open Daily Log to fill them in.
  • Installer leave logged on a Sunday or holiday (not counted).
  • A Weekly Off logged on a weekday (counted as unpaid leave).
  • Joining date missing — needed to check Leave salary eligibility.
  • Leaving date set but status still Active — set the leaving status. This one can't be accepted; it must be fixed.

Fix the data and click Recalculate leave, or click Accept on the warning, type a note explaining why it is fine, and click Accept. Tick Apply to all N similar to accept the same kind of warning for that person in one go. Accepted warnings stay visible (with your note) even after the run is finalized.

Leave warnings panel on a payroll run
The Leave warnings panel, grouped by employee, with Open Daily Log and Accept.
Recalculate leave and the "leave changes" banner

If anyone changes leave, holidays, the Daily Log, a leave balance, joining/leaving dates or salary after the run was calculated, a banner appears: "3 employees have leave changes since this run was calculated. [Recalculate leave]". Click Recalculate leave (in the banner or the page header). The whole run is worked out again from the latest data; your OT days offsets are kept. The page subtitle shows when leave was last calculated.

Before you can finalize

Finalize & Post to Payables stays greyed out while anything below is open. A Before you can finalize list under the header shows each item with a link to fix it:

MessageWhat to do
Recalculate leave first.Click Recalculate leave.
Fix or accept all leave warnings first (N open).Fix or Accept each warning in the panel.
Confirm opening balances on the Leave Register first.Only on each company's first leave-driven run — see First-time setup.
Finalize the September 2026 payroll run first.Months must be finalized in order. Finalize the earlier month's run (or generate it first).

When you click Finalize, the confirm box may also say "Previous month's salary payables (Rs. …) are still unpaid and will be carried into this run." This does not stop you, but during the April–September 2026 catch-up it means you have not yet recorded the earlier month's actual payments — see First-time setup.

On Finalize, each staff member's paid leave days are taken off their leave balance.

Discarding a draft run

Click Discard Draft and confirm. This permanently deletes the draft and everything entered on it — only possible before Finalize.

Finalizing a run

  1. Once every line looks correct, click Finalize & Post to Payables.
  2. Confirm the dialog — "This locks the run — corrections only after this point."
  3. The run becomes read-only: the ✎ edit icons disappear, the status badge changes to Finalized, and a note appears: "To fix a mistake, go to the employee's Ledger page and click + New Correction."
A finalized Payroll Run
A finalized run — read-only, no edit icons, Total Net Payable at the bottom.
Once finalized, a run cannot be edited or un-finalized. Double-check every line before clicking Finalize. If a mistake is found afterwards, use a Correction (see below) — never try to recreate the run.

12.5 Corrections

A Correction fixes a mistake on a run that has already been finalized, without touching the original run. It adds a new ledger entry for the difference and, if it increases what's owed, creates a matching Payables record.

Posting a correction

  1. Open the employee's Ledger page and click + New Correction.
  2. Choose the Original Payroll Run the mistake was in — only finalized runs this employee was part of are listed.
  3. Choose the Category that was wrong — the list only shows categories that actually had an amount on that run for this employee.
  4. Describe What Was Wrong and enter the Original Amount (this must match what was actually recorded, or you'll get an error naming the correct figure) and the Correct Amount. The Difference calculates automatically.
  5. Explain the Reason and click Save. You're taken to a printable Correction Receipt.
If the correction increases what's owed, a Payables record is created automatically. If it decreases what's owed (recovering an overpayment), only a ledger deduction is created — no Payables record. Either way, the original finalized run is never changed and stays visible for reference.

Correction Receipt

A read-only page showing every detail of the correction, who posted it and when, and a link to the resulting Payables record if one was created. Click Print to print it, or ← Back to Ledger to return.

12.6 Payroll Settings

Admin only: Payroll Settings is visible only to administrators.

Payroll Settings holds the four reference lists used throughout the Payroll module: Departments, Designations, Locations, and Allowance Types. Each has its own card with its own "Show inactive" toggle.

Payroll Settings page
Payroll → Payroll Settings. Four independent cards.

Adding an item

  1. Click + Add (or + Add Allowance Type) on the relevant card.
  2. Enter the Name. For Locations, also choose Head Office or Branch Office. For Allowance Types, also choose Per Day or Flat Monthly and enter a Default Rate.
  3. Click Save.

Editing / deactivating an item

Click any row (or its ✎ icon) to open the Edit modal, where you can also Deactivate or Reactivate it. Deactivated items no longer appear as choices on the Employee form but stay visible in their card's "Show inactive" view.

The page has two tabs: General (the four cards above, with the Leave settings card at the top) and Holidays.

Leave settings card

The Leave-driven payroll starts from field sets the first month whose payroll run works out leave and LOP automatically. For us this is April 2026.

  1. Choose the month in Leave-driven payroll starts from (e.g. April 2026).
  2. Click Save inside the card. You see "Leave settings saved".
  • Leave entered for months before this month is Historical: it is kept as history (and counts towards an installer's 60-day yearly total) but does not change balances or any payroll run.
  • While this field is blank, payroll runs work the old way (Present Days, Leave Taken and LOP typed by hand).
  • Once the first leave-driven run is finalized in any company, the month locks: the field is greyed out with "Locked: a leave-driven payroll run has been finalized."
  • If you see "Discard the draft runs for … before changing the start month.", discard those draft runs first, then change the month.

Under the field, a Go-live setup list shows Done or To do for each setup step, with a link: start month set; holidays entered for this financial year for each location; leave categories set (one "counts as leave", one "counts as weekly off"); and opening balances confirmed for each company. Once every company has finalized its first leave-driven run, only the holiday line remains.

Leave settings card with the go-live setup list
The Leave settings card at the top of the General tab, with the Go-live setup checklist.

Holidays tab

Holidays are kept per payroll location (e.g. Mumbai head office, Vadodara branch office). When leave is counted, Sundays and the holidays of the employee's own location are skipped — so a staff member on leave across Diwali is not charged leave for the Diwali holiday.

Use the Financial Year filter (defaults to the current year) and the Location filter (All locations) to choose what is listed. The table shows Date, Day, Name and Location, oldest date first.

Payroll Settings Holidays tab
Payroll Settings → Holidays. One list per financial year, filterable by location.
  1. Click + Add Holiday.
  2. Enter the Date (DD/MM/YYYY), the Name (e.g. Diwali) and choose the Location. A holiday that applies to both offices must be added once for each location.
  3. Click Save. You see "Holiday saved".

To change a holiday, click its row (or ✎). To remove it, click 🗑 and confirm. You can't add the same date twice for the same location. A holiday on a Sunday saves but has no effect ("Sundays are already weekly offs; this holiday has no effect.").

Finalized months are not changed. If you add, edit or delete a holiday in a month whose payroll is already finalized, you see "Payroll for October 2026 is already finalized. This change won't alter that run. Fix any pay difference through Corrections." You can still save. Draft and future runs use the change.
Tip: Enter the whole year's holidays for both locations at the start of each financial year (April), before the April payroll run is generated.

12.7 Payslips

A payslip is generated on demand for any employee and month that has a finalized Payroll Run — there's nothing to create in advance.

  1. Open the employee's Ledger page and click View Payslip.
  2. The payslip shows the Payslip No, a Paid/Unpaid status (with payment method and date once paid via Payables), employee details, and full Earnings/Deductions breakdown with the Net Payable total.
  3. Click Print or Download PDF to save or print it — both open your browser's print dialog.
Payslip page
A payslip for a finalized month. Viewing it twice for the same month always shows the same Payslip No.
If the requested month hasn't been finalized yet, the page shows "No payslip available for [Month] [Year] — this month hasn't been finalized yet." instead of a payslip. Finalize the Payroll Run for that month first.

Leave on the payslip

Payslips from leave-driven runs (April 2026 onward) have a Days line between the employee details and the Earnings table:

  • Staff: "Present 29 · Leave 4 (Paid 2 / LOP 1 / OT 1) · Leave balance 6.5" — the leave balance is what is left after this month.
  • Installer: "Present 27.5 · Leave 2.5 (LOP 2.5)" — no leave balance.
  • No leave that month: "Present 30 · Leave 0 · Leave balance 6.5".
  • If leave days were paid out or lapsed, a separate line says "Leave encashed: 6.5 days" or "Leave lapsed: 4 days".

LOP is shown in days only — there is no LOP deduction line, because the Salary amount is already reduced for the LOP days. Leave salary (installers, March) and Leave encashment (staff) appear as their own rows in Earnings. Payslips for months before April 2026 look the same as before.

12.8 Leave Register

The Leave Register is where you enter staff leave each month — the dates someone was away. You do not decide here whether the leave is paid or unpaid; the payroll run works that out from the person's leave balance. Installer leave is not entered here — it comes from the Installer Daily Log.

Where: Payroll → Leave Register. Open to Admin and HR. This page never shows rupee amounts.

Leave Register list
Payroll → Leave Register. One row per leave entry, with its paid/LOP status.

Finding entries

  • Month — shows every entry that falls (even partly) in that month. Defaults to the current month.
  • Search staff by name or EMP ID — type at least one letter and pick from the list. Click ✕ to clear. Staff who have left show an Inactive tag.
  • Company — All Companies, or one company.

If there is nothing for the month you see "No leave entered for this month." Click Load more at the bottom if the list is long.

Columns

ColumnMeaning
EmployeeName and EMP ID
From / ToFirst and last day of the leave
DaysLeave days counted — Sundays and the employee's location holidays inside the range are not counted. A half day shows "0.5 (half day)".
NoteYour note (e.g. "Family function")
StatusWhere the entry stands in payroll — see below
Entered byWho added the entry
Actions✎ edit and 🗑 delete, or a 🔒 lock when the month is finalized

Status values

StatusMeaning
Pending runThe month's payroll run has not been generated yet (or has not calculated this entry).
Paid 1 · LOP 2 (example)A draft run has calculated it: 1 day paid from the balance, 2 days unpaid. May also show "Weekly off n" or "OT n".
… · Needs recalculationThe entry changed after the draft run was calculated. The administrator needs to click Recalculate leave on the run.
Finalized · Paid 2 · LOP 1 (example)The month's payroll is finalized. The entry is locked 🔒.
Finalized (Oct) · Pending (Nov)An entry crossing two months where one month is finalized. Locked 🔒.
HistoricalThe leave is before the leave start month (before April 2026). Kept for history only — no effect on balance or pay.

Adding leave

  1. Click + Add Leave. (Or, from an employee's Leave tab, click Add Leave — the employee is already filled in.)
  2. Choose the Employee — type their name or EMP ID and pick them from the list. Only staff are listed.
  3. Enter From and To (DD/MM/YYYY). For a single day, enter the same date in both (To fills in automatically).
  4. Tick Half day if it was only half a day. This box appears only when From and To are the same date.
  5. Check the count line under the dates, e.g. "Counts as 3 days (skips Sun 04/10, holiday 02/10 Gandhi Jayanti)".
  6. Add a Note if useful.
  7. Click Save (you see e.g. "Leave saved (3 days)"), or Save & add another to keep the form open for the same employee and enter their next leave.
Add Leave form
Add Leave. The line under the dates shows how many days will be counted and which Sundays/holidays are skipped.
Tip: For 2.5 days, enter a 2-day range and then a separate half-day entry. A range can cross a month end (e.g. 29/10 to 03/11) — the days are split into each month's payroll automatically.

Messages you may see when saving

MessageWhat it means
Leave already entered for 02/10/2026. Edit that entry instead.The dates overlap leave already entered for this person.
This range has only Sundays/holidays.No working day in the range — nothing to record.
Date is before this employee's joining date (…) / Date is after this employee's leaving date (…).Leave must be within their employment dates.
Payroll for October 2026 is finalized. Fix pay via Corrections, and adjust the leave balance if needed.The month's payroll is locked. Ask the administrator to post a Correction, and use Adjust Balance if the balance also needs fixing.

Editing or deleting leave

Click a row (or ✎) to open it, change the dates, Half day or Note, and click Save. The employee can't be changed — delete the entry and add it again for the right person. To delete, click 🗑 and confirm "Delete this leave entry (3 days)?". Entries with a 🔒 (finalized month) can't be edited or deleted. Historical entries can always be edited or deleted.

Enter each month's leave before that month's payroll is finalized. After Finalize the month is locked for leave entries.
How leave affects pay (staff). For each month: (1) the leave days are counted, skipping Sundays and location holidays; (2) the person's extra weekly offs (if any) are used first — these are paid and don't touch the balance; (3) any approved OT days offset cancels leave days; (4) the rest is paid from the leave balance as far as it goes, and anything beyond the balance is LOP. Present Days = days employed (30 for a full month) minus LOP; salary = monthly salary ÷ 30 × Present Days. Paid days come off the balance when the run is finalized.

Example: Priya has a balance of 2 days. In October she takes 01/10 and 05/10–07/10 = 4 days. One OT day is approved. 4 − 1 OT = 3; Paid = 2 (all her balance), LOP = 1. Present Days = 30 − 1 = 29, so she gets 29/30 of her salary. The run shows "4 (Paid 2 / LOP 1 / OT 1)" and her balance becomes 0 at Finalize.

Installers: every leave day logged in the Daily Log is LOP. Example: 2.5 leave days in a month → Present Days 27.5.

Confirm opening balances (one-time)

Before each company's first leave-driven payroll run (April 2026) can be finalized, someone must confirm that every staff member's leave balance is correct as on 01/04/2026. The Confirm opening balances button appears in the page header only until each company has finalized that first run.

  1. Click Confirm opening balances. A list opens titled "Confirm opening balances as on 01/04/2026" with Employee, Company, Current balance and Status (Not confirmed / Confirmed DD/MM/YYYY / Changed since confirmed).
  2. Check every Current balance. If one is wrong, click Cancel, fix it (Admin: Employee Edit form or Adjust Balance; HR: Adjust Balance on the Leave tab), then come back.
  3. Click Confirm. You see "Opening balances confirmed for N staff." Each person gets an "Opening balance as on 01/04/2026" row in their Leave tab history. The balances themselves are not changed.
Confirm opening balances list
Confirm opening balances. Staff who have left but are still on the April run show an Inactive tag.

You can run it again until that company's April run is finalized — it only adds rows for people who are Not confirmed or whose balance changed since they were confirmed.

First-time setup (going live) — April to September 2026

April–September 2026 salaries were paid outside the ERP. To bring leave and pay into the ERP, these six months are run in the ERP as catch-up runs, one month at a time. Follow these steps in order.

A. One-time setup
  1. Set the start month. Payroll → Payroll Settings → Leave settings → Leave-driven payroll starts from = April 2026 → Save. (How)
  2. Enter the holidays for FY 2026-27 for both locations on the Holidays tab. (How)
  3. Check the leave categories. In Settings → Log Categories, "Leave" must be Counts as leave (unpaid) and "Weekly Off" must be Counts as weekly off (Mon–Sat unpaid). (How)
  4. Enter every staff member's leave balance as on 01/04/2026 — the balance before any April leave. Use the Leave Balance field on the Employee Edit form (Admin), or Adjust Balance on the Leave tab with a reason such as "Opening balance as on 01/04/2026".
  5. Click Confirm opening balances on the Leave Register and confirm. (How)

The Go-live setup list on the Leave settings card shows which of these are Done.

Do not use a balance that already has April–September leave taken off. The catch-up runs take each month's paid leave off the balance themselves. If the balance you enter is already reduced, that leave is deducted twice.
B. Then, for each month — April, then May, … up to September 2026
  1. Enter the month's staff leave in the Leave Register.
  2. Fill in the installers' Daily Log for the month, including leave and weekly offs.
  3. Generate the month's payroll run (Admin) — Payroll Runs → + Generate for Month.
  4. Clear the "Before you can finalize" list — fix or accept leave warnings, Recalculate leave if asked, and (April only) make sure opening balances are confirmed.
  5. Finalize the run. This creates that month's salary payables.
  6. Record that month's actual salary payments (the amounts and dates really paid) against its payables.
  7. Only then move on to the next month.
Order matters. Each month's net payable includes whatever is still unpaid from the month before. If you finalize May before recording April's payments, April's amount is carried into May and shows up in Payables again. The Finalize confirm box warns you: "Previous month's salary payables (Rs. …) are still unpaid and will be carried into this run." The system also will not let you finalize a month while an earlier month (from April 2026) has no finalized run.

After September 2026, carry on the same way every month: enter leave and the Daily Log, generate, finalize, record payments.

12.9 Leave Summary

The Leave Summary shows, for one month, everyone who had leave and how it was split into paid and unpaid days — staff and installers together. Where: Payroll → Leave Summary. Open to Admin and HR.

Leave Summary page
Payroll → Leave Summary for one month, with a totals row at the bottom.

Filters

  • Month — defaults to last month.
  • Company — All Companies, or one company.
  • Type — All, Staff or Installer.

Columns

ColumnMeaning
EmployeeName and EMP ID
TypeStaff or Installer
LocationPayroll location
Leave daysTotal leave days in the month (= Paid + LOP + OT offset + Weekly off)
PaidDays paid from the leave balance (always 0 for installers)
LOPUnpaid days
OT offsetLeave days cancelled by approved OT days (staff only)
Weekly offExtra weekly off days used (staff only)
Closing balance (staff)Staff leave balance at the end of the month
FY leave (installer)Installer leave so far this financial year, e.g. "23 / 60"
  • Only people with leave that month are listed. If no one had leave: "No leave recorded for this month."
  • A Provisional tag means that month's payroll is not finalized yet — the figures are an estimate from current data and can still change. When every row is provisional the page shows "Provisional — payroll not finalized".
  • For months before April 2026 you see "Leave is not calculated for months before April 2026."
  • Click a row to open that person's Leave tab.

Download Excel

  1. Set the filters you want.
  2. Click Download Excel. A file named like leave-summary-2026-10.xlsx downloads, with the same columns, the totals row and a Provisional (Yes/No) column.

12.10 Year-end Leave

At the end of each financial year (March), every staff member with leave days left gets a choice: Carry forward the days into the next year, or Pay out all of them in the March salary. Where: Payroll → Year-end Leave. Open to Admin and HR (HR can see the rupee amounts here).

Year-end Leave page
Payroll → Year-end Leave. One row per staff member with a balance left; the footer totals the payouts. (Example screen from a practice March run — your own page will show the current year.)

When it opens

Choices open on 1 March and stay open until that company's March payroll run is finalized (usually in April). Before 1 March the page shows "Year-end choices open on 01/03/2027."

Making the choices

  1. Pick the Financial Year and, if you like, a Company.
  2. Check each row: Employee, Location, Balance after March leave (days left after March's own leave), Daily rate (monthly salary ÷ 30) and Payout amount (balance × daily rate).
  3. Choose Carry forward or Pay out for each person. The choice saves straight away — there is no Save button. Chosen by shows who made it.
  4. Check the footer, e.g. "2 staff paying out · total Rs. 9,800".
  5. Tell the administrator to click Recalculate leave on the March payroll run if it was already generated, so the payouts appear on it.
  • The default is Carry forward. It is all or nothing — you can't pay out part of the balance.
  • Pay out adds a Leave encashment earning to the March run; the balance becomes 0 at March Finalize.
  • Carry forward keeps the balance; a "Year-end carry" row is added to the Leave tab history.
  • After the March run is finalized, the page becomes read-only and shows "Paid out Rs. … on 31/03/2027" or "Carried forward".
  • The choice is made fresh every year. Staff who leave during the year are not listed — see below.

Installers: Leave salary in the March run

Installers don't carry leave. Instead, the March payroll run adds a Leave salary earning automatically for each installer who:

  • took 60 leave days or fewer in the financial year (April–March, half days count 0.5, weekday Weekly Offs count), and
  • has at least 1 year of service on 31 March (from their joining date).

Amount = 21 × monthly salary ÷ 30. Example: salary Rs. 18,000 → 21 × 18,000 ÷ 30 = Rs. 12,600. If an installer doesn't qualify, the run shows ₹0 with the reason (e.g. "Not eligible (FY leave 64 > 60)"). If the joining date is missing, the run shows a warning that must be fixed or accepted before Finalize.

People who leave during the year

WhoQuitTerminated / Absconded
StaffUnused leave (after their last month's leave) is paid as Leave encashment in the run for their leaving month. Balance becomes 0.Unused leave lapses — no payout. A "Lapsed" row is added to their Leave tab.
InstallersA part-year Leave salary in their final run, if they have at least 1 year of service — worked out on the whole months they worked this financial year (the 60-day limit is reduced the same way).No Leave salary.

In every case the leaver's final run pays salary only for the days they worked that month. A leaver in March gets the leaver rule above, not the year-end choice.

13. Reports

The Reports section provides analytics and detailed logs. Access these pages from the Reports section in the sidebar.

13.1 Installer Work Log

A detailed report of all activities completed by a specific installer within a date range.

Installer Work Log report
Reports → Installer Work Log. Select an installer and date range, then click Generate.
  1. Go to Reports → Installer Work Log.
  2. Search and select an Installer.
  3. Set the From and To dates.
  4. Click Generate.
  5. The report shows summary cards (Completed, Cancelled, Total) and a detailed table of activities.
  6. Click Download PDF to save a copy.

13.2 Installer Monthly Summary

A monthly overview of all installers' work — showing how many days each installer worked, across which projects, and the total activities completed.

  1. Go to Reports → Installer Summary.
  2. The current month is loaded by default. Use navigation to change months.
  3. The report shows a per-installer summary table with activity counts.

13.3 User Activity

An admin-only report that shows all system actions (creates, updates, status changes) grouped by user for a selected date. Use this to see who did what on any given day.

User Activity report
Reports → User Activity. Shows total events and active users for the selected date.
  1. Go to Reports → User Activity.
  2. Select a Date using the date picker.
  3. Click Generate.
  4. The report shows summary cards (Total Events, Active Users) followed by a section for each user with their actions listed.
Admin only: This report is visible only to users with the Admin role.

13.4 Daily Logs

Every evening at 7 PM, the NM-ERP WhatsApp bot asks selected staff what they did today, what they plan for tomorrow, and whether they need anything from others. The staff member types a reply on WhatsApp, in English, Hindi, Marathi or a mix. The ERP keeps that reply and an English version of it. The Daily Logs page is where you read them. You only read logs here. You cannot edit, delete or print them.

Who can see Daily Logs

Who you areWhat you see
An administratorThe Daily Logs link under Reports, and the logs of everyone. You also get a Person filter.
Other staff whose daily log reminder is turned on, or who already have at least one past logThe Daily Logs link, but only your own logs. There is no Person filter.
Everyone elseNo Daily Logs link. If you type the address by hand, you are taken to the Dashboard.

Where to find it

Click Reports → Daily Logs in the sidebar.

Daily Logs list
Reports → Daily Logs. Each row is one person on one day. The last 7 days are shown first.

The list: columns

ColumnMeaning
DateThe day of the log, with the weekday, for example Wed 07/10/2026
PersonThe staff member
StatusSee the status table below
SummaryThe start of the English version. If there is no English version yet, the start of what the person typed. A dash (—) means there is nothing to show.

The newest day is at the top. Within a day, people are in A to Z order. You cannot sort by clicking a column heading. Under the page title you see a count such as 9 logs. This count includes the Not logged and Reminder failed rows.

Status meanings

StatusMeaningRow opens?
LoggedThe person replied and the bot saved the log.Yes
OpenThe person has sent a message today and the day is not over. They can still add or correct until midnight.Yes
Holiday / LeaveThe person said they were on holiday or leave.Yes
Not loggedThe person has not replied. Today shows this until the first message arrives.No
Reminder failedThe bot could not send the 7 PM reminder, and the person did not reply.No

Not logged and Reminder failed rows are shown in grey. There is nothing to read for them, so clicking them does nothing.

Find a log

  1. Choose the dates. Click From date and To date and pick days from the calendar, or type them as dd/mm/yyyy. When you first open the page, it shows the last 7 days, ending today. If you clear a date box, the original date comes back.
  2. Choose a person (administrators only). Open the first drop-down, which says All people, and pick a name.
  3. Search the words. Type in the Search logs… box. The list updates as you type. It looks in the English version and in the original message.
  4. Start again. Click Clear filters. The search and the person are cleared, and the dates go back to the last 7 days.
If the From date is after the To date, the page shows From date must be on or before To date. and does not search. Change one of the dates.

If the list is empty

  • No daily logs for these filters. Widen the dates or click Clear filters.
  • No one has daily log reminders turned on — turn them on from Users. (shown to administrators.) Click Users in that message and turn the reminder on for the staff who should send logs. See 14.7 Users.
  • Could not load daily logs. Please try again. Check your connection and open the page again.

Read one log

  1. Go to Reports → Daily Logs and find the row.
  2. Click the row (a Logged, Open or Holiday / Leave row). The log opens.
  3. To go back, click the back arrow or Daily Logs at the top. Your dates, person and search are still there.
Daily Log detail page
A daily log. The English version is at the top, and the original messages are below it.

The page has these parts:

  • Heading line: the person and the day, the status, the time of the first and last message, and a Follow-up asked tag if the bot asked a question about something missing.
  • English version: three parts, Today, Tomorrow and Need from others. A dash (—) means the person did not say anything for that part. For a holiday or leave day, it says Holiday / Leave.
  • Conversation: the person's own words, in time order, with the time of each message. A bot question is marked Bot follow-up. If the person corrected or added something later, it appears here as another message.

If you open a log while its day is still going, a note says This log is open until midnight — new messages will appear here. The page does not refresh by itself. Open it again to see new messages.

"English version not ready yet"

Sometimes the English version could not be made. The card then says English version not ready yet. The person's original messages are still shown under Conversation, so you can still read what they sent.

Daily Log with no English version
When the English version is not ready, read the original messages below it.

"Daily log not found."

You see Daily log not found. with a Back to Daily Logs button when the log does not exist, when it belongs to someone else and you are not an administrator, when the day was Not logged or Reminder failed, or when the address is wrong. Click Back to Daily Logs.

Tips for staff who send logs:
  • Type your reply. Voice notes are not supported. The bot will ask you to type.
  • After your last message, the bot waits about 3 minutes before it replies. You can send several short messages.
  • To correct or add something, send another message before midnight. After midnight, that day's log is closed.
Who can read your log: administrators can read everyone's daily logs. You can read your own logs. You cannot read other staff members' logs.

14. Settings

The Settings section contains company configuration, warehouse management, units of measurement, master lists for activity types and expense types, installer log categories, and user management. Access these pages from the Settings section in the sidebar.

14.1 Company

The Company page manages your business entities. If your business operates under multiple company names or GST registrations, each one is a separate entry here. The company switcher in the top bar pulls from this list.

Companies list
Settings → Company. Shows all companies with their code, GSTIN, and city.

Adding a Company

  1. Go to Settings → Company.
  2. Click + Add Company.
  3. Fill in the Company Name and Company Code.
  4. Click Save.

Company Detail Page

Company detail page
The company detail page has seven information cards, each with its own Edit button.

Click on a company row to open the detail page. It has seven editable cards:

CardFields
Company IdentityCompany Name, Code, GSTIN, Website URL, MSME registration
Registered AddressLine 1, Line 2, City, District, State, Pincode
Contact DetailsPrimary Email, Primary Phone, Secondary Email, Secondary Phone
Tax & LegalPAN, TAN, LUT, Eway Bill API Key
Bank DetailsAccount Number, Holder Name, IFSC Code, Bank Name, Branch
Document SettingsLR/Docket prefix, starting number, Invoice prefix, starting number
BrandingLogo URL, Website URL, Support Email

Click the Edit button on any card to modify that section's fields.

14.2 Warehouses

Warehouses are storage locations the company dispatches goods from. Once added, they appear as options in the "Dispatch From → Warehouse" selector when creating a dispatch (see Section 7.4).

Warehouse List

Warehouses list
Settings → Warehouses. Shows all active warehouses with their address and state.

Go to Settings → Warehouses to see all warehouses. The list shows the Name, Address, State, and whether each warehouse is Active.

Use the Show inactive toggle to include deactivated warehouses.

Adding a Warehouse

Add warehouse modal
The Add Warehouse form. The name is required; address details are optional.
  1. Go to Settings → Warehouses.
  2. Click + Add Warehouse.
  3. Enter the warehouse Name (required) — e.g. "Goregaon Warehouse" or "Vasai Store".
  4. Fill in the address details: Address Line 1, Line 2, City, Pincode, and State.
  5. Click Save. The warehouse is now available as a dispatch origin.

Using Warehouses in Dispatches

When creating or editing a dispatch, select Dispatch From → Warehouse. A dropdown appears listing all active warehouses. The warehouse name and address will appear on the packing list PDF.

14.3 Units of Measurement

Units of Measurement define how quantities are measured for products (e.g. Square Feet, Running Feet, Units, Kilograms). Some units come pre-loaded as system defaults; you can add custom units as needed.

Units of Measurement page
Settings → Units. System units are marked with a lock icon and cannot be renamed.

Unit columns

ColumnMeaning
NameFull name (e.g. "Square Feet")
Abbr.Short abbreviation (e.g. "sqft")
CategoryArea, Length, Count, or Other
Decimal PlacesHow many decimal places to show (0 to 4)
SystemWhether this is a built-in system unit (cannot be renamed or deleted)

Adding a Unit

  1. Go to Settings → Units.
  2. Click + Add Unit.
  3. Enter the unit Name (e.g. "Kilograms") and Abbreviation (e.g. "kg").
  4. Choose a Category: Area, Length, Count, or Other.
  5. Set Decimal Places (default is 2).
  6. Click Save.
Note: System units (pre-loaded defaults like sq.ft and rft) have a lock icon next to their abbreviation. You can deactivate them but cannot change their abbreviation.

14.4 Activity Types

Activity Types define the kinds of work that can be logged in Site Activities (e.g. "Ceiling Installation", "LED Backlighting", "Measurement", "Inspection").

Activity Types settings page
Settings → Activity Types. Add, edit, or deactivate activity types.

Adding an Activity Type

  1. Go to Settings → Activity Types.
  2. Click + Add Activity Type.
  3. Enter the Name (e.g. "Ceiling Installation") and an optional Description.
  4. Click Save.

Activity types can be deactivated (three-dot menu → Deactivate) when no longer needed. Use the Show inactive checkbox to see deactivated types.

14.5 Expense Types

Expense Types define the categories of expenses that can be recorded on site activities (e.g. "Travel Allowance", "Material Purchase", "Food").

Adding an Expense Type

  1. Go to Settings → Expense Types.
  2. Click + Add Expense Type.
  3. Enter the Name and an optional Description.
  4. Click Save.

14.6 Log Categories

Installer Log Categories define how installer daily log entries are categorized (e.g. "Site Work", "Travel", "Material Pickup", "Off Day"). Each category has a project rule that controls whether a project must be linked to entries of that type.

Adding a Log Category

  1. Go to Settings → Log Categories.
  2. Click + Add Category.
  3. Enter the Name and optional Description.
  4. Select the Project Rule:
RuleMeaning
RequiredA project must be selected when logging entries of this type
OptionalA project can be selected but is not required
NoneNo project association needed for this type (e.g. "Off Day")
  1. Choose the Payroll treatment (see below) and click Save.

Payroll treatment

Payroll treatment tells the payroll run whether days logged under this category are installer leave. Each category has exactly one of three choices:

ChoiceMeaning
Not counted (default)Days in this category don't affect pay (e.g. Site Work, Travel, Site Holiday).
Counts as leave (unpaid)Every day logged in this category is an unpaid leave day in payroll. Use for "Leave".
Counts as weekly off (Mon–Sat unpaid)Days logged on Monday to Saturday count as unpaid leave in payroll; Sundays and holidays don't count. Use for "Weekly Off".

The categories list has a Payroll treatment column showing "Counts as leave", "Counts as weekly off" or a dash.

Log category form with Payroll treatment choices
The Payroll treatment choices on the Add/Edit Category form.
Keep exactly one "Counts as leave" category and one "Counts as weekly off" category. The Daily Log's Mark Leave and Mark Weekly Off buttons look for them, and the payroll run reads them. Renaming a category is fine — its treatment stays. Changing a treatment does not change months whose payroll is already finalized.

14.7 Users

The Users page is for administrators to manage who can access the system. Each user has a phone number (used for login), a name, and one or more roles.

Users settings page
Settings → Users. Shows all users with their roles, status, and last login.

User list columns

ColumnMeaning
Full NameThe user's display name
PhoneLogin phone number (+91)
RolesAssigned roles (Admin, Sales, Inventory, Accounts, Project Manager)
StatusActive or Inactive. A blue "Daily log" tag means the 7 PM daily log reminder is on (see below).
Last LoginWhen the user last signed in
CreatedWhen the user account was created

Adding a User

  1. Go to Settings → Users.
  2. Click + Add User.
  3. Enter the user's Full Name and Phone Number (10 digits).
  4. Set a Password (minimum 6 characters).
  5. Select one or more Roles.
  6. Assign the Companies the user should have access to.
  7. Click Save.

Resetting a user's password

Click the three-dot menu (⋮) next to a user and select Reset Password. Enter the new password and click Save. The user will need to use the new password on their next login.

Daily log reminder (WhatsApp)

The WhatsApp daily log setting decides whether a user gets the 7 PM WhatsApp message asking about their day. Their replies appear in 13.4 Daily Logs. You find it on the Edit User window, directly under Status. It is not on the Add User window.

Edit User window with the daily log setting
Edit User. The daily log setting is below Status.
Turn it on or off
  1. Go to Settings → Users and click the user's row. The Edit User window opens.
  2. Under WhatsApp daily log, tick Send daily log reminder at 7 PM to turn it on. Untick it to turn it off. The note under it says Takes effect from the next 7 PM.
  3. Click Save.
Users list with Daily log badges
Users with the setting on show a blue Daily log tag next to Active.

In the users list, a user who has the reminder on shows a blue Daily log tag next to Active in the Status column.

Inactive users: the daily log box can only be used for an active user. If you untick Active, the daily log box is unticked and greyed out, with the note Activate the user first. When you deactivate a user, the daily log reminder is turned off automatically. If you reactivate the user later, it stays off. Tick it again if you want it back. You can tick Active and the daily log box in the same Edit User window and save once.
A user who has the reminder on, or who already has a past log, can see their own logs under Reports → Daily Logs. Administrators see everyone's.
Admin only: The Users page is visible only to administrators.

15. Activity Monitor

The Activity tab appears on detail pages for clients, dealers, vendors, products, projects, and dispatches. It shows a timeline of every change made to that record.

Activity Monitor tab
The Activity tab on a client detail page. Every change is recorded with a timestamp.

What the Activity tab shows

How to access it

  1. Open any detail page (client, dealer, vendor, product, project, or dispatch).
  2. Click the Activity tab.
  3. The timeline loads automatically, showing the most recent changes first.
Note: The Activity tab is read-only. Changes are recorded automatically whenever anyone creates, updates, or changes the status of a record. You do not need to do anything to enable it.

16. Quick Reference — Common Tasks

TaskWhere to goQuick steps
Add a new client Sales → Clients + New Client → fill form → Save
Add a client address Clients → [client] → Overview tab Addresses card → + Add Address → fill → Save
Add a contact person to a client Clients → [client] → Overview tab Contact Persons card → + Add Person → fill → Save
Add a new dealer Sales → Dealers + New Dealer → fill (including Dealer Code) → Save
Add a vendor Procurement → Vendors + New Vendor → fill → Save
Duplicate a record Any detail page More ▼ → Duplicate → rename in edit modal → Save
Add a product category Inventory → Categories + Add Category → Name, HSN/SAC, GST rate → Save
Add a product Inventory → Products + Add Product → Name, Category, Type, Price → Save
Add a brand Inventory → Brands + Add Brand → Name → Save
Check all stock levels Inventory → Stock Search or filter by class; toggle zero-stock visibility
Check stock for one product Products → [product] → Stock tab View current stock, in transit, and adjustment history
Create a dispatch Operations → Dispatches + Create Dispatch → fill 4 sections → Create Dispatch
Mark dispatch as dispatched Dispatches list or detail page Update Status → Dispatched → set date → Save Status
Enter LR number (In Transit) Dispatches list or detail page Update Status → In Transit → enter LR number → Save Status
Mark as delivered Dispatches list or detail page Update Status → Delivered → enter receiver name → Save Status
Delete a dispatch Dispatch detail (Ready or Cancelled) Delete Dispatch → type dispatch number → Confirm
Confirm packages & print labels Dispatch detail → Packages tab Assign items → Confirm Packages → Print Label per package
Generate dispatch list PDF Operations → Dispatches Apply filters → Generate PDF button (top right)
View a project Operations → Projects Click project row → Overview tab
Add an installer Field → Installers + Add Installer → Name, Phone, Skills → Save
Add an installer skill Field → Installer Skills + Add Skill → Name → Save
Manage company settings Settings → Company Click company → Edit any card → Save
Add a warehouse Settings → Warehouses + Add Warehouse → Name + address → Save
Add a unit of measurement Settings → Units + Add Unit → Name, Abbreviation, Category → Save
View activity history Any detail page Click the Activity tab → scroll timeline
Record a project payment Projects → [project] → Payments tab Record Payment → amount + allocate → Confirm
Log a site activity Operations → Site Activities + New Activity → project, date, type → Save
Plan a future activity Operations → Planned Activities + New Planned Activity → project, date, type → Save
Fill installer daily log Field → Installer Daily Log Select date → + Add Entry → installer, category → Save
Add a payroll employee Payroll → Employees + Add Employee → person, Emp ID, salary details → Save Employee
Add a staff member Payroll → Staff + Add Staff → fill personal/employment details → Save
Add a manual ledger entry Employee Ledger page + Add Entry → type, category, amount → Save
Generate monthly payroll (admin) Payroll → Payroll Runs + Generate for Month → review/edit lines → Finalize & Post to Payables
Fix a mistake on a finalized run Employee Ledger page + New Correction → select run/category → enter amounts → Save
View/print a payslip Employee Ledger page View Payslip → Print or Download PDF
Add a payroll department/designation/location/allowance type (admin) Payroll → Payroll Settings + Add (relevant card) → fill fields → Save
Record staff leave Payroll → Leave Register + Add Leave → Employee, From, To (Half day if needed) → Save
Adjust a staff leave balance Employee Ledger → Leave tab Adjust Balance → Days (+/-), Effective date, Reason → Save
Confirm opening leave balances (one-time) Payroll → Leave Register Confirm opening balances → check each balance → Confirm
Log installer leave for several days Field → Installer Daily Log Tick installers → Mark Leave → Date Range → Confirm
Check a month's paid / LOP leave Payroll → Leave Summary Choose Month, Company, Type → Download Excel if needed
Choose year-end carry forward / pay out Payroll → Year-end Leave From 1 March → pick Carry forward or Pay out per person (saves automatically)
Add a holiday (admin) Payroll → Payroll Settings → Holidays tab + Add Holiday → Date, Name, Location → Save
Set the leave start month (admin, one-time) Payroll → Payroll Settings → Leave settings Leave-driven payroll starts from → April 2026 → Save
Recalculate leave on a draft run (admin) Payroll → Payroll Runs → [run] Recalculate leave → clear "Before you can finalize" list → Finalize
Generate installer work log Reports → Installer Work Log Select installer + date range → Generate → Download PDF
View user activity (admin) Reports → User Activity Select date → Generate
Read a daily work log Reports → Daily Logs Pick dates (and person, for admins) → click a row
Turn the 7 PM daily log reminder on for a user (admin) Settings → Users Click the user → tick Send daily log reminder at 7 PM → Save
Add a user (admin) Settings → Users + Add User → name, phone, password, roles → Save
Reset a user's password (admin) Settings → Users Three-dot menu → Reset Password → new password → Save
Deactivate / reactivate a record Any detail page (client, dealer, product, etc.) More ▼ → Deactivate (or Reactivate with Show inactive on)