The home of record for what each column and field means on the Batch Update screen.
Table columns
| Column | Meaning |
|---|
| (checkbox) | Selects the row for bulk price update or CSV export. The header checkbox selects every row on the page. |
| Product | Product name, with SKU below it. |
| Location | The store and warehouse holding this record (Store · Warehouse). |
| Batch | The batch number (monospace), or an Aggregated pill when the warehouse doesn’t track batches. |
| Expiry | Expiry date (DD Mon YYYY), with a Soon or Expired badge when applicable; — on aggregated rows. |
| Selling | Selling price, in PKR. |
| Purchase | Purchase (cost) price, in PKR, shown muted. |
| Available | On-hand quantity (quantity_in − quantity_out), coloured and tagged Low or Out of stock at threshold. |
| Updated | How long ago the record last changed (relative time). |
| (actions) | Edit opens the drawer; a lock shows instead when the row is outside your warehouses. |
Edit drawer fields
| Field | Notes |
|---|
| Batch number | Free text; shown only when the warehouse tracks batches. Needs the update batch permission. |
| Expiry date | Date picker; shown only when the warehouse tracks batches. Needs the update expiry permission. |
| Selling price | PKR, two decimals. Needs the update selling price permission. |
| Purchase price | PKR, two decimals. Needs the update purchase price permission. |
| Adjust stock | Segmented No change / Increase / Decrease, a quantity stepper, and a current → new preview. Needs the matching increase / decrease permission. |
Add Stock drawer fields
| Field | Notes |
|---|
| Warehouse | Required first — the product search is disabled until one is chosen. |
| Product | Searchable product picker (minimum two characters). |
| Qty In | Whole units to add. Press Enter to add the product to the pending list. |
| Batch | Prefills to ADJ when the warehouse tracks batches; editable. |
| Expiry | Prefills to two years out; editable. |
| Selling / Purchase price | Prefill from the selected product; editable. |
| Pending inserts | The staged rows; created together when you click Create N records. |
Data notes
- Available is derived, not stored: it is
quantity_in − quantity_out for the record (summed across batches on an aggregated row).
- New rows created via Add Stock carry no GRN link (
grn_id is null) — they are adjustments, not receipts.
- Prices are formatted with
Intl.NumberFormat('en-PK') and shown with an Rs prefix.