🧾

Sale Invoice

Create and manage sale invoices for customers. Select products by batch, apply discounts, taxes (GST/WHT), and print the invoice. Supports hold, delete, and batch-level pricing.
How to Open
Menu → Transaction → Sale Invoice
Keyboard Shortcuts
F2 Product Search   F3 Find Product   F4 WHT (this invoice)   F6 Hold   F7 Outstanding   F8 Print   F9 Heading/Warranty   + Add Line   F12 Save   Esc Close
📝

How to Use

➕ Adding a New Invoice

  1. Open Sale Invoice from the menu
  2. Fill in the required fields
  3. Add optional details as needed
  4. Press F12 or click Save
  5. Confirm when prompted

✏️ Editing an Existing Invoice

  1. Type the name in the Search box on the left
  2. Select the record from the search results grid
  3. The form fields will load with the selected data
  4. Modify the fields you need to change
  5. Press F12 or click Save
📋

Field Descriptions

Customer Required

Type or search for the customer name. The customer balance and license number will auto-populate.

Invoice # Optional

Auto-generated invoice number. For editing, enter an existing invoice number to load it.

Booking Man Required

Select the salesman / booking man responsible for this invoice. Type to search and pick from the list; leave empty for all.

License # Optional

Drug license number of the customer. Auto-populated from customer record.

License Expiry Optional

Expiry date of the drug license. Displayed for reference.

Balance Optional

Current outstanding balance of the selected customer.

Company Required

Select the product company to filter available products.

Product (F3) Required

Search and select a product. Press F3 to open the product search popup.

Stock Optional

Current available stock for the selected product/batch. Read-only.

T.P (Trade Price) Optional

Trade price of the selected batch. Auto-populated from stock.

P.P (Purchase Price) Optional

Purchase price for reference. Read-only.

R.P (Retail Price) Optional

Retail price for reference. Read-only.

Qty Required

Quantity to sell. Must not exceed available stock unless overridden.

Bonus Optional

Free bonus units included with the line item.

Rate Optional

Selling rate per unit. Defaults to trade price but can be overridden.

%Age Optional

Discount percentage for this line item.

Disc (Rs) Optional

Discount amount in rupees (calculated from %Age or entered directly).

Receivable Optional

The net receivable amount after discount. Auto-calculated.

Approval # Optional

Approval number for controlled/restricted products.

Batch / Expiry Optional

Batch number and expiry date of the selected stock lot.

WHT (Withholding Tax) Checkbox

Whether withholding tax is charged on this invoice. It starts from the customer — on for everyone except a customer marked WHT Exempt, at that customer’s own rate. How you change it decides how long the change lasts. F4 changes it for this invoice only: save it, or pick a different customer, and the box goes back to following the customer. Clicking the box itself holds the change for every invoice on this screen until you click it back on or close the screen — the system tells you which of the two you have just done. The rate always matches the box: ticked charges the customer’s rate, cleared charges nothing.

Printing On Checkbox

Print the invoice automatically after saving. Printing runs in the background — the screen stays responsive and you can start the next invoice while the previous one spools.

Heading On Checkbox

Include company heading on the printed invoice.

Warranty On Checkbox

Include warranty details on the printed invoice.

Bank Optional

Select bank for bank-based payment collection. Type part of the bank name or account number to search, then pick from the list.

Template Optional

Select the print template for the invoice layout.

The template is filled in automatically from the rules on Settings → Print Rules, based on the customer's licence status and the company type (Promotion or Trading) of the products on the invoice. An invoice with no lines yet, or one mixing both company types, uses the rules whose Company Type is (ANY).

Note: adding or removing a product can change the invoice's company type, and when it does the template, heading and warranty are re-read from the winning rule — replacing a template you picked by hand. Choose the template last, once the lines are complete.

📊

Grid Columns

ColumnTypeRequiredDescription
ProductText✅Product name in the invoice line.
QTYNumber✅Quantity sold.
BNSNumberBonus units given free.
TPNumberTrade price per unit.
RATENumberSelling rate per unit.
GROSSNumberGross amount (Qty × Rate).
%AGENumberDiscount percentage applied.
DISCNumberDiscount amount in rupees.
GST%NumberGST rate applied to this line.
GSTNumberGST amount calculated.
WHT%NumberWithholding tax rate.
WHTNumberWithholding tax amount.
NETNumberNet amount after all adjustments.
BATCHTextBatch number of the stock lot.
EXPIRYDateExpiry date of the batch.
APPROVALTextApproval number for restricted items.
🔘

Buttons

ButtonShortcutWhat it Does
🔍 SearchF2Opens the search panel to find an existing record by name.
💾 SaveF12Saves all changes. The system will ask for confirmation before saving.
💰 OutstandingF7Opens the Outstanding popup for the selected customer, over the invoice you are building. Read-only — nothing on the invoice is changed.
❌ CloseEscCloses the Sale Invoice screen.
💡

Important Notes

⚠️
Short Expiry: When the batch a line will go out from expires within 6 months (or has already expired), pressing Add asks whether to add it anyway, naming the product, batch and expiry date. No is the default: the line is not added and the entry keeps its values so you can change it. Re-adding a line already on the same batch does not ask again.
⚠️
Credit Limit: A customer can carry a Credit Limit, set on Customer Setup. Where one is set, the invoice is refused at save if it would take the customer’s Balance above it, and the message names the limit, the balance, this document’s amount and the room left. Cash taken at the counter comes off first, so an invoice paid in full is never refused however large it is. No permission lifts this — not even ADMINISTRATOR. Receive money against the customer’s bills, or raise the limit, and the save goes through. A customer left at 0 is unrestricted and behaves exactly as before.
⚠️
Minimum Sale Rate: A product can carry a Minimum Rate, set on Product Setup. Where it is set, a line priced below it is refused and the message names the product and the figure. It applies to the rate you end up with, so entering a discount percentage that takes the rate under the floor is refused just as typing the rate directly is. No permission lifts this — unlike the trade price rule, there is no right that lets anyone past it. A product left at 0 is unrestricted and behaves exactly as before.
💡
Hold Feature: Click Hold to save an in-progress invoice without posting it. Resume later by entering the invoice number.
⚠️
Stock Check: The system prevents selling more than available stock. If stock is insufficient, a warning is shown.
ℹ️
Cash Taken at the Counter: Where the customer pays as the invoice is raised, that cash is recorded as a receipt in its own right, with its own number from the counter-sale series. It shows on the Bank Ledger as a Counter Sale carrying that number, and it can be withdrawn on Cancel Receipt like any other receipt if it was taken in error.
ℹ️
Keyboard Shortcut: Press F3 to quickly search and select a product from the product popup.
ℹ️
How FBR Receives the Invoice: Saving an invoice does not send it to FBR. Invoices are sent from Reprint → FBR Sync, which shows what FBR holds for a range of invoices and can send only the lines you choose. The invoice is sent to FBR grouped by HS Code, not line by line. Every product sharing an HS code is reported as one item, with its quantity, value, sales tax, further tax and discount added together. The description, tax rate, unit and SRO details on that item are taken from the first line carrying the HS code, so an HS code sold at two different tax rates reports the first rate against the combined tax. Products with no HS code are reported one line each. Cancelled and fully returned lines are not sent.
ℹ️
Outstanding (F7): Press F7 to see what the selected customer already owes, without leaving the invoice. The popup carries three tabs. Customer lists every outstanding bill. Company narrows that to the company chosen in the header. Product narrows it to the product highlighted in the product list. Each tab shows the invoice number, date, net, received, outstanding and how many days old the bill is, oldest first, and totals only itself. The three tabs are separate views, not a breakdown of one another — the Customer tab reads the invoice header while the other two read the invoice lines, so their totals are not meant to add up, and a customer whose balance is a credit at header level can show bills on the Customer tab and none on the other two. Scope is fixed when you press F7: change the company or the highlighted product and press F7 again to see the new figures. The popup opens on the Customer tab with the tabs focused: Tab or the ← / → arrows move between them, Enter or ↓ drops into the bill list, Shift+Tab comes back out, and Esc closes. No mouse needed.