Inventory Purchase Report
The Inventory Purchase Report shows all purchase-type stock transactions filtered by date, vendor, and location. It includes transactions with type "Purchase" or "PurchaseOrder" only. This differs from the Transaction History (Article 75) which covers all transaction types including adjustments, transfers, and sales.
Accessing the Report
Navigate to Reports > Inventory Purchase Report from the main menu. Location data is filtered by the current user's location access -- only locations where the user has view_transactions = 'y' in user_location_access are included.
Date Range Presets
The report includes 12 preset date ranges to quickly set the reporting period. The default selection is index 7 (Last Month).
| Index | Preset | Description |
|---|---|---|
| 0 | Today | Current date only |
| 1 | Yesterday | Previous day only |
| 2 | This Week | Current week starting from Monday |
| 3 | Last Week | Previous full week Monday through Sunday |
| 4 | Last Two Weeks | Previous 14-day period |
| 5 | This Month | Current month from the 1st to today |
| 6 | This Year | Current year from January 1st to today |
| 7 | Last Month (default) | Previous full calendar month |
| 8 | Last 3 Months | Previous 3 calendar months |
| 9 | Last 6 Months | Previous 6 calendar months |
| 10 | Last Year | Previous full calendar year |
| 11 | All Dates | No date restriction -- disables the date pickers |
When "All Dates" is selected, both date picker controls are disabled. For all other presets, the date pickers are populated with the calculated start and end dates. You can fine-tune the date range manually after selecting a preset by adjusting the date pickers.
Filters
The report provides the following filter controls:
| Filter | Description |
|---|---|
| Vendor | Dropdown showing All Vendors/Suppliers or a specific vendor. Vendors are loaded from the vendors table in alphabetical order. |
| Location | Dropdown showing All Locations or a specific location based on user access. |
| Report Mode | Radio buttons to switch between Summary and Detailed views. |
| Refresh | Reloads the report with current filter selections. |
Detailed Report Mode
The Detailed mode displays one row per purchase transaction line item with 15 columns.
Grid Columns
| Column | Description |
|---|---|
| ID | The unique identifier for the stock record |
| Inventory ID | The item identifier |
| Vendor ID | The vendor identifier |
| Transaction ID | The transaction identifier linking related line items |
| Reference | External reference number (e.g., PO number, invoice number) |
| Vendor Name | Name of the vendor or supplier |
| Item Name | Name of the inventory item |
| Quantity | Number of units purchased |
| Unit Price | Cost per unit on the purchase |
| Total Price | Calculated as quantity multiplied by unit price |
| Transaction Date | Date of the transaction in MMMM dd, yyyy format (e.g., February 14, 2026) |
| Location ID | The location identifier where stock was received |
| User ID | The identifier of the user who entered the transaction |
| Entered By | Full name of the user who entered the transaction |
| Transaction DateTime | Full timestamp in MM/dd/yyyy HH:mm:ss format |
Any NULL or zero values in the grid display as "NA" for clarity.
Totals Rows
A bold totals row is added at both the top and bottom of the grid. Each totals row shows:
- Total Quantity -- Sum of all quantity values in the report
- Total Price -- Sum of all total price values in the report
Having totals at both ends makes it easy to see the summary without scrolling when the report contains many rows.
Summary Report Mode
Switching to Summary mode runs a SUM aggregate query instead of returning individual rows. The result is a single totals row displaying:
- Total Quantity -- Sum of all purchased quantities in the filtered period
- Total Price -- Sum of all purchase costs in the filtered period
Summary mode is useful for a quick answer to "how much did we spend on purchases this month" without the line-item detail.
Multi-Location Handling
The report handles location filtering as follows:
- All Locations selected: The query uses an IN clause containing all location IDs that the user has access to. This ensures the user only sees purchase data for locations they are authorized to view.
- Specific location selected: The query filters to that single location ID.
This means the "All Locations" option respects per-user location access and never shows data from locations the user is not authorized to view.
Printing
The report prints in portrait orientation on 8.5 x 11 inch paper. The printed header includes:
- Form Title -- "Inventory Purchase Report"
- Report Type -- Summary or Detailed
- Locations -- The selected location name or "All Locations"
- Date Generated -- The current date and time when the printout was created
- Report Date Range -- The start and end dates of the report period
When to Use This Report
- Monthly Purchasing Review -- Use the Last Month preset to review all purchases made during the previous month
- Vendor Spend Analysis -- Filter by a specific vendor to see total purchases from that supplier over a given period
- Receiving Verification -- Compare the purchase report against supplier invoices to verify that received quantities and costs match
- Budget Tracking -- Use summary mode with date range presets to monitor purchasing spend against budget targets
Related Articles
- Stock Transaction History (Article 75) -- Shows all transaction types, not just purchases. Use when you need a complete picture of all stock movements.
- Purchase Orders (Article 76) -- Covers the purchase order workflow. Use the Purchase Report to verify which POs have been received and at what cost.