RyoFin Logo
Download PDF
Table of Contents

RyoFin User Manual

Step-by-step guide for business users with screenshots and daily workflows.

RyoFin User Manual

Table of Contents

  1. Welcome & Overview
  2. Getting Started
  3. Core Concepts
  4. User Roles & Permissions
  5. Company & Store Management
  6. Master Data Setup
  7. Product Management
  8. Customer & Supplier Management (CRM)
  9. Purchases
  10. Sales
  11. Quotations
  12. Bundle Products
  13. Stock Adjustments
  14. Batch / Lot Tracking
  15. Warehouses & Stock Transfers
  16. Double-Entry Accounting
  17. Reports
  18. User Management
  19. Settings & Branding
  20. Activity Logs & Audit Trail
  21. Notifications (Email & SMS)
  22. End-to-End Workflow Recipes
  23. Troubleshooting & FAQ
  24. Glossary
  25. Appendix A โ€” Permission Reference

1. Welcome & Overview

What is RyoFin?

RyoFin is a multi-store, multi-tenant Inventory Management + Double-Entry Accounting system built for retail and wholesale businesses. It combines day-to-day operations (purchases, sales, quotations, stock) with proper book-keeping (journals, ledgers, balance sheet, profit & loss) so the business owner sees both operational and financial truth in one place.

Who is it for?

  • Shop owners / business owners who want one system for inventory and accounting.
  • Store managers who handle daily sales, purchases, and stock.
  • Cashiers / sales staff who create invoices and take payments.
  • Accountants who manage the chart of accounts, journals, and reports.
  • Multi-branch businesses where each branch (store) has its own stock but shares the same company books.

Key benefits

  • One source of truth โ€” every sale, purchase, payment, and adjustment automatically posts the correct accounting journal entries.
  • Real-time stock per store, including average cost (COGS).
  • Multi-tenant โ€” each company runs in its own isolated database.
  • Multi-store โ€” one company can have many shops, each with its own stock and users.
  • Soft delete with reversal โ€” deleting a sale or purchase automatically reverses the accounting impact, preserving audit history.
  • Permission-based โ€” every action is gated by a granular permission, assigned through roles.
  • PDF reports โ€” every report can be exported as a print-ready PDF.

What this manual covers

This manual is task-oriented. For each module you will find:

  • What it does (in plain English)
  • Where to find it in the menu
  • Field-by-field guide for create/edit forms
  • Numbered step-by-step instructions for common tasks
  • Which permissions gate which actions
  • What journal entries are created (where applicable)
  • Tips, warnings, and screenshot placeholders

2. Getting Started

2.1 Logging In

  1. Open the application URL provided by your administrator (for example: https://yourshop.ryofin.com).
  2. Enter your phone number and password.
  3. (Optional) Tick Remember me to stay signed in on this device.
  4. Click Log In.

NOTE: Your URL contains your company's tenant subdomain (e.g. sopno.ryofin.com). Make sure you use the URL your administrator gave you โ€” not a generic one.

Login page with phone number, password, and Remember me

2.2 First-Time Login

If your account is brand new:

  1. Log in with the credentials provided by your administrator.
  2. You can start using the system immediately based on your assigned role and store access.
  3. If your account is blocked, contact your administrator to activate or update your access.

2.3 Forgot Password (OTP via SMS)

RyoFin uses phone-based password reset:

  1. On the login page, click Forgot Password.
  2. Enter your registered phone number.
  3. Enter the 6-digit OTP you receive by SMS.
  4. Set a new password.

NOTE: Email may exist in your profile as optional contact info, but login and reset are phone number based.

2.4 The Dashboard

After logging in you land on the Dashboard. Depending on your role you will see:

  • Quick links to common actions (Create Sale, Create Purchase, Create Quotation)
  • Today's totals (sales, purchases, payments)
  • Stock alerts (low stock, out-of-stock)
  • Recent activity

Dashboard with KPI cards and quick links

2.5 Navigation Basics

  • Sidebar โ€” main module list (Sales, Purchases, Products, Reports, Accounts, etc.).
  • Top bar โ€” store switcher, profile menu, language, logout.
  • Breadcrumbs โ€” show where you are; click to go up one level.
  • Action buttons โ€” primary actions (e.g. "Create Sale") are usually at the top right of a list page.

2.6 Switching Stores

If you have access to more than one store:

  1. Click the store dropdown in the top bar.
  2. Select the store you want to work in.
  3. The list views (Products, Sales, etc.) reload to show that store's data.

NOTE: Some users are restricted to a single store. If you do not see a dropdown, your access is limited to one store by your administrator.

2.7 Editing Your Profile

  1. Click your avatar / name in the top bar โ†’ Profile.
  2. Update name, phone, email as needed.
  3. Click Save.

To change your password:

  1. Profile โ†’ Change Password.
  2. Enter current password, then new password twice.
  3. Click Update Password.

Profile page and Change Password modal


3. Core Concepts

These are the ideas that make the rest of the manual easier to understand. A user can ignore the technical names; what matters is what they mean for daily work.

3.1 Companies and Tenants

A Company (also called a Tenant) is the top-level business in RyoFin. Each tenant has its own isolated data โ€” its own products, customers, accounts, and reports. If you run two unrelated businesses, each one is a separate tenant.

3.2 Stores (Branches)

Inside a company you can have many Stores (also called branches or shops). Each store:

  • Has its own stock (a product can have 5 in Store A and 0 in Store B).
  • Has its own users assigned to it.
  • Shares the same company-wide chart of accounts and reports.

3.3 Multi-Store Stock

Stock is tracked per product, per store. Selling, purchasing, adjusting, or transferring stock always happens in the context of a specific store.

3.4 Units (Base / Purchase / Sales)

A product can have three different units:

  • Base unit โ€” the smallest unit you actually count (e.g. piece).
  • Purchase unit โ€” what you buy from supplier (e.g. carton of 12).
  • Sales unit โ€” what you sell to customer (e.g. pack of 6).

Conversion factors connect them so the system always knows true stock in the base unit.

EXAMPLE: You buy a carton (24 pieces) for $240, sell as packs of 6 for $80. The system tracks all 24 pieces and adjusts stock automatically when you sell packs.

3.5 Tax Methods (Inclusive vs Exclusive)

  • Inclusive tax โ€” the price you see already contains tax. Example: price $115 includes 15% VAT, so net is $100.
  • Exclusive tax โ€” tax is added on top of the price. Example: $100 + 15% VAT = $115 charged.

Each transaction (sale, purchase, quotation) chooses one method.

3.6 COGS (Cost of Goods Sold)

COGS is what the inventory you sold actually cost you to buy. RyoFin tracks an average COGS per product per store, so when you sell, the matching cost is automatically removed from inventory and posted to the COGS expense account.

3.7 Double-Entry Accounting (in plain English)

Every business event has two sides: where money came from (credit) and where it went (debit). Both sides must be equal.

Examples:

  • You sell something for cash โ†’ Cash increases (debit) AND Sales Revenue increases (credit).
  • You buy stock on credit โ†’ Inventory increases (debit) AND Supplier Payable increases (credit).
  • A customer pays their invoice โ†’ Cash increases (debit) AND Customer Receivable decreases (credit).

You don't have to write these journal entries by hand โ€” RyoFin creates them automatically for sales, purchases, payments, fund transfers, expenses, and so on. You only write manual journals for unusual events.

3.8 Soft Delete (Safe Delete)

When you delete a record (sale, purchase, etc.), it is not erased โ€” it is marked as deleted but kept for the audit trail. Reports and lists hide deleted records by default. The matching accounting entries are also automatically reversed, so the books stay correct.

3.9 Permissions and Roles

Every action (view, create, edit, delete, send email, accept quotation, etc.) is controlled by a permission. Permissions are grouped into Roles (e.g. Admin, Manager, Sales). A user is assigned one or more roles. For the full picture, See: User Roles & Permissions.

3.10 Audit Trail

Most important records (sales, purchases, accounting transactions) automatically record who changed what and when. This is visible in the Activity Log.


4. User Roles & Permissions

4.1 Default Roles

RyoFin ships with a typical set of roles. Your administrator can rename, edit, or add new roles.

Role Typical responsibilities
Super Admin Full access across all companies (system-level).
Tenant Owner / Admin Full access within their company: users, settings, accounts, all transactions.
Manager All operational modules (sales, purchases, stock) + most reports.
Accountant Chart of accounts, journals, ledgers, reports. Limited or no access to product master.
Sales / Cashier Create sales, receive payments, view own store's products and customers.
Stock Keeper Stock adjustments, view products and inventory reports.

4.2 What "Permission-Based" Means

A button or menu item only appears for a user if their role has the required permission. If you cannot see a button that the manual says should be there, your role does not have that permission.

4.3 Permission Categories

Permissions are organized by module. For each module you will typically see:

  • view <module>
  • create <module>
  • edit <module>
  • delete <module>
  • Plus module-specific actions, e.g. send quotation email, accept quotation, convert quotation to sale, record payment, etc.

See: Appendix A โ€” Permission Reference.

4.4 Assigning Roles to Users

  1. Go to Users โ†’ Roles (or User Management).
  2. Open the user.
  3. Tick the role(s) you want to assign.
  4. Click Save.

User edit page with role checkboxes

4.5 Store-Based Access

In addition to roles, a user can be scoped to specific stores. A user with view sales permission still only sees sales for the stores they are assigned to.

WARNING: Always assign at least one store to a non-admin user, otherwise list views will appear empty.


5. Company & Store Management

5.1 Companies (Tenants)

Where: Sidebar โ†’ Companies (Super Admin only). Who uses it: Super Admin who onboards new businesses.

Create a new company

  1. Click Create Company.
  2. Fill in company name, contact email, phone, address, currency.
  3. Upload company logo (used on invoices and reports).
  4. Click Save.
  5. The system creates the company's tenant database and seeds the default chart of accounts (Assets, Liabilities, Equity, Income, Expenses).

NOTE: Each company gets its own subdomain or URL slug. The tenant system isolates data โ€” Company A cannot see Company B's data.

Create company form

5.2 Stores (Branches)

Where: Sidebar โ†’ Stores. Who uses it: Tenant Owner / Admin.

Create a store

  1. Click Create Store.
  2. Enter:
    • Name (e.g. "Downtown Branch")
    • Address, Phone, Email
    • Currency (defaults to company currency)
    • Logo (optional, falls back to company logo)
  3. Click Save.
  4. The system creates the store and adds default sub-accounts under the company chart of accounts (Cash, Bank, Inventory, Customers Receivable, Sales Revenue, COGS, Suppliers Payable).

Create store form

Edit / Delete a store

  • Edit โ€” change name, contact details, logo.
  • Delete โ€” only allowed if the store has no transactions; otherwise you can deactivate it.

5.3 Assigning Users to Stores

  1. Open the store โ†’ Users tab.
  2. Click Add User.
  3. Pick existing users from the list.
  4. Click Save.

A user can be assigned to multiple stores; they will then see the store switcher in the top bar.

5.4 Branding

Set on the Company record:

  • Logo (PNG/JPG, square recommended)
  • Color (used in PDF headers)
  • Address & contact (printed on invoices)

TIP: A clean square logo on a transparent background looks best on PDF invoices.


6. Master Data Setup

Master data are the building blocks you set up before you start daily transactions. Setting them up correctly saves a lot of time later.

6.1 Brands

Where: Sidebar โ†’ Products โ†’ Brands.

Create a brand

  1. Click Create Brand.
  2. Enter Name (e.g. "Samsung").
  3. (Optional) Upload a brand logo.
  4. Click Save.

Edit / Delete

  • Editing is straightforward.
  • A brand can only be deleted if no product uses it.

6.2 Categories

Where: Sidebar โ†’ Products โ†’ Categories.

Create a category

  1. Click Create Category.
  2. Enter Name (e.g. "Mobile Phones").
  3. (Optional) Pick a parent category to build a hierarchy.
  4. Click Save.

TIP: A 2-level hierarchy (Department โ†’ Category) is enough for most shops. Deeper trees become hard to navigate.

6.3 Units (with conversions)

Where: Sidebar โ†’ Products โ†’ Units.

Create a unit

  1. Click Create Unit.
  2. Enter Name (e.g. "Carton"), Short Name (e.g. "ctn").
  3. Choose Base Unit if this is a derived unit (e.g. Carton's base is Piece).
  4. Enter Operator (* or /) and Operation Value (e.g. * and 12 means 1 carton = 12 pieces).
  5. Click Save.

Now in a product you can pick "Carton" as purchase unit and "Piece" as sales unit, and the system will translate automatically.

Create unit form with operator, operation value, base unit

6.4 Taxes

Where: Sidebar โ†’ Settings โ†’ Taxes (or Products โ†’ Taxes).

Create a tax

  1. Click Create Tax.
  2. Enter Name (e.g. "VAT 15%"), Rate (e.g. 15).
  3. Click Save.

You can later assign a tax to a product (default tax) or pick a tax on each transaction line.

6.5 Additional / Custom Fields

Where: Sidebar โ†’ Settings โ†’ Additional Fields.

Custom fields let you add extra information to records without code changes. For example: "Warranty months" on Products, "Date of Birth" on Customers, "PO Number" on Sales.

Create a custom field

  1. Click Create Field.
  2. Choose the Model (Product, Customer, Supplier, Sale, Purchase).
  3. Enter:
    • Field Name (technical name, e.g. warranty_months)
    • Label (what the user sees)
    • Type (text, number, select, textarea, date)
    • Options (only for select type โ€” comma-separated)
    • Required (yes/no)
  4. Click Save.

The field now appears automatically in the create/edit form for that model.

Custom field form, and a Product create form showing the new field


7. Product Management

Where: Sidebar โ†’ Products โ†’ Products.

7.1 Product List

The list shows: image, name, SKU, barcode, brand, category, current stock per active store, status.

Filters: brand, category, status, store, search by name/SKU/barcode. Actions: view, edit, delete (soft), adjust stock.

Product list with filters and stock columns

7.2 Create a Product

Add Product form before a type is selected

Step 1 โ€” Choose a Product Type:

Type What it means
Physical A tangible item with stock tracking, units, and COGS. Supports batch/lot tracking.
Service Labour or consulting โ€” no stock, no units. Has a Service Cost field instead of COGS.
Digital Software, e-books, licences. Optional stock limit, validity periods (start/end dates), download URL, and licence key template.

The form shows only the fields relevant to the chosen type. The steps below apply to Physical products unless noted.

Add Product form โ€” Physical type showing lot/batch tracking toggle, units, and COGS

Add Product form โ€” Service type showing Service Cost, no units or stock fields

Add Product form โ€” Digital type showing Stock Limit, Validity Period, File Path, Download URL, and License Key Template

  1. Click Create Product.
  2. Fill in the basics:
    • Name
    • SKU (must be unique)
    • Barcode (optional but recommended)
    • Brand, Category (optional)
    • Status (Active / Inactive)
  3. Units:
    • Base unit (required)
    • Purchase unit (defaults to base)
    • Sales unit (defaults to base)
  4. Pricing & tax:
    • Default purchase price
    • Default sales price
    • Default tax + tax method (inclusive/exclusive)
  5. Images: drag & drop one or more product images.
  6. (Optional) Custom fields configured for Products.
  7. Click Save.

NOTE: A product is created globally for the company. Stock is added per store separately via Purchases or Stock Adjustments.

7.3 Edit a Product

  1. Open the product โ†’ Edit.
  2. Update fields as needed.
  3. Click Save.

WARNING: Changing the base unit after the product has stock or transactions can cause inconsistent reporting. Avoid it. Create a new product instead.

7.4 Delete a Product

  • Soft delete โ€” the product is hidden but kept for historical reports.
  • Re-using the same SKU later may be blocked because it still exists in the soft-deleted set.

7.5 Stock per Store (View)

Open a product โ†’ Stock tab. You see a table:

  • Store name
  • Current stock (in base unit)
  • Average COGS per unit

NOTE: A bundle product always shows 0 stock here โ€” bundles are virtual; stock is held by the underlying components. See Section 12 โ€” Bundle Products.

7.6 Permissions

  • view product, create product, edit product, delete product
  • adjust stock (for Stock Adjustments)

7.7 Batch / Lot Tracking Settings

Applies to Physical products only. Controls whether individual lots/batches of this product are tracked separately.

Field Purpose
Track Batches Toggle on to enable lot tracking. When on, every purchase receipt must include a batch/lot number.
Require Expiry Date If on, the expiry date is mandatory when receiving a new batch. Recommended for perishables and pharmaceuticals.
Default Shelf Life (days) Auto-fills expiry date = manufacture date + this many days. Leave blank to enter expiry date manually each time.
Block Sale if Expired If on, the system refuses to sell stock from an expired batch.

TIP: Enable batch tracking on any product where you need lot traceability or expiry management โ€” medicine, food, chemicals, cosmetics.

โš ๏ธ WARNING: Once a product has been received in batches, do not turn off Track Batches. Existing records remain but new receipts would be untracked, causing stock inconsistencies.


8. Customer & Supplier Management (CRM)

8.1 Customers

Where: Sidebar โ†’ Customers.

Create a customer

  1. Click Create Customer.
  2. Enter Name, Phone, Email, Address.
  3. Optional: company name, tax ID, opening balance.
  4. Custom fields configured for Customers.
  5. Click Save.

Customer detail

  • Profile information.
  • Sales history (linked sales).
  • Receivable ledger (running balance of money the customer owes you).
  • Quotations.

Customer detail page with tabs

Edit / Delete

  • Edit any field except โ€” usually โ€” the opening balance once transactions exist.
  • Soft-deletes a customer; cannot fully remove if linked transactions exist.

8.2 Suppliers

Where: Sidebar โ†’ Suppliers. The fields and workflow mirror Customers. Suppliers have:

  • Purchase history
  • Payable ledger (money you owe them)

8.3 Custom Fields

Both Customers and Suppliers support custom fields. See Section 6.5 โ€” Additional / Custom Fields.

8.4 Permissions

  • view customer, create customer, edit customer, delete customer
  • view supplier, create supplier, edit supplier, delete supplier

9. Purchases

Where: Sidebar โ†’ Purchases.

9.1 What is a Purchase?

A purchase is a transaction where you buy stock from a supplier. It increases your inventory and creates a payable to the supplier (unless you pay immediately).

9.2 Purchase List

Columns: Purchase #, date, supplier, store, total, paid, due, payment status, actions. Filters: date range, supplier, store, payment status. Actions: view, edit, delete, record payment, download PDF.

Purchase list with filters

9.3 Create a Purchase

  1. Click Create Purchase.
  2. Header:
    • Date (defaults to today)
    • Supplier (search & pick or click "+ New Supplier")
    • Store (where the stock is going)
    • Reference / invoice number (optional)
    • Tax method (inclusive / exclusive)
  3. Line items โ€” for each product:
    • Product (search by name, SKU, or barcode)
    • Quantity (in purchase unit)
    • Unit cost
    • Tax (line-level)
    • Discount (line-level) โ€” select the type from the dropdown beside the value:
      • Amount: fixed currency amount off this line (e.g., เงณ50 off).
      • Percentage: percentage off the line subtotal (e.g., 10%).

For batch-tracked products, three extra fields appear on each line item:

Field Notes
Lot / Batch # The lot number from the packaging (e.g., LOT-2025-001). Required for batch-tracked products.
Manufacture Date Optional.
Expiry Date Required if the product has Require Expiry Date enabled. Auto-fills if a Default Shelf Life is configured.
  1. Footer:
    • Order discount (overall)
    • Shipping cost
    • Other charges
  2. Click Save Purchase.

What happens automatically:

  • Stock increases in the chosen store (in base unit).
  • Average COGS for each product is recalculated.
  • Journal entries:
    • Debit Inventory (asset)
    • Credit Suppliers Payable (liability)
    • If you also recorded an immediate payment: Debit Suppliers Payable, Credit Cash/Bank.

Purchase create form with line items

9.4 Recording a Payment to Supplier

  1. Open the purchase โ†’ Payments tab โ†’ Add Payment.
  2. Enter Amount, Date, Payment Account (Cash / Bank).
  3. (Optional) Reference, note.
  4. Click Save.

Journal:

  • Debit Suppliers Payable
  • Credit Cash / Bank

9.5 Edit a Purchase

  1. Open the purchase โ†’ Edit.
  2. Adjust items, quantities, prices.
  3. Click Save.

WARNING: Editing a purchase reverses the original journal entries and stock movement, then re-posts the new ones. Make sure your changes are correct before saving.

9.6 Delete a Purchase

  • Soft-deletes the purchase.
  • Reverses journal entries (Inventory, Payable, COGS).
  • Reverses stock movement.
  • Stays visible in audit/activity logs.

9.7 Permissions

  • view purchase, create purchase, edit purchase, delete purchase
  • view purchase payment, create purchase payment, delete purchase payment

10. Sales

Where: Sidebar โ†’ Sales.

10.1 What is a Sale?

A sale is a transaction where you sell stock to a customer. It decreases inventory, posts revenue, COGS, and creates a receivable (unless paid immediately).

10.2 Sales List

Columns: Sale #, date, customer, store, total, paid, due, payment status, actions. Filters: date range, customer, store, payment status. Actions: view, edit, delete, record payment, send email, download PDF, view invoice.

Sales list

10.3 Create a Sale

  1. Click Create Sale.

  2. Header:

    • Date
    • Customer (or walk-in customer)
    • Store
    • Tax method (inclusive/exclusive)
  3. Add line items the same way as purchases. Item-level discounts support two types (select from the dropdown):

    • Amount โ€” fixed currency amount off that line.
    • Percentage โ€” percentage off the line subtotal.

    For Digital products with Validity Period enabled, two extra date fields appear per line item:

    Field Purpose
    Validity Start Date When the customer's access / licence begins.
    Validity End Date When the customer's access / licence expires.
  4. Footer: order discount, shipping, other charges.

  5. (Optional) Pay now: tick Add Payment, choose account and amount.

  6. Click Save Sale.

What happens automatically:

  • Stock decreases in that store.
  • Journal entries:
    • Debit Customer Receivable (or Cash/Bank if paid)
    • Credit Sales Revenue
    • Debit COGS (Cost of Goods Sold)
    • Credit Inventory
    • Tax accounts if applicable.

Create sale form

10.4 Recording a Customer Payment

  1. Open the sale โ†’ Payments โ†’ Add Payment.
  2. Amount, date, account, reference.
  3. Save.

Journal: Debit Cash/Bank, Credit Customer Receivable.

10.5 Sale Invoice (PDF & Email)

On a sale's detail page:

  • Download PDF โ€” generates a print-ready invoice.
  • Send Email โ€” emails the invoice with PDF attached to the customer's email on file.

Sale invoice PDF preview

10.6 Edit / Delete a Sale

  • Same reversal-and-repost behavior as purchases.
  • Soft delete reverses stock and journal entries; sale stays in audit history.

10.7 Permissions

  • view sale, create sale, edit sale, delete sale
  • view sale payment, create sale payment, delete sale payment
  • send sale email

11. Quotations

Where: Sidebar โ†’ Quotations.

11.1 What is a Quotation?

A formal price offer to a customer that has not yet become a sale. Quotations follow a status lifecycle and can be converted into a Sale once accepted.

11.2 Status Lifecycle

Draft  โ†’  Sent  โ†’  Accepted  โ†’  Converted (to Sale)
              โ†˜  Rejected
              โ†˜  Expired (auto)
Status Meaning
Draft Saved, not yet sent. Editable.
Sent Delivered (manually marked or by email). Editable until customer responds.
Accepted Customer agreed. Ready to convert.
Rejected Customer declined. Reason saved.
Expired Expiry date passed. Automatic. Cannot be accepted.
Converted Linked to a Sale. Read-only.

11.3 Create a Quotation

  1. Click Create Quotation.
  2. Header:
    • Customer, Store
    • Quotation date, Expiry date (default: +30 days)
    • Tax method
  3. Line items: Product, qty, unit price, tax, line discount.
  4. Footer: order discount, shipping, terms & conditions, internal note.
  5. Click Save Quotation (status = Draft).

Quotation create form

11.4 Send to Customer

Manual: Open quotation โ†’ Mark as Sent. Email: Open quotation โ†’ Send Email. The system attaches a PDF and (if status was Draft) automatically marks it as Sent.

11.5 Accept / Reject

  • Accept โ€” green button. Records the user and timestamp.
  • Reject โ€” red button. Requires a rejection reason.

11.6 Convert to Sale

  1. Open an Accepted quotation.
  2. Click Convert to Sale (orange button).
  3. Confirm.
  4. The system creates a new Sale with: same customer, store, items, quantities, prices, discounts, taxes, shipping. Payment status = Pending. Note = "Converted from Quotation: QT-...".
  5. The quotation becomes Converted and links to the new sale.

NOTE: Only Accepted quotations can be converted. Once converted, you cannot edit the quotation.

11.7 Auto-Expire

A scheduled job runs daily and marks any Draft or Sent quotation past its expiry date as Expired. Expired quotations cannot be accepted; you can copy them to a new quotation if the customer comes back later.

11.8 Edit & Delete Rules

Status Edit Delete
Draft Yes Yes
Sent Yes Yes
Accepted No No
Rejected No No
Expired No No
Converted No No

11.9 Permissions

  • view quotation, create quotation, edit quotation, delete quotation
  • mark quotation sent, send quotation email
  • accept quotation, reject quotation, convert quotation to sale

12. Bundle Products

Where: Sidebar โ†’ Products โ†’ Bundles (or Products list filtered by "Is Bundle").

12.1 What is a Bundle?

A bundle is a virtual product made of other products. Selling 1 "Office Set" might consume 1 Desk + 1 Chair + 1 Lamp from stock. Bundles let you price and sell combos without manually tracking each component on the invoice.

12.2 Key Rules

  • A bundle's stock is always shown as 0 because bundles are not held in inventory โ€” their components are.
  • The cost of a bundle is computed from its components (sum of component COGS ร— quantity).
  • When you sell a bundle, the system consumes component stock from the chosen store.

12.3 Create a Bundle

  1. Click Create Bundle.
  2. Enter Name, SKU, Brand, Category as for a normal product.
  3. In Bundle Items:
    • Add each component product
    • Set the quantity per bundle
  4. Click Save.

Bundle create form with item picker

12.4 Bundle Operations

Bundle creation operation (assemble in stock) You can pre-assemble bundles into a store, which "reserves" components and shows the bundle as "created":

  1. Open bundle โ†’ Bundle Operations โ†’ Create Bundle.
  2. Choose store and quantity.
  3. Save. Component stock is consumed; a virtual bundle quantity is recorded for tracking.

Unbundle (full or partial)

  1. Open bundle โ†’ Bundle Operations โ†’ Unbundle.
  2. Choose store and quantity to unbundle (can be less than the assembled amount).
  3. Save. Components are returned to stock based on bundle ratios.

12.5 Bundle Sales & Purchases

  • Selling a bundle in a Sale automatically consumes component stock and posts COGS based on the component's average cost.
  • Purchasing a bundle is unusual but supported (treats components individually).

12.6 Bundle Transaction History

Each bundle has a history view: created, sold, purchased, unbundled. Useful for understanding cost movements.

12.7 Permissions

  • view bundle, create bundle, edit bundle, delete bundle
  • bundle operations (create / unbundle)

13. Stock Adjustments

Where: Sidebar โ†’ Stock โ†’ Stock Adjustments.

13.1 What is a Stock Adjustment?

A manual change to stock that is not a sale or a purchase. Use it for:

  • Damaged or expired goods (decrease)
  • Stock found during count (increase)
  • Opening balance entry on initial setup

13.2 Create a Stock Adjustment

  1. Click Create Adjustment.
  2. Choose Store and Date.
  3. For each line:
    • Product
    • Type: Increase or Decrease
    • Quantity (in base unit)
    • Reason (Damage, Lost, Found, Initial, Other)
    • Note
  4. Save.

Journal entries (auto):

  • Increase โ†’ Debit Inventory, Credit Inventory Adjustment (gain).
  • Decrease โ†’ Debit Inventory Adjustment (loss / expense), Credit Inventory.

Stock adjustment form

13.3 View / Delete

  • View shows the lines and impact.
  • Delete reverses both the stock movement and the journal entries.

13.4 Permissions

  • view stock adjustment, create stock adjustment, delete stock adjustment

14. Batch / Lot Tracking

14.1 What is a Batch?

A batch (also called a lot) is a group of the same product received together, tracked individually. Each batch has:

  • Lot / Batch Number โ€” a label you assign when receiving stock (e.g., "LOT-2025-001").
  • Manufacture Date โ€” optional, when the product was made.
  • Expiry Date โ€” when the batch expires (optional or required depending on the product setting).
  • Quantity โ€” how many units of that lot remain on hand.
  • Location โ€” which store or warehouse holds this batch.
  • Per-Unit Cost โ€” the cost paid when this batch was received, used for COGS when sold.

Batch tracking is an opt-in setting per product (ยง7.7). Products without batch tracking work exactly as before โ€” a single stock number per store.

14.2 Enabling Batch Tracking on a Product

In the product create/edit form, turn on Track Batches (Physical products only). See ยง7.7 for all related settings (Require Expiry Date, Default Shelf Life Days, Block Sale if Expired).

14.3 Receiving Batches via Purchases

When creating a purchase that includes a batch-tracked product, the line item shows Lot / Batch #, Manufacture Date, and Expiry Date fields (see ยง9.3). On save:

  • A new batch record is created at the chosen store or warehouse.
  • If the same lot number already exists at that location, the quantity is added to the existing batch.
  • A movement record is saved for full traceability.

14.4 Opening Stock for Batch-Tracked Products

To enter existing batch stock when setting up for the first time, create a Stock Adjustment (ยง13) with reason Initial Stock. Batch-tracked products in a stock adjustment also show Lot #, Manufacture Date, and Expiry Date fields.

14.5 Automatic Allocation When Selling (FEFO)

When you sell a batch-tracked product, you do not manually pick which batch to use. The system allocates automatically using FEFO (First Expiry, First Out) โ€” the batch with the nearest expiry date is consumed first.

  • No extra steps for the cashier.
  • Oldest-expiring stock is always sold first, minimising waste.
  • If Block Sale if Expired is enabled on the product, the sale will be blocked when only expired batches remain.

14.6 Viewing Batch Stock and Traceability

Use the Batch / Lot Reports (ยง17.10) to see current stock by lot and location, batches nearing or past expiry, and full traceability history for any lot number.

14.7 Permissions

Permission Who needs it
purchase-create Receive batch stock via purchases
stock-adjustment-create Enter opening batch stock
report-batch-view View batch stock, expiry, and traceability reports

15. Warehouses & Stock Transfers

Where: Sidebar โ†’ Peoples โ†’ Warehouses / Stock Transfers.

NOTE: This feature is optional and must be enabled per company by a Super Admin before the menu items appear.

15.1 What is a Warehouse?

A Warehouse is a central storage or holding location โ€” similar to a Store but used as a depot rather than a retail or selling point (e.g., a central supply room, a receiving bay, a wholesale depot).

Both Warehouses and Stores can hold batch-tracked stock and each has its own inventory GL account. The main difference is operational: Stores are selling/purchasing points; Warehouses are distribution and holding points.

15.2 Enabling the Warehouse Feature

A Super Admin enables warehouses in the Company settings (enable_warehouses flag). Once enabled, Warehouses and Stock Transfers appear in the sidebar under the Peoples section for users who have the relevant permissions.

15.3 Creating and Managing Warehouses

Navigate to: Peoples โ†’ Warehouses โ†’ Add Warehouse

Warehouse list and Add Warehouse form

Field Required Notes
Name Yes e.g., "Central Depot", "Receiving Bay"
Address No Physical location for reference
Contact No Phone number for reference
Active Yes (default on) Inactive warehouses do not appear in transfer dropdowns

Edit: Pencil icon on the warehouse list row.

Delete: A warehouse with stock on hand cannot be deleted โ€” it is set to Inactive instead. Once stock reaches zero it can be deleted.

15.4 Assigning Users to Warehouses

Open the warehouse record โ†’ Users tab โ†’ Add User. A user not assigned to any warehouse has access to all warehouses by default (backwards-compatible behaviour).

15.5 Stock Transfers Between Locations

A Stock Transfer moves batch-tracked stock from one location (Store or Warehouse) to another.

โš ๏ธ Only products with batch tracking enabled can be transferred.

Steps:

  1. Go to Peoples โ†’ Stock Transfers โ†’ New Transfer.
  2. From Location โ€” choose type (Warehouse / Store) and select the specific location.
  3. To Location โ€” choose a different type and location. Source and destination cannot be the same.
  4. Transfer Date โ€” defaults to today.
  5. Note โ€” optional reference.
  6. Add line items:
    • Search by product name or SKU (only batch-tracked products appear).
    • Select the specific Batch / Lot from the dropdown (shows current qty and expiry date).
    • Enter the quantity to transfer.
  7. Click Complete Transfer.

New Stock Transfer form showing From/To location, date, and line items

What happens:

  • Stock is deducted from the source batch at the source location.
  • The same lot is created or added to at the destination, preserving manufacture date, expiry date, and per-unit cost.
  • A GL journal entry moves the inventory value: Debit destination Inventory, Credit source Inventory.
  • All movements are recorded for batch traceability.

Transfer number: Auto-assigned in format ST-YYYY-000001.

15.6 Permissions

Permission Who needs it
warehouse-view View warehouse list
warehouse-create Create warehouses
warehouse-edit Edit warehouses
stock-transfer-view View stock transfers
stock-transfer-create Create stock transfers

16. Double-Entry Accounting

This is the heart of the accounting side of RyoFin. It is delivered as a built-in package and integrates with all transaction modules above.

TIP: If you are not the accountant, you usually only need this section to:

  • Record a payment that does not belong to a sale or purchase (e.g. rent).
  • Transfer money from one cash/bank account to another.
  • View the company ledger and balance sheet.

16.1 Chart of Accounts

Where: Sidebar โ†’ Accounts โ†’ Chart of Accounts.

The chart of accounts is a tree of accounts grouped by 5 root types:

  • Assets (what the business owns: Cash, Bank, Inventory, Customers Receivable)
  • Liabilities (what the business owes: Suppliers Payable, Loans, Taxes Payable)
  • Equity (Owner's Capital, Retained Earnings)
  • Income (Sales Revenue, Other Income)
  • Expenses (COGS, Rent, Salaries, Utilities)

Default per-store sub-accounts are created automatically when you add a store:

Shop A (parent)
โ”œโ”€โ”€ Assets
โ”‚   โ”œโ”€โ”€ Cash
โ”‚   โ”œโ”€โ”€ Bank
โ”‚   โ”œโ”€โ”€ Inventory
โ”‚   โ””โ”€โ”€ Customers Receivable
โ”œโ”€โ”€ Liabilities
โ”‚   โ”œโ”€โ”€ Suppliers Payable
โ”‚   โ”œโ”€โ”€ Taxes Payable
โ”‚   โ””โ”€โ”€ Loans Payable
โ”œโ”€โ”€ Equity
โ”‚   โ”œโ”€โ”€ Owner's Capital
โ”‚   โ””โ”€โ”€ Retained Earnings
โ”œโ”€โ”€ Income
โ”‚   โ””โ”€โ”€ Sales Revenue
โ””โ”€โ”€ Expenses
    โ”œโ”€โ”€ COGS
    โ”œโ”€โ”€ Rent
    โ”œโ”€โ”€ Salaries
    โ””โ”€โ”€ Others

Create / Edit an account

  1. Open the parent account in the tree.
  2. Click Add Sub-Account.
  3. Enter:
    • Account name
    • Account type (Bank, Receivable, Payable, etc.)
    • (Optional) Accountable entity โ€” link to a Customer, Supplier, Store, etc., for ledger filtering.
    • Status (Active / Deactive)
  4. Save.

Delete vs Deactivate

  • Delete โ€” only allowed if the account has zero transactions. Otherwise the system blocks delete.
  • Deactivate โ€” recommended; hides the account from new transactions but keeps history.

Reset balance (admin only)

A protected action that zeroes out an account's running balance. Used in rare correction scenarios. Requires admin permission and confirmation.

Chart of accounts tree, Add Sub-Account modal

16.2 Fund Transfers

Where: Sidebar โ†’ Accounts โ†’ Fund Transfers.

Move money from one account to another (e.g. Cash โ†’ Bank).

Create

  1. Create Fund Transfer.
  2. Date, From Account, To Account, Amount, Note.
  3. (Optional) Attachment.
  4. Save.

Journal: Debit destination, Credit source.

Filters & PDF

Filter by date, accountable type, ID. Download PDF for a date range.

16.3 Payments

Where: Sidebar โ†’ Accounts โ†’ Payments.

Records a payment between accounts or entities outside of a specific sale/purchase. Used for general ledger payments. Sales and Purchase modules also create payments under the hood.

16.4 Income / Revenue

Where: Sidebar โ†’ Accounts โ†’ Income.

Record incoming money that is not a customer sale (e.g. interest received, scrap sale).

Create

  1. Click Add Income.
  2. Date, Income account (e.g. "Interest Income"), Receiving account (e.g. Bank), Amount, Note, Attachment.
  3. Save.

Journal: Debit Bank/Cash, Credit Income Account.

16.5 Expenses

Where: Sidebar โ†’ Accounts โ†’ Expenses.

Record outgoing money that is not a supplier purchase (e.g. rent, utilities).

Create

  1. Click Add Expense.
  2. Date, Expense account (e.g. "Rent"), Paid from account (Cash/Bank), Amount, Note, Attachment.
  3. Save.

Journal: Debit Expense Account, Credit Cash/Bank.

Filters & PDF

Filter by date, accountable type, ID. PDF export with date range.

16.6 Loans / Investments

Where: Sidebar โ†’ Accounts โ†’ Loans / Investments.

Record money you gave as a loan or invested in another entity. Track outstanding balance and repayments.

16.7 Loan / Investment Returns

Record repayments or returns received on the loans/investments above. Each return links back to the original entry.

16.8 Security Deposits

Record deposits given or received (e.g. shop rent deposit). Status changes when the deposit is refunded or adjusted.

16.9 Manual Journals

16.9.1 Single-Line Manual Journal

A simple 1-debit + 1-credit entry.

  1. Manual Journals โ†’ Create.
  2. Date, Debit account, Credit account, Amount, Note, Attachment.
  3. Save (system enforces debit = credit).

16.9.2 Batch / Multi-Line Manual Journal

Use when you need many debit lines and many credit lines in one voucher.

  1. Manual Journals โ†’ Create Batch.
  2. Add as many debit rows and credit rows as needed.
  3. The screen shows running totals; Total Debits must equal Total Credits.
  4. Save.

WARNING: A multi-line journal cannot save until debits and credits balance.

Multi-line manual journal with running totals

16.10 Journals (Transaction Journals)

Where: Sidebar โ†’ Accounts โ†’ Journals.

A read-only list of every journal entry the system has posted (from sales, purchases, payments, manual journals, etc.).

Filters: date range, transaction type. Detail view: shows all lines (debit/credit) with the involved accounts and source document. PDF: download the filtered set as a journal report.

16.11 Ledgers & Account Statements

16.11.1 Single Account Ledger

  1. Ledgers โ†’ Single Account.
  2. Pick Account, optional Accountable entity (e.g. a specific customer), Date range.
  3. View opening balance, every transaction, running balance, closing balance.
  4. Download PDF.

16.11.2 All Accounts for an Entity

View every account that belongs to a specific entity (e.g. all accounts for Store "Sopno"):

  1. Ledgers โ†’ All Accounts.
  2. Pick Accountable type (Customer / Supplier / Store / Company / User) and ID.
  3. Date range.
  4. View list of accounts and their movements.

Ledger with running balance column

16.12 Tax Accounts

Tax rates configured in Section 6.4 โ€” Taxes link to tax-payable accounts so VAT/GST collected on sales and paid on purchases lands in the right liability/asset accounts automatically.

16.13 File Attachments on Transactions

Most accounting transactions (Manual Journal, Expense, Income, Fund Transfer, Loan, Deposit) accept file attachments (PDF, image). Storage can be local or S3 depending on your installation.

  • Upload โ€” choose file when creating/editing.
  • Download โ€” open the transaction โ†’ click attachment.
  • Delete โ€” admin can remove attachments.

16.14 Accounting Permissions

  • view accounts, create account, edit account, deactivate account, delete account, reset account balance
  • view journal, create manual journal, delete manual journal
  • view ledger
  • view fund transfer, create fund transfer, delete fund transfer
  • view income, create income, delete income
  • view expense, create expense, delete expense
  • view loan, create loan, delete loan
  • view loan return, create loan return
  • view deposit, create deposit, delete deposit
  • view payment, create payment, delete payment

17. Reports

Where: Sidebar โ†’ Reports.

All reports support:

  • Date range filter (from / to)
  • Store filter (where applicable)
  • PDF export (print-optimized, paginated, with timestamps and company branding)
  • Print preview

NOTE: A user only sees data from the stores they have access to. Reports are auto-scoped to that.

17.1 Sales Report

Lists sales in a date range with totals and payment status. Use it for: daily/weekly/monthly sales review.

17.2 Purchase Report

Mirror of Sales Report, for supplier purchases.

17.3 Stock Report (Inventory)

Snapshot of current stock per product per store, with average COGS and stock value.

17.4 Income Statement (Profit & Loss)

Revenue โ€“ COGS = Gross Profit. Less Expenses = Net Profit. For a chosen date range.

17.5 Balance Sheet

Assets, Liabilities, Equity at a chosen date.

  • Summary โ€” totals per group.
  • Detail โ€” breakdown by account.

17.6 Trial Balance

List of every account with debit and credit totals; debits should equal credits.

17.7 Account Statement (Account Transactions)

Per-account ledger with opening, transactions, closing balance. Same as 14.11.1 but reachable from Reports.

17.8 Customer Due Report

Outstanding receivables โ€” who owes you what, sorted by oldest balance.

17.9 Supplier Due Report

Outstanding payables โ€” who you owe and how much.

17.10 Batch / Lot Reports

Four reports for products that have batch tracking enabled. Access from the Reports menu.

a. Batch Stock by Location Current on-hand stock broken down by individual lot and location.

  • Filters: Location Type (All / Store / Warehouse), specific location.
  • Columns: Product, Location, Lot #, Qty, Expiry Date, Stock Value.
  • Use to answer: "How much of each lot do we have, and where?"

b. Near-Expiry Batches Batches whose expiry date falls within a chosen window (30, 60, or 90 days).

  • Use to identify stock to prioritise selling or disposing of before it expires.

c. Expired Batches On Hand Batches already past their expiry date that still have stock on hand.

  • Use for compliance, waste tracking, and write-off decisions.

d. Batch Traceability Full lifecycle history of a single batch from purchase through to sale.

  1. Select a Product, then select a Lot / Batch number (list is populated by the chosen product).
  2. Click Trace.
  • Shows every movement (purchase, sale, transfer, adjustment) with date and source document reference.
  • Use to answer: "Where did this lot come from, and who bought it?"

17.11 Audit Trail Report

Field-level change log showing old โ†’ new values for every data change in the system.

  • Filters: Date range, Store, Action (Created / Updated / Deleted), Module (Sales, Products, Users, etc.), User.
  • Columns: Date/Time, User, Action, Module, Record, IP Address, Changes (old โ†’ new value per field).
  • Summary at top: Total actions, Created count, Updated count, Deleted count.
  • PDF export available.

Difference from Activity Log (ยง20): Activity Log shows what action was taken. Audit Trail shows which specific fields changed and from what value to what value โ€” old and new values side by side.

17.12 Common Tasks

Export a report to PDF

  1. Apply your filters (date range, store).
  2. Click Download PDF.
  3. Save or print.

A report with filters and the PDF download button

Print a report

Most reports have a Print button that opens the browser print dialog with a clean print stylesheet.

17.13 Permissions

  • view sales report, view purchase report, view stock report
  • view income statement, view balance sheet, view trial balance
  • view customer due report, view supplier due report
  • view account statement

18. User Management

Where: Sidebar โ†’ Users.

18.1 User List

Columns: name, email, phone, company, roles, status. Filter by role and status.

18.2 Create / Invite a User

  1. Click Create User.
  2. Fill name, email, phone, password (or send invite email).
  3. Tick the roles to assign.
  4. (Optional) Assign stores.
  5. Save.

Create user form

18.3 Edit a User

  • Update name, email, phone, status (Active/Inactive).
  • Re-assign roles or stores.

18.4 Roles

Where: Sidebar โ†’ Users โ†’ Roles.

Create a role

  1. Click Create Role.
  2. Name (e.g. "Cashier").
  3. Tick the permissions to grant.
  4. Save.

Edit a role

Update name and permissions; the change applies to every user with the role.

18.5 Permissions Catalog

Where: Sidebar โ†’ Users โ†’ Permissions. A read-only list (managed by developers/admin via a seeder). See: Appendix A โ€” Permission Reference.

18.6 Reset a User's Password

  • Admin โ†’ open user โ†’ Reset Password.
  • User self-service โ†’ Forgot Password page (OTP via SMS).

18.7 Permissions

  • view user, create user, edit user, delete user
  • view role, create role, edit role, delete role
  • view permission

19. Settings & Branding

Where: Sidebar โ†’ Settings.

Settings page showing Journal Display and Warehouse Management options

NOTE: The Settings page also contains:

  • Journal Display Settings โ€” toggle whether journal entries are printed on Sale Invoices and Purchase Bills.
  • Inventory & Warehouse โ†’ Enable warehouse management โ€” enables the Warehouses and Stock Transfers feature (see ยง15).

19.1 General Settings

  • Application name
  • Default currency & symbol
  • Date format
  • Time zone

19.2 Company Branding

  • Logo (used on PDFs and login screen)
  • Address & contact (printed on invoices)
  • Theme color (PDF headers)

19.3 Invoice / PDF Templates

  • Choose default invoice template style.
  • Toggle showing/hiding fields like tax breakdown, notes, signature line.

19.4 Email & SMS Settings

Usually configured by IT during setup (SMTP for email, SMS gateway credentials). End users do not change these.

19.5 Permissions

  • view settings, update settings

20. Activity Logs & Audit Trail

Where: Sidebar โ†’ Activity Logs.

20.1 What is logged?

  • Login / logout
  • Create, update, delete on key models (Sales, Purchases, Quotations, Products, Customers, Suppliers, Accounts, Manual Journals, Settings, Users, Roles)
  • Field-level changes (before / after) where applicable

20.2 Filtering

  • Date range
  • User
  • Module / model
  • Action (created / updated / deleted)

20.3 What you see for each entry

  • Who did it (user)
  • When (timestamp)
  • What (model + record id)
  • Action
  • Changes (old โ†’ new) for updates

TIP: Use Activity Logs to investigate "why did this number change?" before suspecting a bug.

Activity log list with filters

20.4 Permissions

  • view activity log

21. Notifications (Email & SMS)

21.1 Email

Email is used for:

  • New user welcome message
  • Password reset link
  • Quotation send-to-customer (with PDF)
  • Sale invoice send-to-customer (with PDF)

The "from" address and signature come from your Settings.

21.2 SMS

SMS is used for:

  • OTP-based password reset
  • (Optional) sale or quotation confirmations, depending on your install

The system supports multiple SMS gateway providers (e.g. SMSHelperElite, SMSHelperSSL). Your IT/admin chooses one.

21.3 In-App Flash Messages

After every action you will see a green (success) or red (error) banner at the top of the page, e.g. "Sale created successfully" or "Cannot delete: account has transactions".


22. End-to-End Workflow Recipes

These are the most useful "real life" sequences. Each recipe lists the steps in order across multiple modules.

22.1 Recipe: Onboard a new shop

Goal: A brand-new business is starting on RyoFin.

  1. Super Admin creates the Company (5.1). Default chart of accounts is seeded.
  2. Tenant Owner creates one or more Stores (5.2).
  3. Tenant Owner creates Users and assigns Roles + Stores (16).
  4. Set up Brands, Categories, Units, Taxes (6).
  5. Set up any Custom Fields (6.5).
  6. Add Products (7).
  7. Enter Opening Stock via Stock Adjustments (13) or via initial Purchases.
  8. Add Customers and Suppliers (8).
  9. Optional: enter Opening Balances for receivables / payables / cash via Manual Journals (14.9).
  10. Train staff on Sales and Purchases.

22.2 Recipe: Quote โ†’ Sale โ†’ Payment

Goal: Sell to a customer who first asked for a quotation.

  1. Create Quotation (11.3).
  2. Send Email to the customer (11.4).
  3. Customer agrees โ†’ Accept quotation (11.5).
  4. Convert to Sale (11.6).
  5. On the new Sale, Add Payment (10.4).
  6. Done. Inventory and accounts are all updated.

22.3 Recipe: Receive new stock from a supplier on credit

  1. Create Purchase with the supplier (9.3).
  2. Stock and Suppliers Payable are updated automatically.
  3. Later, when you pay the supplier, open the purchase and Add Payment (9.4).

22.4 Recipe: Stock count adjustment after physical inventory

  1. Run Stock Report to see system stock per product.
  2. Compare with physical count.
  3. Create Stock Adjustment (13.2) for each variance:
    • Increase if physical > system (reason: "Found").
    • Decrease if physical < system (reason: "Damage" / "Lost").
  4. Save. Inventory account is corrected automatically.

22.5 Recipe: Pay rent / utility expense

  1. Accounts โ†’ Expenses โ†’ Add Expense (14.5).
  2. Pick "Rent" expense account, paid from "Bank".
  3. Save. Income Statement instantly reflects the cost.

22.6 Recipe: Transfer money between Cash and Bank

  1. Accounts โ†’ Fund Transfers โ†’ Create (14.2).
  2. From Cash, To Bank, Amount.
  3. Save.

22.7 Recipe: Month-end close

  1. Make sure all sales and purchases for the month are recorded.
  2. Reconcile Cash and Bank with physical/bank statement (use Account Statement report).
  3. Record Expenses for the month (rent, salaries, utilities).
  4. Run Trial Balance โ€” debits must equal credits.
  5. Run Income Statement for the month โ†’ review profit.
  6. Run Balance Sheet as of month-end โ†’ archive PDF.
  7. Run Customer Due and Supplier Due reports โ†’ follow up.

22.8 Recipe: Sell a Bundle

  1. Create the bundle and items (12.3).
  2. Make sure component products have stock.
  3. Create Sale, pick the bundle as a line item.
  4. Save. Component stock is consumed automatically; COGS is computed from components.

22.9 Recipe: Refund / Reversal

RyoFin does not have a separate "refund" module today. Use the closest matching action:

  • Wrong sale โ†’ Edit the sale (reverses & reposts) or Delete the sale (full reversal). The sale stays in audit history because of soft delete.
  • Customer returned an item but rest of sale is fine โ†’ Edit the sale and lower the quantity. Then refund cash via a Manual Journal or via a Payment with a negative amount, depending on your install.

TIP: Talk to your administrator about the recommended refund procedure for your business.


23. Troubleshooting & FAQ

23.1 Login & Access

Q: I cannot log in โ€” wrong credentials.

  • Double-check phone number and password (caps lock?).
  • Use Forgot Password to reset via OTP.
  • If still blocked, contact your admin โ€” your account may be inactive.

Q: I do not see the Stores dropdown in the top bar.

  • You are assigned to only one store (or none). Ask your admin to assign you.

Q: I cannot see a button I expect (e.g. "Convert to Sale").

  • Your role likely lacks the permission, or the record is in a status that hides the button (e.g. only Accepted quotations show "Convert to Sale"). See 11.2.

23.2 Data Issues

Q: Stock looks wrong on a product.

  • Check the Stock Report for that store.
  • Check Stock Adjustments and Activity Log for that product.
  • Look for deleted/edited sales and purchases that may have reversed stock.

Q: My report numbers don't match what I expect.

  • Confirm date range and store filter.
  • Soft-deleted records are excluded โ€” that may be why a number changed after a deletion.
  • For accounting reports, run Trial Balance first; if it doesn't balance, the issue is likely a manual journal that was tampered with โ€” check Activity Log.

Q: I cannot delete an account.

  • An account with transactions cannot be deleted. Deactivate it instead.

Q: A bundle shows 0 stock.

  • That is by design. Bundles are virtual. See 12.2.

23.3 Quotations

Q: My quotation expired before the customer responded.

  • Create a new quotation (you can copy the items) or โ€” for staff with permission โ€” Edit to extend the expiry before it expires next time.

Q: "Convert to Sale" button is missing.

  • The quotation is not in Accepted status, or has already been converted, or you do not have permission. See 11.6.

23.4 Email & SMS

Q: Customer did not receive the quotation email.

  • Check the customer's email on file is correct.
  • Ask them to look in the spam folder.
  • Re-send via Send Email on the quotation.

Q: I never receive the OTP SMS.

  • Confirm phone number on file.
  • Wait 60 seconds before re-requesting (rate limit).
  • If OTP still fails, contact your administrator.

23.5 Performance

Q: A list page is slow.

  • Apply tighter filters (date range, single store).
  • Reduce per-page size if available.
  • Contact your admin if persistent.

24. Glossary

  • Account โ€” a bucket in the chart of accounts (e.g. "Cash", "Sales Revenue").
  • Accountable entity โ€” what an account "belongs to" โ€” a Customer, Supplier, Store, Company, or User. Used for filtering ledgers.
  • Audit Trail โ€” automatic log of who changed what.
  • Balance Sheet โ€” snapshot of Assets, Liabilities, Equity at a point in time.
  • Base unit โ€” smallest unit of a product.
  • Bundle โ€” a virtual product made of other products.
  • COGS โ€” Cost of Goods Sold; what your inventory cost you.
  • Credit / Debit โ€” the two sides of every accounting entry.
  • Income Statement (P&L) โ€” revenue, costs, profit over a period.
  • Inclusive / Exclusive Tax โ€” whether listed price already includes tax or not.
  • Inventory โ€” value of stock you currently own.
  • Journal โ€” a record of one transaction (with debits and credits).
  • Ledger โ€” list of all transactions on one account, with running balance.
  • Manual Journal โ€” a journal entry you write yourself instead of one auto-generated by a sale or purchase.
  • Multi-tenant โ€” many isolated companies in the same software.
  • Payable โ€” money you owe (suppliers, loans).
  • Receivable โ€” money owed to you (customers).
  • Soft delete โ€” a record marked as deleted but kept for history; the matching journal is reversed.
  • Store / Branch โ€” a physical or logical shop location with its own stock.
  • Tenant โ€” same as Company.
  • Trial Balance โ€” list of all account balances, used to confirm the books are in balance.
  • Unit conversion โ€” relationship between two units of the same product (e.g. 1 carton = 12 pieces).
  • Voucher โ€” a multi-line manual journal grouped by a batch ID.

25. Appendix A โ€” Permission Reference

This is a list of permission keys grouped by module. Use it to design custom roles.

NOTE: Exact permission names may vary slightly per installation. Treat this as a reference. The seeder is the authoritative source.

23.1 Users / Roles / Permissions

  • view user, create user, edit user, delete user
  • view role, create role, edit role, delete role
  • view permission

23.2 Company / Store

  • view company, create company, edit company, delete company
  • view store, create store, edit store, delete store
  • assign user to store

23.3 Master Data

  • view brand, create brand, edit brand, delete brand
  • view category, create category, edit category, delete category
  • view unit, create unit, edit unit, delete unit
  • view tax, create tax, edit tax, delete tax
  • view additional field, create additional field, edit additional field, delete additional field

23.4 Products & Stock

  • view product, create product, edit product, delete product
  • view bundle, create bundle, edit bundle, delete bundle, bundle operations
  • view stock adjustment, create stock adjustment, delete stock adjustment

23.5 Customers & Suppliers

  • view customer, create customer, edit customer, delete customer
  • view supplier, create supplier, edit supplier, delete supplier

23.6 Sales / Purchases / Quotations

  • view sale, create sale, edit sale, delete sale, send sale email
  • view sale payment, create sale payment, delete sale payment
  • view purchase, create purchase, edit purchase, delete purchase
  • view purchase payment, create purchase payment, delete purchase payment
  • view quotation, create quotation, edit quotation, delete quotation
  • mark quotation sent, send quotation email
  • accept quotation, reject quotation, convert quotation to sale

23.7 Accounting

  • view account, create account, edit account, deactivate account, delete account, reset account balance
  • view journal
  • view manual journal, create manual journal, delete manual journal
  • view ledger
  • view fund transfer, create fund transfer, delete fund transfer
  • view payment, create payment, delete payment
  • view income, create income, delete income
  • view expense, create expense, delete expense
  • view loan, create loan, delete loan
  • view loan return, create loan return
  • view security deposit, create security deposit, delete security deposit

23.8 Reports

  • view sales report
  • view purchase report
  • view stock report
  • view income statement
  • view balance sheet
  • view trial balance
  • view account statement
  • view customer due report
  • view supplier due report

23.9 System

  • view activity log
  • view settings, update settings