SolvexaRetail
Manual ยท Finance & Reports
All TopicsBack to app

๐Ÿ“Š Finance & Reports

Double-entry always balanced ยท Every transaction traceable ยท Trial Balance ready any time

Chart of Accounts (CoA)

Every tenant is pre-seeded with 60 accounts covering Assets / Liabilities / Equity / Income / Expenses โ€” the standard Indian tree. Customize freely.

  1. Finance โ†’ Chart of Accounts
  2. Add: + New Account โ€” pick Account Type (Asset/Liability/Equity/Income/Expense), Account Category, Account No (e.g. 1150), Account Name
  3. Edit: click any row โ†’ change Name / Category / Blocked flag. Blocked accounts don't appear in JV pickers.
โš  Don't rename or delete accounts that already have GL entries โ€” the transactions still reference the account. Instead, mark Blocked.

Manual Journal Voucher (JV)

For adjustments not covered by other flows: bank charges, provisions, month-end accruals, opening balances.

  1. Finance โ†’ Journal Entry โ†’ + New JV
  2. Enter Voucher No (auto), Date, Journal Type (General / Bank / Cash), Narration
  3. Add lines: Account + Debit or Credit. Add as many lines as needed.
  4. Total Debit MUST equal Total Credit โ€” trigger enforces at post time.
  5. Optional: attach Dimensions (Cost Center, Department) for later slicing
  6. Click Post. GL Entries created. Print JOURNAL_VOUCHER for audit file.

Trial Balance

Every account with a non-zero balance. First check before any financial statement โ€” Dr side must equal Cr side.

  1. Finance โ†’ Trial Balance
  2. Enter From Date + To Date (usually FY start to today)
  3. Click โ–ถ Generate. Table shows: Account No / Name / Category / Total Debit / Total Credit / Balance
  4. Bottom row: totals must match. If mismatch, GL invariant trigger caught something โ€” check Admin โ†’ GL Balance Audit.
  5. Click โค“ Excel to export for CA.

Profit & Loss (Income Statement)

  1. Finance โ†’ Income Statement
  2. Enter From Date + To Date. Optionally filter by Dimension (per-store P&L, per-department P&L)
  3. Click โ–ถ Generate. Shows Income โˆ’ Expenses = Net Profit/Loss
  4. Click any account row โ†’ drills into GL detail for that account

Balance Sheet

  1. Finance โ†’ Balance Sheet
  2. Enter As-of Date. Optionally filter by Dimension.
  3. Click โ–ถ Generate. Assets = Liabilities + Equity (auto-balanced via Retained Earnings from P&L).
  4. Groups: Current Assets โ†’ Fixed Assets โ†’ Current Liabilities โ†’ Long-term Liabilities โ†’ Equity

AR / AP Aging Analysis

"Who owes me?" (AR = Accounts Receivable) and "Who do I owe?" (AP = Accounts Payable) โ€” bucketed by days overdue.

  1. Finance โ†’ Aging Analysis
  2. Choose tab: AR (Customer) or AP (Vendor)
  3. Enter As-of Date (usually today). Click โ–ถ Load
  4. Rows: one per open invoice. Buckets: Current / 1-30 / 31-60 / 61-90 / 91+ days overdue
  5. Click a customer/vendor row โ†’ drills into their full ledger
  6. โค“ Excel to send to collections/finance team
๐Ÿ’ก High 91+ balance = follow-up needed. Use Customers โ†’ Payment Link to send Razorpay hosted checkout link via WA+SMS.

Bank Reconciliation

Match your bank statement rows against posted GL entries. Detect: missed entries, duplicates, cheques not cleared.

  1. Finance โ†’ Bank Statement Import โ€” upload PDF bank statement. AI extracts rows.
  2. Review extracted rows. Correct if needed. Click Import.
  3. Finance โ†’ Bank Reconciliation โ€” pick your bank account + date range
  4. Left panel: Bank statement rows. Right panel: GL entries to this account.
  5. Click Auto-match โ€” pairs rows with equal amount + within ยฑ3 days
  6. Manually match remaining rows: tick left row + right row(s) that sum equal โ†’ Match
  7. Bottom shows: Bank closing + Outstanding deposits โˆ’ Outstanding cheques = Adjusted Bank. Compare to GL. Diff should be zero.

Recurring Journals (monthly rent, insurance, etc)

  1. Finance โ†’ Recurring Journals โ†’ + New Template
  2. Define: Name ("Office Rent"), Cadence (Monthly / Quarterly / Yearly), Next Due Date
  3. Add balanced lines. Total Debit MUST equal Total Credit like any JV.
  4. Optional: Dry-run to preview next post
  5. Save + activate. RecurringJournalWorker auto-posts on due date + advances Next Due Date.
  6. Pause any time โ€” flip Active = No.

Year-End Close

End of financial year (31st March in India): close P&L accounts to Retained Earnings + carry over Balance Sheet.

  1. Finance โ†’ Year-End Close โ†’ + New Close
  2. Pick Fiscal Year ending 31-Mar
  3. Click โ–ถ Preview โ€” shows what will happen without committing. Verify totals + Retained Earnings.
  4. Click โ–ถ Dry-run โ€” commits to a shadow ledger. Still reversible.
  5. Click โ–ถ Commit โ€” locks the fiscal year. New year starts fresh with opening balances = closing of prior year.
  6. Reverse button available for 30 days after commit if you spot an error.

Rounding Setup (per doc type + currency)

Invoice-level rounding rules โ€” mandatory for GST-compliant printing.

  1. Finance โ†’ Rounding Setup
  2. Each row = one rule: DocType (Purchase/Sales/POS/Hospitality), Currency (INR/USD/โ€ฆ), Invoice Precision (1.00 = nearest rupee, 0.01 = nearest paise), Method (Nearest / Up / Down), Rounding GL Account (default 6190 Rounding Off)
  3. Every new tenant seeded with 28 rules (4 doc types ร— 7 currencies). Owners can edit any.
๐Ÿ’ฌ Ask Saathi: "cash on hand" ยท "outstanding invoices" ยท "P&L this month" ยท "how to reconcile bank"

Number Series (document numbering)

Every document type โ€” Purchase Order, GRN, Purchase Invoice, Sales Order, Sales Invoice, Payment, Journal Voucher, Stock Transfer, etc. โ€” draws its number from a Number Series. You control the prefix, starting number, padding, and reset behavior. Separate series for unposted (draft) vs posted are supported.

Create a number series

  1. Go to Finance โ†’ GL Setup (or Admin โ†’ GL Setup).
  2. Click the ๐Ÿ”ข Number Series tab in the left sidebar of the page.
  3. In the All Number Series card, click + New.
  4. Fill in the modal:
    • Series Code โ€” short identifier, uppercase (examples: PO, GRN, PI, SO, SI, JV, TO, PMT). Must be unique per tenant.
    • Series Name โ€” human label (e.g. "Purchase Order").
    • Prefix โ€” printed on every document number (e.g. PO/ yields PO/000001).
    • Starting No โ€” usually 1.
    • Padding โ€” how many digits after the prefix (padding = 6 gives PO/000001).
    • Date Order โ€” if checked, embeds the posting-date in the number (e.g. PO/20260803-001).
    • Fiscal Year Reset โ€” if checked, sequence resets to Starting No at the start of every fiscal year.
    • Manual Allowed โ€” if checked, users can overwrite the auto-generated number when creating a document.
    • Default Nos โ€” leave on unless you want to reserve the series only for manual entries.
    • Is Active โ€” must be on for the series to be picked up by document creation.
  5. Save. The series is immediately available in the Document Number Series assignment card.

Attach a number series to a specific document

The Document Number Series card (same page, below the series list) is where you link each series to a document type. This is the mapping the app reads when a user hits "Save" on a new PO / GRN / Invoice.

  1. In the Document Number Series card, find the row for your document type (Purchase Order, GRN, Purchase Invoice, Sales Order, Sales Invoice, Journal Voucher, Transfer, Payment).
  2. Set the Unposted Series โ€” used while the document is still Draft (e.g. PO series for a draft PO).
  3. Set the Posted Series โ€” used once the document is posted. You may leave it the same as Unposted if you want a single number that stays with the document through its lifecycle. Split it if you want a separate posted-doc series (e.g. drafts use DRAFT-PO, posted use PO).
  4. Click Save assignments at the bottom of that card.
  5. Next time a user creates that document type, the app calls sp_GetNextNo with the assigned series code and returns the next number (PO/000001, PO/000002, โ€ฆ).

Store-specific overrides

Retail chains often want different number series per store (so PO/000001 from Store A never clashes with PO/000001 from Store B). Set the StoreID column when creating a series, then the document creation picks the store-specific series first, falling back to the global one if none is defined for that store.

Behavior + gotchas

๐Ÿ’ฌ Ask Saathi: "how to create number series" ยท "attach number series to sales invoice" ยท "why is my PO number not generating"

Every printed document — Sales Invoice, POS Receipt, Purchase Order, GRN, KOT, Bank Payment Voucher — runs through a Print Template. Templates are per-tenant, per-document-type, editable HTML/CSS. You can either edit the HTML by hand OR upload a photo of your existing paper layout and let Solvexa's AI generate the template.

Design a print template by uploading a photo (recommended)

  1. Go to Setup → Print Templates.
  2. Pick the Document Type: Sales Invoice / POS Receipt / Purchase Order / GRN / KOT / Payment Voucher.
  3. Click the 🎨 Design from photo button.
  4. Upload a clear photo (or PDF/scan) of a receipt you currently use. Solvexa runs OCR (Tesseract for text extraction) then a small local LLM (qwen2.5:3b) to reconstruct the header / body / footer + CSS.
  5. Preview appears in ~10 seconds. Adjust: tweak logo path, add/remove columns, resize text.
  6. Save. All future prints of that doc type use this template.

Edit a template manually

  1. Setup → Print Templates → pick doc type → Edit HTML.
  2. Three tabs: Header (company logo, address, GSTIN, invoice-no block), Body (line-item table + subtotal/tax/total), Footer (bank details, terms, signature, QR code).
  3. Placeholders available: {{CompanyName}}, {{DocumentNo}}, {{PostingDate}}, {{Customer.Name}}, {{Customer.GSTIN}}, {{Lines[]}}, {{SubTotal}}, {{TotalTax}}, {{TotalInWords}}, {{QRCode}}. See "Placeholder reference" tab for the full list per doc type.
  4. CSS is inline in the <style> block — use it for fonts, borders, print-width (58mm thermal / 80mm thermal / A4).
  5. Preview button renders the template with a sample document.
  6. Save — next print job uses the new template.

Multiple templates per doc type

Retail chains often want different receipt styles per store (English at store 10, Hindi at store 11). Create multiple templates for the same doc type; assign a template to a Store on Setup → Store → edit → Print Templates tab. The store-specific template wins; if none is set, the tenant-default template is used.

💬 Ask Saathi: "how to change my invoice template" · "how to add logo to receipt" · "how to design print template from photo"

Approval Setup + Delegation

Solvexa can block a document from posting until a manager approves it. Rules are per-tenant, per-doc-type, threshold-based. Approvals are optional — if no rule is set, the document posts immediately.

Configure an approval rule

  1. Go to Admin → Approval Setup.
  2. Click + New Rule. Pick:
    • Document Type: PO, GRN, PI, SO, SI, JV, Payment, Transfer — or "*" for any.
    • Threshold Amount: rule fires when TotalAmount ≥ this value (leave 0 to require approval on every document of this type).
    • Approver User or Approver Role: who can approve.
    • Escalate After: hours until it auto-escalates to a fallback approver.
    • Fallback Approver: takes over if primary doesn't act in time.
  3. Save. Next time a user hits Post on a matching document, the app raises an ApprovalRequest, marks the doc as PendingApproval, and emails/WhatsApps the approver.

Approve or reject as a manager

  1. Go to Admin → Approvals. Pending requests assigned to you show up here.
  2. Click a request. Preview shows the full document. Click Approve or Reject (with reason).
  3. On Approve: the original poster receives a notification; their next attempt to post the document goes through.
  4. On Reject: the document stays Draft and the poster sees your reason.

Delegation (holiday cover)

  1. Go to Admin → Approval Delegation.
  2. Click + New Delegation. Pick:
    • Delegate From: the user who's going on leave.
    • Delegate To: the temporary approver.
    • Valid From / Valid To: date range.
  3. During that window, every approval routed to "Delegate From" is auto-forwarded to "Delegate To" instead — no manual intervention needed.
💬 Ask Saathi: "how to set up approvals" · "how to delegate approvals during leave" · "why is my PO stuck pending approval"

Dimensions & Cost Centres

Dimensions are analytical tags you attach to every posted document so your P&L can slice by Department, Project, Cost Centre, Branch, Salesperson, etc. Solvexa supports 6 dimensions per posting: 2 Global (recommended: Department + Cost Centre) and 4 Shortcut (open for your own use).

Set up Dimension values

  1. Go to Finance → Dimensions (or Admin → Dimension Setup).
  2. Pick the dimension slot (Global 1 / Global 2 / Shortcut 3 / 4 / 5 / 6).
  3. Give it a name (e.g. "CostCentre") and a code (e.g. "CC").
  4. Add values under it: e.g. CC-KITCHEN, CC-FRONTOFHOUSE, CC-ADMIN.

Attach dimensions to a document

  1. Every document form (PO, GRN, PIH, SI, JV, POS Sale) has a Dimensions panel — usually collapsed under an "Advanced" toggle.
  2. Pick a value from each active dimension dropdown. Values default from the Customer / Vendor / Store / Item master defaults (set them on those master records so users rarely have to pick manually).
  3. On post, all GLEntry rows for the document inherit the dimensions — every ledger row is dimension-tagged.

Report by dimension

  1. Open Reports → P&L (or Trial Balance / Balance Sheet).
  2. Use the Filter panel: pick a Dimension slot and one or more values.
  3. Report re-runs restricted to GLE rows tagged with your chosen dimension — e.g. "P&L for CostCentre = KITCHEN this month".
  4. Reports → Cost Centre Analysis is a pre-built report that groups Revenue / Direct Cost / Overhead by Cost Centre — useful for restaurant chains that want per-outlet or per-station profitability.

Default dimensions from masters

To avoid users picking dimensions manually every time, set defaults on the master:

The stamper on posting merges: line-level (from Item) → header-level (from Customer/Vendor/Store) → explicit user selection (if provided). Most-specific wins.

💬 Ask Saathi: "how to set up cost centres" · "how to add dimensions to sales invoice" · "P&L by department" · "why are my GL entries not tagged with dimensions"