NM-ERP
User Manual for Office Staff
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
| Task | Where to go | Section |
|---|---|---|
| Log in to the system | Open the website URL | 2 |
| View dashboard | Dashboard (landing page) | 4 |
| Create a dispatch | Operations → Dispatches → + Create Dispatch | 7.4 |
| Update dispatch status | Dispatches list → Update Status button | 7.7 |
| Add a new client | Sales → Clients → + New Client | 5.1 |
| Add a client address | Clients → [client name] → Addresses card | 5.1 |
| Add a contact person | Clients → [client name] → Contact Persons card | 5.1 |
| Add a product | Inventory → Products → + Add Product | 6.2 |
| Check all stock levels | Inventory → Stock | 6.4 |
| View a project | Operations → Projects → click row | 8.1 |
| Record a payment | Projects → detail → Payments tab → Record Payment | 8.3 |
| Log a site activity | Operations → Site Activities → + New Activity | 9.2 |
| Fill installer daily log | Field → Installer Daily Log | 11.3 |
| Print dispatch labels | Dispatch detail → Packages tab → Print Labels | 7.6 |
| Delete a dispatch | Dispatch detail → Delete Dispatch button | 7.9 |
| Add a payroll employee | Payroll → Employees → + Add Employee | 12.1 |
| Add a ledger entry / view balance | Payroll → Employees → click employee row | 12.3 |
| Run monthly payroll (admin) | Payroll → Payroll Runs → + Generate for Month | 12.4 |
| Fix a finalized payroll mistake | Employee Ledger → + New Correction | 12.5 |
| View/print a payslip | Employee Ledger → View Payslip | 12.7 |
| Record staff leave | Payroll → Leave Register → + Add Leave | 12.8 |
| Enter opening leave balances (one-time) | Payroll → Employees → Edit, then Leave Register → Confirm opening balances | 12.8 |
| Check a month's leave (paid / LOP) | Payroll → Leave Summary | 12.9 |
| Choose year-end carry forward or pay out | Payroll → Year-end Leave | 12.10 |
| Read a staff member's daily work log | Reports → Daily Logs → click a row | 13.4 |
| Manage company settings | Settings → Company | 14.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.
How to sign in
- Enter your phone number in the Phone field (10-digit mobile number with +91 prefix shown automatically).
- Enter your password in the Password field. Click the eye icon to show/hide the password.
- Click Sign In. You will be taken to the Dashboard.
Forgot Password
- On the sign-in page, click Forgot password? below the password field.
- A modal opens. Enter your phone number and click Send OTP.
- You will receive a 6-digit OTP via email. Enter the OTP code.
- Set your new password (minimum 6 characters) and click Reset Password.
- You can now sign in with your new password.
Signing out
Click your name at the bottom of the sidebar, then click Sign out.
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.
KPI Strip
Four summary numbers are shown at the top of the page:
| KPI | Meaning |
|---|---|
| Active Projects | Number of projects currently in progress |
| In Transit | Number of dispatches currently in transit |
| This Week | Activities planned for the current week |
| Pending Payments | Number 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.
- Projects past completion date
- Projects without material list
- Dispatches past expected delivery
- Delivered with missing documents
- Dispatches ready 3+ days (not yet sent)
- Installers without daily log today
- Clients without GSTIN
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
e.g. Sharma Interiors Pvt. Ltd.
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
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
- Click "+ New Client" (top right of the Clients page).
- Fill in the Company Name (required). This is the official business name that will appear on dispatches.
- Enter GSTIN (optional but recommended for GST compliance). Must be 15 characters.
- Choose GST Treatment: Regular (most businesses), Composition, Unregistered, or Consumer (individuals/households).
- Add any notes in the Notes field — this is visible to all staff.
- 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.
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
- Open the client detail page.
- Click the More ▼ button (top right of the page).
- Click Edit. The edit modal opens, pre-filled with the current values.
- 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.
- Open the client detail page and scroll to the Addresses card.
- Click + Add Address.
- 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
- Enter an Address Label (optional) to distinguish multiple addresses of the same type — e.g. "Floor 3, Bandra" or "Goregaon Site".
- Fill in Line 1, Line 2, City, Pincode, and State.
- Click Save.
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.
- Open the client detail page and scroll to the Contact Persons card.
- Click + Add Person.
- Enter their name, designation, phone, and email.
- 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
Deactivating a client hides them from dispatch autocomplete but does not delete their history. To deactivate:
- Open the client detail page.
- Click More ▼ → Deactivate.
- 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).
Dealer-specific fields
| Field | Meaning |
|---|---|
| Dealer Code | Your internal reference code for this dealer (e.g. DLR-001). Required. |
| Credit Limit | Maximum outstanding balance this dealer is allowed (in ₹). Leave blank for no limit. |
| Credit Days | Payment 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 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.
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.
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.
- Open the detail page of the record you want to copy.
- Click More ▼ → Duplicate.
- 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.
- Make your changes and click Save.
6. Products
Products are organised in a three-level hierarchy:
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.
Product Classes
Every type has a product class that controls whether stock is tracked:
| Class | Examples | Stock 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
- Go to Inventory → Categories.
- Click + Add Category.
- Enter the category Name (e.g. "Membranes").
- Enter the HSN/SAC Code (6 or 8 digits, from the GST rate schedule).
- Enter the GST Rate (e.g. 18 for 18%). This is used on invoices.
- Click Save.
Adding a Type to a Category
- Click on a category in the left panel.
- Click + Add Type (appears in the right panel header).
- Enter the type name (e.g. "Matte Finish").
- Choose the Unit: sq.ft, sq.m, rft, unit, or lot.
- Choose the Product Class (see table above).
- 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.
Adding a Product
- Go to Inventory → Products and click + Add Product.
- Enter the product Name and optionally an SKU (your stock-keeping code).
- Select the Category, then the Type (the type determines the unit and product class).
- Enter pricing: List Price (selling price) and Purchase Price (your cost). All prices are exclusive of GST.
- Click Save.
Product Detail Page
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)
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.
Adding a Brand
- Go to Inventory → Brands.
- Click + Add Brand.
- Enter the brand Name.
- 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 columns
| Column | Meaning |
|---|---|
| SKU | The product's stock-keeping code |
| Name | Product name |
| Class | Component, Consumable, Finished Good, or Service |
| Unit | Unit of measurement (sq.ft, rft, unit, etc.) |
| On Hand | Current quantity in stock (can be negative if backorders exist) |
| Last Adjusted | Date 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 list columns
| Column | Meaning |
|---|---|
| SKU | Product stock-keeping code |
| Name | Product name |
| Class | Product class |
| Category | Product category |
| Current Price | The active selling price for this tier (in ₹, excluding GST) |
| Effective From | Date this price became active |
Click on a product row to open a side panel with the full pricing history and details for that product.
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
List columns
| Column | Meaning |
|---|---|
| Dispatch No. | Auto-generated number (e.g. DISP-202526-001). Unique per company per financial year. |
| Ready Date | The date the goods were ready for pickup. |
| Client | The receiving company or person. |
| Project No. | Optional project reference. |
| Stage | Current status of the dispatch (see Section 7.2). |
| Courier | The courier service being used. |
| Urgency | Normal or Urgent. |
Filtering 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:
awaiting pickup
to transporter
confirmed
client
Cancellation is possible from Ready or Dispatched stage only. Once a dispatch is In Transit, it cannot be cancelled.
What each stage means
| Stage | Meaning | What 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
| Transition | Required field |
|---|---|
| Any → Dispatched | None (just the status date) |
| Dispatched → In Transit | LR / Docket Number (from the transport company) |
| In Transit → Delivered | Receiver Name (person who accepted delivery) |
| Any → Cancelled | Cancellation Reason |
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:
| Purpose | Number Prefix | When to use |
|---|---|---|
| Project Dispatch | DSP- | Sending materials to a project site (most common) |
| Sampling | SMP- | Sending product samples for client evaluation |
| Job Works | JW- | Sending materials to a vendor for processing |
| Document Submission | DOC- | 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)
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)
Select one of three origins:
| Option | When to use |
|---|---|
| Company Address (default) | Goods are going out from your main office/workshop. |
| Warehouse | Goods are going out from a specific storage location. Select the warehouse from the dropdown. |
| Vendor Direct | A vendor is shipping directly to your client. Search for the vendor and select their dispatch address. |
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.
- Client / Company — start typing the client or dealer name. A dropdown of matching records appears. Click to select.
- Billing Address — select from the client's saved addresses. The dropdown auto-populates after selecting the client.
- Delivery Address — select the site or delivery address.
- Contact Person (optional) — select the person at the client who should be contacted about this dispatch.
- Urgency — Normal or Urgent. Urgent dispatches are highlighted.
- Ready Date — the date the goods will be ready for pickup. Defaults to today.
- Expected Delivery Date — auto-suggested as Ready Date + 3 days. You can change it.
- Project Number / Name (optional) — link this dispatch to a project for tracking.
Section 3 — Items
- Click + Add item.
- In the Product column, start typing the product name. Select from the dropdown.
- The Unit fills in automatically from the product's type.
- Enter the Quantity.
- Add Remarks if needed (e.g. "Cut to 3.2m lengths", "Special colour batch").
- Repeat for each item. Click the ✕ button on a row to remove it.
Section 4 — Transport
| Field | Notes |
|---|---|
| Transport Mode | Road, 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 Company | Name of the transport or logistics company. |
| Courier Agency | Courier 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 By | Names of the staff who packed and verified the shipment. |
| Notes | Any 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
The detail page has six tabs:
| Tab | What it shows |
|---|---|
| Overview | Full dispatch details: client, addresses, dispatch source, dates, transport, notes |
| Items | Line items: product name, quantity, unit, remarks |
| Packages | Physical packages: create, assign items, confirm, print labels |
| Documents | Packing list PDF download; uploaded challan/invoice files |
| History | Stage change log and tracking notes; Update Status button |
| Activity | Timeline of all changes made to this dispatch (see Section 14) |
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
- Open the dispatch detail page and click the Packages tab.
- Enter the number of packages (e.g. 3 boxes).
- 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.
- Click on Package 1 (or whichever package you are filling).
- Add items and enter the quantity going into that package.
- Optionally fill in Weight (kg), Dimensions (length × width × height in cm), and Package Type (box, roll, envelope, etc.).
- Repeat for each package until all items are assigned.
Step 3 — Confirm packages
- Once all items are assigned to packages, click Confirm Packages.
- The packages are locked. Each package row shows a Print Label button.
- Click Print Label on each package to download and print the label PDF.
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.
- Click Update Status on the dispatch list row or detail page.
- Choose the New Stage from the dropdown. Only valid next stages are shown — you cannot skip backwards.
- Set the Status Date (defaults to today). Use the actual date the event happened.
- 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
- Optionally add a Status Note (e.g. "Delay due to road closure; expected tomorrow").
- Click Save Status.
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.
- Open the dispatch detail page (must be in Ready stage, packages not yet confirmed).
- Click the Edit button in the page header. A full-screen edit modal opens.
- Make changes across the three sections: Delivery Information, Items, Transport.
- Click Save. The page refreshes with the updated details.
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.
- Open the dispatch detail page. The red Delete Dispatch button appears in the action bar (only on Ready or Cancelled dispatches).
- Click Delete Dispatch. A confirmation modal appears.
- Type the exact dispatch number (e.g. "DISP-202526-003") into the confirmation field. The Confirm button only enables when the number matches exactly.
- Click Confirm. The dispatch and all its packages, items, and history are permanently removed.
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
List columns
| Column | Meaning |
|---|---|
| Project # | Unique project reference number |
| Name | Short project name or description |
| Client | The client this project belongs to |
| Stage | Current project stage (Enquiry, Quoted, Mockup, Confirmed, In Progress, Completed, Lost, Cancelled) |
| Budget | Estimated project budget |
| Assigned To | Staff member responsible for this project |
| Enquiry Date | When 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
- Go to Operations → Projects.
- Click + Add Project.
- Fill in the project name, client, budget, and other details.
- Click Save. The project is created at "Enquiry" stage.
8.2 Project Detail
Click on any project row to open the detail page. The page has seven tabs:
| Tab | What it shows |
|---|---|
| Overview | All project details: client, budget, assigned staff, dates, stage, notes |
| Line Items | Products and services included in this project |
| Milestones | Key project milestones and their completion status |
| Mockups | Attached design mockups and drawings |
| Documents | Project-related documents (quotations, POs, invoices) |
| Stage History | Log of all stage changes with dates and notes |
| Payments | Payment schedule, milestones, and recorded payments (see Section 8.3) |
| Activity | Timeline 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.
Setting up a payment schedule
- Open a project and click the Payments tab.
- Click Set Up Payment Schedule.
- Enter the Base Amount (project value before GST) and GST Percentage (defaults to 18%).
- The Grand Total is calculated automatically. Click Save.
Adding milestones
- Click + Add Milestone.
- Enter a Name (e.g. "Advance", "After measurement", "Before dispatch").
- Optionally enter an Invoice Number.
- Choose Fixed Amount or Percentage of Total, then enter the amount.
- Optionally set a Due Date.
- Click Save.
Recording a payment
- Click Record Payment.
- Enter the Amount, Payment Date, and optionally a Reference Number (e.g. UTR/RTGS number).
- Allocate the payment to one or more milestones. Click Auto-allocate to fill amounts automatically (earliest milestone first), or enter amounts manually.
- Click Confirm Payment. The milestone balances update immediately.
Milestone status badges
| Status | Meaning |
|---|---|
| Pending | No payments received yet |
| Partial | Some payment received but not fully paid |
| Paid | Fully paid |
| Overdue | Due date has passed and balance remains |
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
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
- Go to Operations → Site Activities.
- Click + New Activity.
- Select the Project from the dropdown.
- Set the Activity Date.
- Select one or more Activity Types.
- Optionally add Installers, Dispatches, Expenses, and upload Photos.
- Add any Notes about the work done.
- Click Save.
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.
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
- Go to Operations → Planned Activities.
- Click + New Planned Activity.
- Select the Project.
- Set the Planned Date.
- Select the Activity Type.
- Optionally add Notes.
- Click Save.
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.
Adding a Skill
- Go to Field → Installer Skills.
- Click + Add Skill.
- Enter the skill Name (e.g. "Stretch Ceiling Installation").
- 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.
List columns
| Column | Meaning |
|---|---|
| Name | Installer's full name |
| Employment Type | Full Time or Contract |
| Primary Phone | Contact number |
| Skills | Assigned skills (from the Installer Skills list) |
| Status | Active or Inactive |
Adding an Installer
- Go to Field → Installers.
- Click + Add Installer.
- Enter the installer's Name and Phone number.
- Select Employment Type: Full Time or Contract.
- Choose one or more Skills from the dropdown.
- 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).
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
- Go to Field → Installer Daily Log.
- Select the date for the entry.
- Click the + Add Entry button or click on an installer row.
- Select the Installer, Category (e.g. Site Work, Travel), and optionally a Project.
- 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
- Open the entry form with + Add Entry and pick the installer.
- Choose a leave category (one that counts as leave) and a single date. A Half day checkbox appears.
- 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.
- 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.
Mark Leave / Mark Weekly Off for several installers
- 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)".
- Click Mark Leave (or Mark Weekly Off). A small date-range box opens.
- 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.
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.
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.
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
| Column | Meaning |
|---|---|
| Emp ID | The employee's payroll ID, e.g. EMP-013 |
| Name | Pulled from the linked Installer or Staff record |
| Type | Installer or Staff |
| Dept | Department |
| Designation | Job title |
| Company | Which company entity pays this person |
| Salary Mode | Cash or Bank |
| Monthly Salary | Fixed monthly salary amount |
| Status | Active 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
- Go to Payroll → Employees and click + Add Employee.
- Choose Person Type — Installer or Staff. This decides which list you search in the next step.
- 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.
- 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.
- Choose Company, Department, Designation, and Location from the dropdowns.
- Choose Salary Mode — Bank Transfer (the default) or Cash. If Bank Transfer, fill in Bank Name, Account Number, IFSC Code, and Account Holder Name.
- 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.
- Add allowances and salary history if needed — see below. These are optional and can also be added later from the Employee Ledger page.
- Click Save Employee. You're taken to the new employee's Ledger page.
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.
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:
| Field | What 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 month | Shown 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. |
- 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 status | What happens to the leave balance |
|---|---|
| Quit | Paid 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 / Absconded | The 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. |
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.
Adding a staff member
- Go to Payroll → Staff and click + Add Staff.
- Fill in the same sections as an Installer record — Personal Details, Employment Details, Identity documents, Address, and any Phones/Emails/Emergency Contacts.
- 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).
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
| Column | Meaning |
|---|---|
| Date | When the entry happened |
| Type | Earning, Deduction, Payment, or Correction |
| Category | e.g. Salary, Incentive, PF, Advance Given |
| Credit / Debit | Amount added to or taken from the balance |
| Balance | Running balance after this entry |
Rows are shown newest first. Some rows have a lock icon instead of edit/delete buttons:
| Lock icon | Meaning |
|---|---|
| 🔒 From Run | Created automatically by a monthly Payroll Run — can't be edited directly |
| 🔒 Correction | Created by a Correction — permanent record, click through to see it |
| 🔒 From Payment | Created 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
- On the Ledger page, click + Add Entry.
- Choose Entry Type — Earning, Deduction, or Payment. This changes the Category options below it.
- 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.
- Enter the Date (defaults to today) and the Amount (must be greater than 0).
- 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.
Below the card is the leave history, newest first:
| Column | Meaning |
|---|---|
| Date | The 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. |
| Type | Leave, 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/LOP | For leave rows, the same status as in the Leave Register (e.g. "Finalized · Paid 2 · LOP 1") |
| Note | Your note or reason, or a system note such as "Payroll run October 2026" |
| By | Who made the change |
| Running balance | Balance 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.
- Click Adjust Balance on the Leave tab. The box shows the Current balance at the top.
- 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.
- Check the Effective date (defaults to today; can't be in the future).
- Enter a Reason (at least 3 characters, e.g. "Opening balance review").
- Click Save. You see e.g. "Balance adjusted (+12 days)" and a new "Balance adjustment" row appears in the history.
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
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.
Generating a run
- Go to Payroll → Payroll Runs and click + Generate for Month.
- Choose the Company, Month, and Year, then click Generate. You can't generate two runs for the same company and month.
- 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:
- Click the ✎ icon on that employee's row.
- 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).
- Update whichever fields need correcting and click Save. The row's Salary, Gross, and Net Payable recalculate automatically.
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.
What changes on a leave-driven run:
| Column / item | Meaning |
|---|---|
| Leave | Total 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 Days | Worked out automatically: days employed in the month (30 for a full month) minus LOP days. Salary = monthly salary ÷ 30 × Present Days. |
| Leave pay | Installer 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)". |
| Deductions | No 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.
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:
| Message | What 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
- Once every line looks correct, click Finalize & Post to Payables.
- Confirm the dialog — "This locks the run — corrections only after this point."
- 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."
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
- Open the employee's Ledger page and click + New Correction.
- Choose the Original Payroll Run the mistake was in — only finalized runs this employee was part of are listed.
- Choose the Category that was wrong — the list only shows categories that actually had an amount on that run for this employee.
- 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.
- Explain the Reason and click Save. You're taken to a printable Correction Receipt.
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
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.
Adding an item
- Click + Add (or + Add Allowance Type) on the relevant card.
- 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.
- 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.
- Choose the month in Leave-driven payroll starts from (e.g. April 2026).
- 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.
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.
- Click + Add Holiday.
- 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.
- 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.").
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.
- Open the employee's Ledger page and click View Payslip.
- 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.
- Click Print or Download PDF to save or print it — both open your browser's print dialog.
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.
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
| Column | Meaning |
|---|---|
| Employee | Name and EMP ID |
| From / To | First and last day of the leave |
| Days | Leave days counted — Sundays and the employee's location holidays inside the range are not counted. A half day shows "0.5 (half day)". |
| Note | Your note (e.g. "Family function") |
| Status | Where the entry stands in payroll — see below |
| Entered by | Who added the entry |
| Actions | ✎ edit and 🗑 delete, or a 🔒 lock when the month is finalized |
Status values
| Status | Meaning |
|---|---|
| Pending run | The 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 recalculation | The 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 🔒. |
| Historical | The leave is before the leave start month (before April 2026). Kept for history only — no effect on balance or pay. |
Adding leave
- Click + Add Leave. (Or, from an employee's Leave tab, click Add Leave — the employee is already filled in.)
- Choose the Employee — type their name or EMP ID and pick them from the list. Only staff are listed.
- Enter From and To (DD/MM/YYYY). For a single day, enter the same date in both (To fills in automatically).
- Tick Half day if it was only half a day. This box appears only when From and To are the same date.
- Check the count line under the dates, e.g. "Counts as 3 days (skips Sun 04/10, holiday 02/10 Gandhi Jayanti)".
- Add a Note if useful.
- 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.
Messages you may see when saving
| Message | What 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.
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.
- 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).
- 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.
- 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.
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
- Set the start month. Payroll → Payroll Settings → Leave settings → Leave-driven payroll starts from = April 2026 → Save. (How)
- Enter the holidays for FY 2026-27 for both locations on the Holidays tab. (How)
- 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)
- 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".
- 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.
B. Then, for each month — April, then May, … up to September 2026
- Enter the month's staff leave in the Leave Register.
- Fill in the installers' Daily Log for the month, including leave and weekly offs.
- Generate the month's payroll run (Admin) — Payroll Runs → + Generate for Month.
- 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.
- Finalize the run. This creates that month's salary payables.
- Record that month's actual salary payments (the amounts and dates really paid) against its payables.
- Only then move on to the next month.
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.
Filters
- Month — defaults to last month.
- Company — All Companies, or one company.
- Type — All, Staff or Installer.
Columns
| Column | Meaning |
|---|---|
| Employee | Name and EMP ID |
| Type | Staff or Installer |
| Location | Payroll location |
| Leave days | Total leave days in the month (= Paid + LOP + OT offset + Weekly off) |
| Paid | Days paid from the leave balance (always 0 for installers) |
| LOP | Unpaid days |
| OT offset | Leave days cancelled by approved OT days (staff only) |
| Weekly off | Extra 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
- Set the filters you want.
- Click Download Excel. A file named like
leave-summary-2026-10.xlsxdownloads, 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).
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
- Pick the Financial Year and, if you like, a Company.
- 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).
- 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.
- Check the footer, e.g. "2 staff paying out · total Rs. 9,800".
- 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
| Who | Quit | Terminated / Absconded |
|---|---|---|
| Staff | Unused 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. |
| Installers | A 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.
- Go to Reports → Installer Work Log.
- Search and select an Installer.
- Set the From and To dates.
- Click Generate.
- The report shows summary cards (Completed, Cancelled, Total) and a detailed table of activities.
- 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.
- Go to Reports → Installer Summary.
- The current month is loaded by default. Use navigation to change months.
- 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.
- Go to Reports → User Activity.
- Select a Date using the date picker.
- Click Generate.
- The report shows summary cards (Total Events, Active Users) followed by a section for each user with their actions listed.
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 are | What you see |
|---|---|
| An administrator | The 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 log | The Daily Logs link, but only your own logs. There is no Person filter. |
| Everyone else | No 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.
The list: columns
| Column | Meaning |
|---|---|
| Date | The day of the log, with the weekday, for example Wed 07/10/2026 |
| Person | The staff member |
| Status | See the status table below |
| Summary | The 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
| Status | Meaning | Row opens? |
|---|---|---|
| Logged | The person replied and the bot saved the log. | Yes |
| Open | The person has sent a message today and the day is not over. They can still add or correct until midnight. | Yes |
| Holiday / Leave | The person said they were on holiday or leave. | Yes |
| Not logged | The person has not replied. Today shows this until the first message arrives. | No |
| Reminder failed | The 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
- 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.
- Choose a person (administrators only). Open the first drop-down, which says All people, and pick a name.
- 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.
- Start again. Click Clear filters. The search and the person are cleared, and the dates go back to the last 7 days.
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
- Go to Reports → Daily Logs and find the row.
- Click the row (a Logged, Open or Holiday / Leave row). The log opens.
- To go back, click the back arrow or Daily Logs at the top. Your dates, person and search are still there.
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 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.
- 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.
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.
Adding a Company
- Go to Settings → Company.
- Click + Add Company.
- Fill in the Company Name and Company Code.
- Click Save.
Company Detail Page
Click on a company row to open the detail page. It has seven editable cards:
| Card | Fields |
|---|---|
| Company Identity | Company Name, Code, GSTIN, Website URL, MSME registration |
| Registered Address | Line 1, Line 2, City, District, State, Pincode |
| Contact Details | Primary Email, Primary Phone, Secondary Email, Secondary Phone |
| Tax & Legal | PAN, TAN, LUT, Eway Bill API Key |
| Bank Details | Account Number, Holder Name, IFSC Code, Bank Name, Branch |
| Document Settings | LR/Docket prefix, starting number, Invoice prefix, starting number |
| Branding | Logo 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
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
- Go to Settings → Warehouses.
- Click + Add Warehouse.
- Enter the warehouse Name (required) — e.g. "Goregaon Warehouse" or "Vasai Store".
- Fill in the address details: Address Line 1, Line 2, City, Pincode, and State.
- 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.
Unit columns
| Column | Meaning |
|---|---|
| Name | Full name (e.g. "Square Feet") |
| Abbr. | Short abbreviation (e.g. "sqft") |
| Category | Area, Length, Count, or Other |
| Decimal Places | How many decimal places to show (0 to 4) |
| System | Whether this is a built-in system unit (cannot be renamed or deleted) |
Adding a Unit
- Go to Settings → Units.
- Click + Add Unit.
- Enter the unit Name (e.g. "Kilograms") and Abbreviation (e.g. "kg").
- Choose a Category: Area, Length, Count, or Other.
- Set Decimal Places (default is 2).
- Click Save.
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").
Adding an Activity Type
- Go to Settings → Activity Types.
- Click + Add Activity Type.
- Enter the Name (e.g. "Ceiling Installation") and an optional Description.
- 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
- Go to Settings → Expense Types.
- Click + Add Expense Type.
- Enter the Name and an optional Description.
- 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
- Go to Settings → Log Categories.
- Click + Add Category.
- Enter the Name and optional Description.
- Select the Project Rule:
| Rule | Meaning |
|---|---|
| Required | A project must be selected when logging entries of this type |
| Optional | A project can be selected but is not required |
| None | No project association needed for this type (e.g. "Off Day") |
- 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:
| Choice | Meaning |
|---|---|
| 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.
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.
User list columns
| Column | Meaning |
|---|---|
| Full Name | The user's display name |
| Phone | Login phone number (+91) |
| Roles | Assigned roles (Admin, Sales, Inventory, Accounts, Project Manager) |
| Status | Active or Inactive. A blue "Daily log" tag means the 7 PM daily log reminder is on (see below). |
| Last Login | When the user last signed in |
| Created | When the user account was created |
Adding a User
- Go to Settings → Users.
- Click + Add User.
- Enter the user's Full Name and Phone Number (10 digits).
- Set a Password (minimum 6 characters).
- Select one or more Roles.
- Assign the Companies the user should have access to.
- 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.
Turn it on or off
- Go to Settings → Users and click the user's row. The Edit User window opens.
- 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.
- Click Save.
In the users list, a user who has the reminder on shows a blue Daily log tag next to Active in the Status column.
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.
What the Activity tab shows
- Timestamp — when the change was made
- Action — what happened (Created, Updated, Stage Changed, etc.)
- Changed fields — which fields were modified and their old/new values
- Changed by — who made the change
How to access it
- Open any detail page (client, dealer, vendor, product, project, or dispatch).
- Click the Activity tab.
- The timeline loads automatically, showing the most recent changes first.
16. Quick Reference — Common Tasks
| Task | Where to go | Quick 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) |