Stock Movements
The Stock Movements module is the immutable audit ledger for ingredient inventory. It records every committed quantity change, including purchase receipts, order consumption and returns, physical-count variances, transfers, and approved manual loss or adjustment entries.
Every movement records the ingredient, branch, type, quantity, unit, cost snapshot, currency, source document, note, occurrence time, and commitment time. It is the authoritative explanation for the current stock shown on an ingredient.
Index Page
The Stock Movements Index Page provides a complete log of committed ingredient stock changes across branches. It helps track inflows, outflows, adjustments, losses, transfers, and the source record that created each movement.

Filters
- Branch → Filter by branch.
- Type → Filter by movement type.
- Ingredient → Filter by ingredient.
- From - To → Filter by date range.
Actions
- Create Stock Movement → Add a new stock movement manually.
- Row Actions
- View Stock Movement details
- Correct Stock Movement (when the user has the correction permission)
- Export → Export the filtered ledger when the user has export permission.
Posted movements cannot be edited or deleted. This protects the audit trail. Use Correct Movement to record an error and its replacement.
CRUD Attributes
| Attribute | Description | Requirement |
|---|---|---|
| Branch | The branch where the stock movement occurred | Required |
| Type | Manual type: Adjust Add, Adjust Subtract, Waste, Spoil, Sample, or Staff Meal | Required |
| Ingredient | The ingredient affected by the movement | Required |
| Quantity | Positive quantity in the ingredient’s stock unit | Required |
| Note | Explanation; required for Waste, Spoil, Sample, and Staff Meal | Conditional |
Movement Types
| Type | Stock effect | Typical source |
|---|---|---|
| In | Increases | Purchase receipt or system-created incoming stock |
| Out | Decreases | Product usage or kitchen production |
| Adjust Add | Increases | Manual correction or positive count variance |
| Adjust Subtract | Decreases | Manual correction or negative count variance |
| Spoil | Decreases | Expired or damaged stock |
| Waste | Decreases | Preparation or handling loss |
| Sample | Decreases | Tasting or sampling |
| Staff Meal | Decreases | Employee consumption |
| Transfer Out | Decreases | Stock dispatched to another branch |
| Transfer In | Increases | Stock received from another branch |
| Return Supplier | Decreases | Stock returned to a supplier |
Create Page
The Create Stock Movement Page is used to manually record new stock movements.

- Branch Selector → Choose the branch where the movement occurs. Branch-assigned users are restricted to their branch.
- Type Dropdown → Select Adjust Add, Adjust Subtract, Waste, Spoil, Sample, or Staff Meal. Incoming, outgoing, transfer, and supplier-return movements are created by their respective workflows.
- Ingredient Selector → Pick the ingredient impacted.
- Quantity Field → Enter a positive quantity in the ingredient’s stock unit.
- Note → Explain the entry. It is required for Waste, Spoil, Sample, and Staff Meal.
The system assigns the audit source, cost snapshot, currency details, and commitment record automatically. It also prevents an entry that would take stock below the branch’s permitted minimum.
Correct a Movement
If a committed movement has the wrong quantity, open it and select Correct Movement. Enter the replacement quantity and a required reason.
- The original movement remains unchanged.
- The system creates an immutable reversal for the original quantity.
- The system creates a replacement movement using the new quantity.
- The movement detail page links the original, reversal, and replacement records.
For an incorrect purchase receipt, transfer receipt, or count, follow the correction workflow appropriate to that source document rather than creating an unrelated manual movement.
