Inventory & Sales in Detail
The Inventory & Sales module is the core business function of Jenny Fabric Software, covering the complete transaction loop from purchasing to selling.
Module Navigation
Inventory & Sales sits in the left-hand menu and contains the following submodules:
| Menu item | Submenu | Function |
|---|---|---|
| Sales → | Sales orders, Sales returns | Create sales orders, manage returns |
| Picking | — | Process picking for sales orders, enter piece-level measures, and ship |
| Purchasing → | Purchase orders, Purchase returns | Create purchase orders, manage returns |
| Warehouse → | Stock-in, Stock-out, Transfer, Stocktake, Live inventory, Warehouse management | Stock-in/out documents, inter-warehouse transfers, physical stocktakes, inventory queries |
| Funds | Fund ledger, Receipts, Payments, Other income/expense | Income and expense ledger, standalone receipt and payment documents |
| Reports | — | Sales performance report, Customer statement, Supplier statement |
| Document Templates | — | Custom print templates (see the Document Editor) |
Menu navigation
Menu items with a → arrow reveal a submenu when you hover over them.
1 Sales
What it does: Manages the full lifecycle of sales orders—from creating the order, entering piece-level measures, and picking and shipping, to collecting payment and settling.
1.1 Sales Order List
Click "Sales" in the left-hand menu to enter the sales order list page.
Filters:
- Date range (start date – end date)
- Sales order number
- Customer
- Owner
- Creator
- Product
- Color
- Type (Bulk / Meter sample)
- Notes
List fields: sales order number, customer, type, date, contract amount, delivered, outstanding, received, payment status, delivery status, creator.
- Payment status: unpaid (red), partially paid, paid
- Delivery status: not delivered (red), pending picking, picking, picked, partially delivered, delivered

1.2 Creating and Editing a Sales Order
Click the "New Sales Order" button in the top-right to enter the editing page.
Header info:
- Sales order number (auto-generated, format XS + date + sequence)
- Customer (required)
- Owner
- Type (Bulk / Meter sample)
- Sale date (required)
- Planned receipt date
- Delivery date
- Delivery address
- Default warehouse
Product line items: Click "Add Product" to select products. The product selection dialog supports search by number, product name, and composition, and can be filtered by color:

The system shows the following fields:
| Field | Description |
|---|---|
| Photo | Product photo thumbnail |
| Number | Product number |
| Product name | Product name |
| Color | Fabric color |
| Piece-level measures | Per-piece meter details for each bolt |
| Pieces | Number of bolts |
| Total quantity | Total meters/total weight |
| Unit price | Can be entered manually; when there's a transaction history, the system auto-recommends the last unit price |
| Amount | Calculated automatically (total quantity × unit price) |
| Delivered quantity | Quantity already shipped |
| This delivery | Quantity being shipped this time |
| Warehouse | Stock-out warehouse |
| Notes | Product notes |

Payment info: Below the product line items is the payment area, showing the delivered amount, amount received, and outstanding amount. Multiple receipts are supported:
- Enter the amount received and the receipt date
- Select the receipt account
- The system auto-generates a receipt number (format SK + date + sequence)
- Click a receipt number to view its details

At the bottom are "Save" and "Save and Print" buttons. Printing uses the default sales order template set in the Document Editor.
1.3 Negative Stock Support
When stock is insufficient, the system allows issuing an order against negative stock. After issuing, you can quickly jump to the purchasing module to replenish.
Note
A negative-stock purchase is the only way to offset negative stock.

1.4 Rounding
Sales orders support rounding—adjusting the trailing digits of the contract amount. For example, rounding 10,309.20 CNY down to 10,300 CNY makes it easier for customers to pay and reconcile.
1.5 Piece-Level Measures Hover Tooltip
On the sales order detail page, hovering over the piece-level measures column pops up a detail box that displays each bolt's details in a table, so you can review them quickly without entering the editing page.
1.6 Sales Order Detail Page Actions
At the bottom of the sales order detail page are the following action buttons:
- Export tally receipt — export the piece-level measure details to a file
- Generate purchase order — quickly create a matching purchase order from the sales order
- Print — print using the default template in the Document Editor
- Edit — modify the sales order content
1.5 Reporting for Picking
On the sales order editing page, click the "Report" button to submit the sales order to the picking staff. After reporting, the sales order enters the "pending picking" status.
1.6 Sales Returns
Click "Sales" → "Sales Returns" in the left-hand menu to manage customer return documents.
2 Picking
What it does: Warehouse staff physically pick goods against a sales order, enter piece-level measures, and confirm shipment.
2.1 Picking List
Click "Picking" in the left-hand menu to enter the picking list. The list shows:
| Field | Description |
|---|---|
| Sales order number | The linked sales order number |
| Date | Sales order date |
| Picking status | Pending picking / Picking |
| Reporter | The salesperson who submitted the report |
| Action | Pick button |
The number badge to the right of the menu item (e.g., "Picking (6)") indicates the number of picking documents currently pending.
2.2 Picking Workflow
- Click the "Pick" button in the picking list.
- Enter the actual piece-level measures for each product (the per-piece meter details for each bolt).
- Set the picking document date.
- Confirm to complete picking.
Permission control:
- Once a salesperson has submitted the report, they can no longer manually modify the piece-level measures.
- Only staff with picking permission can perform picking.


2.3 Scan-to-Pick on Mobile
Using the Jenny app to scan the QR code on the fabric label can auto-fill the piece-level measures, reducing manual entry errors and improving warehouse efficiency.
3 Purchasing
What it does: Records the stock-in flow of fabric purchased from suppliers, automatically syncing inventory and fund data.
3.1 Purchase Order List
Click "Purchasing" in the left-hand menu to enter the purchase order list page.
Filters: date range, order number, supplier, owner, creator, product, color, notes.
List fields: purchase order number, supplier, date, contract amount, received, unpaid, paid, payment status, receipt status, creator.
- Payment status: unpaid (red), partially paid, paid
- Receipt status: not received, received
3.2 Creating and Editing a Purchase Order
Click the "New Purchase Order" button in the top-right.
Header info: purchase order number (auto-generated, format CG + date + sequence), supplier (required), purchase date, owner, etc.
Product line items: after adding a product, fill in the product name, color, quantity, and unit price; the system calculates the amount automatically.

3.3 Payment Management
In the purchase order detail you can edit payment info:
- Multiple payment records are supported
- The system automatically tracks cumulative payments and the remaining unpaid balance
- Each payment generates a payment number (format FK + date + sequence)

3.4 Purchase Returns
Click "Purchasing" → "Purchase Returns" in the left-hand menu to manage return documents to suppliers.
3.5 Printing Purchase Orders
On the purchase order detail page, click the "Print" button; the system renders and prints using the default purchase order template set in the Document Editor.
3.6 Confirming Receipt
After confirming receipt, the system automatically increases the stock quantity and updates the inventory record.

4 Warehouse Management
The Warehouse module centralizes stock-in/stock-out documents and inventory queries. Click "Warehouse" in the left-hand menu to reveal a flyout submenu, split into two groups:
Documents: Stock-in, Stock-out, Transfer, Stocktake
Queries: Live inventory, Warehouse management
4.1 Stock-In
What it does: Handles non-purchase stock-in operations, such as production material returns.
Stock-in document list:
Filters: date range, order number, creator, product, color, notes.
List fields: stock-in number, receipt date, creator, action.
New stock-in document:
- Click the "New Stock-In" button.
- Fill in the basic info: receipt date, receipt address, default warehouse.
- Add products and enter piece-level measures (the independent meter/spec details for each bolt).
- After saving, the system automatically updates the inventory.

For how to enter piece-level measures, see Entering Tally Receipts.
Stock-in document details: When viewing a stock-in document's details, it shows the photo, number, product name, color, piece-level measures, pieces, total quantity, warehouse, and notes. Printing (using a Document Editor template) and editing are supported.
4.2 Stock-Out
What it does: Handles non-sales stock-out operations, such as writing off damaged goods.
Filters: date range, order number, creator, product, color, notes.
New stock-out document:
- Click the "New Stock-Out" button.
- Fill in the delivery date, delivery address, and default warehouse.
- Add products and enter piece-level measures.
- After saving, the system automatically deducts the inventory.
4.3 Transfer
What it does: Moves stock between different warehouses. For example, transferring 100 meters of fabric from the "Main Warehouse" to the "Showroom Warehouse."
Transfer document fields:
- Transfer number (auto-generated, prefix DB)
- Date
- Source warehouse (required)
- Destination warehouse (required)
- Transferred products (number, product name, color, quantity, pieces)
Workflow:
- Click "Warehouse" → "Transfer."
- Create a transfer document and select the source and destination warehouses.
- Add products (only products with stock are shown) and check off each bolt to transfer (piece level).
- After saving, the system automatically:
- Source warehouse: stock decreases (stock-out)
- Destination warehouse: stock increases (stock-in)
Tip
A transfer doesn't change the total stock quantity—it just moves stock between warehouses. Transfers support piece-level operations: you can precisely choose exactly which bolts to transfer, rather than just entering a quantity.
4.4 Stocktake
What it does: Performs a physical stocktake of a warehouse, reconciling the difference between system stock and actual stock, and adjusting automatically.
Stocktake document fields:
- Stocktake number (auto-generated, prefix PD)
- Date
- Stocktake warehouse (required)
- Status: Draft / Confirmed
Workflow:
- Click "Warehouse" → "Stocktake."
- Create a stocktake document and select a warehouse.
- The system automatically loads all inventory records for that warehouse (system quantities), precise to each bolt (piece level).
- Check each bolt and enter the actual quantity (the physical stocktake result).
- The system automatically calculates the difference:
- Overage (actual > system): shown in green; automatically stocked in upon confirmation.
- Shortage (actual < system): shown in red; automatically stocked out upon confirmation.
- After verifying everything, click "Confirm Stocktake" and the inventory adjusts automatically.
Note
A stocktake cannot be undone after confirmation, and the inventory adjusts immediately. We recommend carefully verifying every difference before confirming.
4.5 Live Inventory
What it does: View current inventory data in real time, with multi-dimensional filtering.
Filters: warehouse, product, color, sample search.
List fields:
| Field | Description |
|---|---|
| Thumbnail | Product SKU photo (hover to see a larger image) |
| Warehouse | The name of the warehouse it's in |
| Number | Product number |
| Name | Product name |
| Color | Fabric color |
| Pieces | Pieces in stock |
| Stock quantity | Total stock (meters/kilograms, etc.) |
| Update date | The time of the most recent inventory change |
Notable features:
- Merge & summarize: when enabled, stock of the same product in different colors can be displayed merged.
- Summary data: the total pieces and total quantity are displayed at the top of the page by default; click the eye icon to hide them.
- SKU thumbnails: the list shows product photo thumbnails; hover to view a larger image.
Inventory ledger
Click a row in the inventory list to view that product's inventory ledger—a complete record of stock-in/stock-out activity. Every change (purchase stock-in, sales stock-out, transfer, stocktake, etc.) is traceable, and you can jump to the original document.
4.6 Warehouse Management
In the "Queries" group of the "Warehouse" flyout menu, click "Warehouse Management" to:
- Add a warehouse
- Edit a warehouse name
- Set the default warehouse
5 Funds Management
What it does: Centrally manages the fund flow of purchase payments and sales receipts, with support for multi-account management and reconciliation.
The Funds menu expands into three groups:
- Ledger: Fund ledger (a summary of all income and expenses)
- Receipts & payments: Receipts (managed independently), Payments (managed independently)
- Other: Other income/expense (non-business income and expenses)
5.1 Fund Ledger List
Click "Funds" → "Fund Ledger" in the left-hand menu to view all income and expense activity.
Filters: date range, account, company.
List fields:
| Field | Description |
|---|---|
| Date | Transaction date |
| Account | Receipt/payment account |
| Type | Income/expense type |
| Company/summary | The counterparty (customer or supplier) or summary |
| Income | Sales receipt amount |
| Expense | Purchase payment amount |
| Balance | Current account balance |
| Linked business | The corresponding receipt or payment number (clickable to jump) |

5.2 Receipts and Payments

In the new version, receipts and payments have their own dedicated list pages:
- Click "Funds" → "Receipts": view all receipt records, managed independently of sales orders.
- Click "Funds" → "Payments": view all payment records, managed independently of purchase orders.
Receipts and payments support custom print templates through the Document Editor.
5.3 Other Income/Expense
Click "Funds" → "Other Income/Expense": record non-business income and expenses (such as utilities, rent, and miscellaneous fees).
5.4 Account Management
Click the "Account Management" button in the top-right to manage receipt/payment accounts:
- Add an account
- Edit an account name
- Set the default account
5.3 Modifying Fund Records
- Find the transaction row you want to modify in the fund ledger table.
- Click the business document number in the "Linked business" column.
- Jump to the corresponding sales order or purchase order detail.
- Modify the receipt/payment amount on the detail page.
- The system automatically updates the fund ledger and balance.

6 Entering Tally Receipts
Piece-level measures are a core concept in the fabric industry, referring to the independent meter/weight details of each bolt. They need to be entered in scenarios such as purchase stock-in, direct stock-in, and sales picking.
6.1 Entry Modes
- Quick mode: enter the quantity directly (e.g., "1000" for 1000 meters) and press Enter to confirm—suitable for quickly issuing orders.

- Advanced mode: enter detailed info such as lot number, roll number, and tolerance, and set the default warehouse and priced quantity—suitable for fine-grained management.

6.2 Piece Cutting
When the length needed isn't a whole bolt, you can use the cutting feature. After entering the required length, the system automatically calculates the remaining length and updates the inventory.

6.3 Primary/Secondary Unit Conversion
Supports automatic conversion between various fabric units of measure, such as kilograms to meters. For example, when the primary unit is meters, you can set kilograms as the secondary unit, and the system calculates automatically using the conversion ratio you set.

6.4 Per-Piece Tolerance
Tolerance is an important concept in fabric trading, referring to the difference/allowance between the actual quantity and the priced quantity.
- By percentage: enter the tolerance percentage (e.g., 98 means priced at 98% of actual, i.e., a 2% allowance).
- By value: enter the specific tolerance value directly.

7 Printing Fabric Labels
7.1 Creating a Fabric Label
- Click "Label Management" at the bottom of the left-hand menu (in the Enterprise Operations group).
- Select the "Fabric Label" option.
- Use a system template to quickly create a label.
- Click the "star" icon to set it as the template in use.


7.2 Printing Bolt Info on a Sales Order
- After adding bolt info to a sales order, open the piece-level measure editor.
- Fill in the label info under advanced settings.
- Click the print button.


8 Reports
What it does: Multi-dimensional data analysis to monitor sales performance and outstanding accounts.
Click "Reports" in the left-hand menu to enter the report home page, where the various reports are grouped and displayed as cards. A few commonly used reports are introduced below; for the complete list, see Reports in Detail:
8.1 Sales Performance Report
Tracks each owner's sales performance, including:
- Contract amount
- Outstanding receivables
- Amount received
Click the "Sales Performance Report" title to enter the detail page and view more dimensions of data and time-range filtering.
8.2 Customer Statement
Tracks the transaction dealings of each customer, including:
- Customer name
- Transaction date
- Contract amount
- Cumulative outstanding
Useful for reconciling accounts with customers. Supports pinning frequently used customers (hover over a customer name and click the 📌 icon); pinned customers always sort to the top of the list.
8.3 Supplier Statement
Tracks the purchase dealings of each supplier, including:
- Supplier name
- Transaction date
- Contract amount
- Cumulative outstanding
Useful for reconciling accounts payable with suppliers. Likewise supports pinning frequently used suppliers.

For a detailed introduction to the reporting features, see Reports in Detail.
Inventory & Sales Workflow Overview
Purchase flow: Create purchase order → Confirm receipt (stock increases) → Payment
Purchase return: Create purchase return → Confirm return (stock decreases)
↓
Stock-in flow: Create stock-in document → Enter piece-level measures → Save (stock increases)
↓
┌──────────────────────────────────────────┐
│ Inventory pool │
│ Transfer: Warehouse A → B (total unchanged, location moves) │
│ Stocktake: verify physical → auto-adjust overage/shortage │
│ Inventory ledger: every change is traceable │
└──────────────────────────────────────────┘
↓
Sales flow: Create sales order → Report → Pick (enter piece-level measures) → Ship (stock decreases) → Receipt
Sales return: Create sales return → Confirm return (stock increases)
↓
Stock-out flow: Create stock-out document → Enter piece-level measures → Save (stock decreases)
↓
┌──────────────────────────────────────────┐
│ Funds (fund ledger / receipts / payments / other income/expense) │
│ Reports (performance/statements auto-summarized, pinning supported) │
└──────────────────────────────────────────┘Product settings
Inventory & Sales is built on the concept of spot stock. To make a fabric in the sample room usable in Inventory & Sales, set its attribute to "Product" on the sample editing page.
