Purchase

Search Purchases by Number, Supplier, Phone and Bill Date

The expanded Filter strip narrows received-purchase records by identity and bill date. Its scope is different from the Status and Expected quick filters and from purchase orders.

Menu path
Purchase -> Purchases -> Filter
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence

frontend/static/script/js/modules/js/receiving_add.js mountPurchaseFilters loadList, frontend/static/script/js/core/list-filter.js PRESETS legacyFilters MIN_SEARCH DEBOUNCE_MS, receivings date supplier_name supplier_phone receiving_id filters, purchaseOrders loaded separately without legacyFilters

Open the purchase Filter stripThe expanded strip provides text, field, Exact and Bill date controls in one row.
Set a custom bill-date rangeCustom range reveals From and To date-time fields and prevents an inverted range.
Verify the matching documentOpen the result and verify supplier, line items, status and total before taking an action.

Open and Use the Filter Strip

  1. Open Purchase -> Purchases and click Filter.
  2. Type a purchase number, supplier name or supplier phone in Search.
  3. Choose All fields, Purchase no, Supplier or Phone from the field selector.
  4. Turn on Exact only when the whole selected field must match.
  5. Choose All time or a Bill date preset; use Custom range for precise From and To times.
  6. Pause after typing so the list can refresh.
  7. Review the Filter button count and the result count.
  8. Open the matching document and verify it before receiving, printing, emailing, returning or voiding.

Choose the Correct Search Field

FieldSearchesBest use
All fieldsPurchase number, supplier name and supplier phone together.Use when you know the value but not which field stores it.
Purchase noThe received-purchase identifier such as R-DEMO-000005.Fast document lookup from an invoice or internal reference.
SupplierSupplier name on received purchases.Reviewing purchases from one vendor.
PhoneSupplier phone stored on received purchases.Finding a vendor when the name is uncertain.
Supplier suggestionCached recent and known supplier choices.Selecting a known supplier without spelling variation; selection enables exact matching.

Contains Search Versus Exact

Normal search is case-insensitive and requires every typed word to be present, in any order. Exact anchors the whole selected value instead of matching a fragment.

Search setupBehaviorExample use
All fields, Exact offEvery typed token must appear somewhere in the same searchable field, regardless of word order.blue traders can match Traders Blue.
Supplier, Exact offSupplier name contains all typed tokens.metro can match Metro Supply Co.
Supplier, Exact onWhole supplier name must match, ignoring letter case.Metro Supply Co avoids other Metro-named suppliers.
Purchase no, Exact onWhole purchase identifier must match.Use for a copied receiving number.
Phone, Exact onWhole stored phone value must match.Use only when formatting and country code are known.

Search Timing and Minimum Length

  • An ordinary fragment search starts at two non-space characters.
  • One ordinary character remains visible in the box but does not reload the list.
  • Exact search and a picked supplier can apply even to a one-character value.
  • Typing waits about 350 milliseconds after the last keystroke before reloading.
  • Clearing the search always reloads the unsearched list.
  • Changing the field or Exact setting reloads only when a usable search term exists.

Bill Date Presets

Bill date ranges are created in the browser’s local timezone and sent as exact start and end instants. This keeps the working day aligned with the till that applies the filter.

PresetFromTo
All timeNo lower boundary.No upper boundary.
TodayLocal midnight today.Local 23:59:59.999 today.
YesterdayLocal midnight yesterday.End of yesterday.
This weekLocal midnight Monday.End of today.
This monthLocal midnight on the first day of this month.End of today.
This yearLocal midnight on January 1.End of today.
Last 7 daysLocal midnight six days ago.End of today, seven calendar days inclusive.
Last 30 daysLocal midnight 29 days ago.End of today, thirty calendar days inclusive.
Custom rangeOperator-selected local date and time.Operator-selected local date and time; the controls prevent To before From.

Important Purchase-Order Boundary

The text and Bill date filter is sent to the received-purchases endpoint. Purchase orders are fetched separately without those same filter parameters, then both sources are merged into one list.

  • A purchase-order row can remain visible even when it does not match the received-purchase search.
  • Search results should not be treated as proof that no purchase order exists.
  • Use the row number and Status to distinguish order work from received purchases.
  • The current CSV export stores the loaded merged rows before Status and Expected quick filtering.
  • Use Purchase Reports or archive history for a complete controlled-period review.

Clear Filters Reliably

  1. Click Filter so the current controls are visible.
  2. Check the number badge on the Filter button; field choice and Exact do not count without a search term.
  3. Click Clear to reset Search, field, Exact and Bill date to their defaults.
  4. Set Status to All and Expected to Any separately because those quick filters are outside this strip.
  5. Choose Default under Sort when row ordering is also causing confusion.
  6. Wait for the list and count to reload before concluding that a purchase is missing.

Filter Problems and Corrections

ProblemLikely reasonCorrection
One typed character does nothingOrdinary fragment search requires two characters.Type a second character or use Exact for a genuine whole one-character value.
Too many suppliers matchAll fields or fragment matching is active.Choose Supplier and enable Exact, preferably from a suggestion.
Phone search misses the supplierStored phone formatting differs.Try a stable fragment with Exact off, then verify the supplier profile.
This week misses Sunday expected by staffBusiness-week preset starts Monday.Use Custom range when the shop uses a different weekly boundary.
Purchase order remains after filteringPurchase orders are loaded separately from received-purchase filters.Identify it by number, kind and status; use the appropriate order workflow.
No purchases matchA hidden Status or Expected quick filter may still be active.Set Status All, Expected Any, click Clear and reload.
Custom range cannot be invertedThe From and To controls enforce valid minimum and maximum values.Move the opposite endpoint first, then set the intended range.
CSV contains rows not visible after filteringExport scope differs from visible quick-filter scope.Use the dedicated CSV guide and reconcile the downloaded rows.