Stock & materials
Stock and Materials use a movement ledger: balances change because of Stock in, Out, Return, Adjustment, Transfer, Purchase receipt, or a finalized Stock count. Vasco doesn't rely on quietly editing balance numbers, so the source of a change, the staff member, the project, the time, and the cost can all be traced.
The stock figure in Vasco is the result of all movements, not a field you can retype freely. If items increase, record Stock in; if they're used or borrowed, record Out; if they come back, settle the issue; if the physical balance differs, create an Adjustment or Stock count with a reason. This way you can explain to the client why a balance changed.
Before you start
Have this ready
- Set a standard unit per material—for example pcs, box, meter, liter, or kg—and don't change what a unit means once transactions are running.
- Set up the category, SKU/barcode, minimum stock, location/warehouse, unit price, and lot/serial tracking if you use it.
- Decide who can do stock in, out, adjustments, request approvals, transfers, and stock count finalization.
- Count the opening physical balance and set the transaction cut-off before entering opening stock.
Done when
- Every material has a unique identity and a consistent unit.
- A stock balance can be explained from its movement history, including items that are still in use or borrowed.
- Staff requests, transfers, purchase receipts, and stock counts change stock through the official flow.
- Mistakes are fixed with an adjustment/reversing transaction and a reason, not by deleting the trail.
Understand balance, available, and the movement ledger
| Term | Meaning | Example action that changes it |
|---|---|---|
| Recorded/on hand | The amount based on all official movements | Stock in, out, return, adjustment, receipt, transfer, stock count |
| Available | Stock that can be used after accounting for reservations | A new reservation or a released reservation |
| In use | Material issued that hasn't been closed/settled yet | Out to staff/project, then Return/Close |
| On order | The quantity on purchases still in progress | PO created, received, rejected, or canceled |
| Requested | Needs still in the request flow | Request created, approved, or rejected |
| Minimum stock | Warning/restock threshold | Set in the catalog; not an automatic order quantity |
| Stock value | Quantity × available unit cost | A missing price makes the valuation incomplete |
Don't fix stock by changing the number directly
Once a material is created, the current balance is shown as a read-only value. Use Adjustment with a reason when there's a difference. Deleting or rewriting history would break the audit, project costs, and material accountability.
Create and maintain the material catalog
- 1
Search before adding
Search by name, SKU, and barcode in a few variations. Check the category and unit so the same material isn't created twice.
Result: Duplicate catalog entries can be prevented. - 2
Choose Add material
Enter a specific Material name. The name is required; SKU and barcode should be unique if your organization uses them.
Result: The material's main identity is ready to be created.To cancel / undo: Choose Cancel or close the form before Save. No material or opening stock is recorded. - 3
Set the category and unit
Choose/enter a category, then a standard unit such as pcs, box, meter, liter, or kg. Use the smallest unit the warehouse actually records.
Result: All movements use a consistent meaning for quantity.If something goes wrong: Don't use “box” if field transactions are always counted per pcs without a conversion rule. Vasco can't guess unit conversions that haven't been defined. - 4
Enter opening stock only when creating
Enter the physical quantity at the cut-off. Vasco records it as an “Opening stock” movement instead of changing the balance without a trace.
Result: The opening balance has an auditable history.To cancel / undo: Before Save, change or clear the value. After it's saved, fix it with an Adjustment that has a reason—running stock isn't edited from the catalog form. - 5
Enter minimum, cost, and location
Set the Minimum stock, the unit cost in rupiah, and the storage location. Use the best cost you can justify, because it's used in estimating material value and cost.
Result: Stock warnings and cost calculations have a basis.If something goes wrong: An empty or zero unit cost can make stock value and project cost look lower than they really are. - 6
Enter SKU, barcode, and tracking if available
Use stable codes. For items that need lot or serial numbers, choose the correct tracking mode before large transactions begin.
Result: Searching, scanning, and receiving items become more accurate.If something goes wrong: Don't use the same serial for two units. For Stock in with serial tracking, the number of serials must equal the number of units. - 7
Save, then check the balance and history
Tap Save once, open the material details, and make sure the identity and the Opening stock movement match the physical count.
Result: The material is ready to be used by the warehouse, requests, projects, and purchasing.If something goes wrong: If Save might have been sent twice, search by SKU/barcode and compare the creation dates before adding again.
| Fields | Can it be changed after transactions? | Notes |
|---|---|---|
| Name/category/location | Yes, through Edit | Don't change the identity into a different item |
| Unit | Technically it may be available, but it's risky | Make sure it doesn't change the meaning of all the old history |
| Current stock | Not from catalog Edit | Use a movement or Adjustment |
| Minimum stock | Yes | Applies to the next restock suggestions |
| Unit cost | Yes | Out history can keep a snapshot of the cost at the time of the transaction |
| SKU/barcode | Yes, if unique | Check the scanner integration and import file |
Import the catalog via CSV
- 1
Download the Vasco template
Use the latest template and keep the column names. Fill in name, SKU/barcode, unit, category, minimum/target, lead time, cost, location, and opening stock as needed.
Result: The file follows a structure Vasco can preview. - 2
Make sure identities don't collide
Look for duplicate SKUs/barcodes and make sure numbers use a readable format. Remember that an import can update materials that match a unique identity, rather than always creating new rows.
Result: The risk of overwriting the wrong catalog entries is reduced. - 3
Choose the file and review the preview
Check the valid rows, warnings, units, costs, and whether each action will create or update a material.
Result: Errors can be fixed before the bulk change.To cancel / undo: Close the preview or choose Cancel before Import. No rows are applied. - 4
Run the import once
Confirm only after the preview is clean. Wait for the summary of successes and failures, then keep the source file as evidence of the cut-off.
Result: The catalog is updated in bulk according to the valid rows.If something goes wrong: Don't upload the same file again just because some rows failed. Fix the failed rows and re-import only the parts that are needed, after checking the first result.
Import is not an undo button
Once an import is applied, reversing it has to be done by editing the catalog and with Adjustment movements you can explain. Test a few rows first if the data is large or has never been imported before.
Record Stock in
- 1
Choose a material → Stock in
Make sure the item, unit, and receiving warehouse/location are correct. Don't use Stock in for PO receipts that already have a Receipt flow, unless the system gives instructions for a manual correction.
Result: The stock receipt form opens directly for the right material.To cancel / undo: Choose Cancel before Save. The balance doesn't change. - 2
Enter the quantity and reference
Enter a quantity greater than 0. Add the supplier, PO number/reference, lot/batch, expiry date, unit cost, and a note if available.
Result: The source of incoming goods can be traced.If something goes wrong: If the material uses serials, enter one serial per unit and make sure the number of serials equals the quantity received. - 3
Check the summary, then Save
Match the physical quantity, unit, warehouse, lot/serial, and reference. Tap Save once.
Result: An In movement is created and the balance goes up through the ledger.If something goes wrong: If the connection fails, reload the history before trying again. Using the same reference number helps detect double entries. - 4
Correct it if a receipt was wrong
Don't delete the in history. In the manager's phone app, History offers Reverse/Adjust to create an offsetting adjustment; on other screens use Adjustment Decrease with the original transaction's reference. If PO items are actually returned to the vendor, use Purchase return.
Result: The balance is correct again without breaking the audit.
PO receipts fill stock automatically
If a PO is linked to a material, use the Purchase receipt flow. When a receipt succeeds, Vasco adds stock for the quantity received, so there's no need for a second Stock in.
Record material Out, Return, or used up
- 1
Choose Out
Open the right material, then choose Out. Enter a quantity greater than 0 and make sure it doesn't exceed the available stock.
Result: The issue is ready to be linked to the responsible party.To cancel / undo: Choose Cancel before Save. No balance is reduced.If something goes wrong: Vasco refuses when stock isn't enough. Don't raise the balance with a made-up adjustment; check the physical items, unrecorded transactions, reservations, or the source warehouse. - 2
Link the staff member and project
Choose the recipient and project if the material will be accounted for to a specific person or job. Add a note on the area or purpose of use.
Result: Costs and items still in use can be traced to the operational context. - 3
Save and verify
Match the material, quantity, unit, staff member, project, and note, then Save once.
Result: An Out movement is created, stock goes down, and the issue appears in the In use list until it's closed.If something goes wrong: The out cost uses a snapshot of the unit cost at the time of the transaction when available. A missing price can make project costs incomplete. - 4
Open In use, then choose Return
When the work is done, choose the open issue. Check the quantity issued, the quantity returned before, and the outstanding remainder.
Result: The settlement form only accepts quantities up to the amount not yet closed.To cancel / undo: Choose Cancel before Save. The issue stays open and stock doesn't change. - 5
Enter the quantity returned
Enter the physical quantity that came back to the warehouse. The remainder of the issue is counted as used/consumed when the transaction is closed. Add a note on the condition or use.
Result: The returned quantity adds to stock; the issue is marked complete and net usage can be calculated.If something goes wrong: Enter 0 only if you really want to close the issue and treat the entire remainder as used. Once saved, there's no direct undo; if it's wrong, stock and cost records must be fixed through an official transaction.
| Example | Out | Returned | Counted as used |
|---|---|---|---|
| Project paint | 20 liters | 2 liters | 18 liters |
| Borrowed power drill | 1 unit | 1 unit | 0 units |
| Consumable screws | 100 pcs | 0 pcs, then close | 100 pcs |
| The material was partly returned earlier | 10 units | 3 already returned + 2 now | 5 units |
Return and Adjustment are different
Use Return to settle a specific issue so net usage stays tied to the staff member/project. Use Adjustment for balance differences that don't come from that return.
Fix differences with a Stock adjustment
- 1
Make sure the cause isn't an unrecorded transaction
Compare the physical items with the history of In, Out, Return, transfers, receipts, and recently approved requests.
Result: Adjustment is only used for real differences, not to cover transactions that were recorded late. - 2
Choose Adjustment → Add or Decrease
Choose the direction that matches the difference and enter a quantity greater than 0. A decrease can't exceed the recorded stock.
Result: Vasco shows the estimated balance after the adjustment.To cancel / undo: Choose Cancel before Save. The balance and history don't change. - 3
Write a reason that can be audited
Explain the cause, location, report number, or reference—for example “Shelf B count, 2 units damaged, BA-019”. Avoid a bare “adjust” reason with no context.
Result: The next reviewer understands why the adjustment was made. - 4
Save, then recount
Confirm the direction and quantity, Save once, then check the balance and the Adjust row in the history.
Result: The ledger gets a positive/negative adjustment movement.If something goes wrong: A wrong adjustment isn't deleted. Create an offsetting adjustment with the exact quantity and a reason that refers to the first adjustment, then document both.
Reverse one wrong movement from History
- 1
Open the material → History in the manager's phone app
Find the wrong movement by time, type, quantity, project/staff member, and note. Don't pick a row just because the amount looks similar.
Result: The source movement to be neutralized is identified. - 2
Choose Reverse/Adjust
Read the material name, quantity, and type in the dialog. Vasco doesn't delete the original row; the system re-reads the source data and then adds an Adjust movement with the opposite sign.
Result: The dialog explains that the balance will be restored to what it was before that movement.To cancel / undo: Choose Cancel/close the dialog. No adjustment movement is created and the balance doesn't change. - 3
Confirm only once
Tap Reverse movement once, wait for it to finish, then reload the history and look for the note “Adjustment: reversal of movement …”.
Result: The original row stays and a single offsetting Adjust neutralizes its effect on stock.If something goes wrong: Don't tap again after the adjustment succeeds. If the response isn't clear, reload and check the adjustment row first so the balance isn't corrected twice. - 4
Check the operational links after reversing
For Out/Return movements, also check the In use list, the settled status, the staff member/project, and the material cost. Reverse/Adjust neutralizes the balance effect, but the source row keeps its audit links.
Result: The balance, accountability, and cost aren't considered settled from a single stock figure.If something goes wrong: If an issue is wrongly left open/closed or the project cost doesn't match, don't create a directionless chain of adjustments. Use Return according to the physical situation or ask your admin or the Vasco team to reconcile the workflow.
Don't create an adjustment to force an approval
If a request fails because stock isn't enough, resolve the cause of the stock or make a purchase. An adjustment should only reflect items that physically exist or are actually missing.
Process staff material requests
- 1
Staff create a request
From Request material, staff choose the item, enter a quantity greater than 0, and add an optional note. The effective project is linked if available.
Result: The request has a Pending status; stock hasn't changed yet.To cancel / undo: Before Send, choose Cancel/X. Once sent, staff can't cancel it themselves; ask a manager to reject it if it's no longer needed. - 2
A manager checks the Requests queue
Check the requester, project, material, unit, quantity, note, available balance, and whether a similar request has already been processed.
Result: The decision is based on the need and the latest stock. - 3
Approve
Tap Approve once. Vasco claims the Pending request and creates an Out movement to the staff member/project in a single flow.
Result: The status becomes Approved and stock goes down if the quantity is available.If something goes wrong: If stock isn't enough or the request was already processed by another manager, the approval fails and doesn't duplicate the issue, and the request may return to or stay Pending. Reload before making a new decision. - 4
Reject
If the need is wrong, a duplicate, not approved, or no longer needed, choose Reject and confirm the target.
Result: The status becomes Rejected; stock doesn't change.To cancel / undo: Choose Cancel in the dialog to keep the request Pending. - 5
Settle the issue after use
An approved request produces an open issue. Use In use → Return to record the remainder returned and close out the usage.
Result: Stock comes back and the net usage cost can be calculated.If something goes wrong: An approval that has already issued stock isn't reversed by tapping Reject. Use Return/settle or an official adjustment that matches the physical situation.
Approvals are safe against simultaneous clicks
If two managers open the same request, the system only processes the Pending status that was successfully claimed. Still reload after a decision so the list shows the latest state.
Move stock between warehouses
- 1
Make sure two active warehouses are available
Open Stock transfer. Choose different source and destination warehouses. A warehouse that is going to be deactivated must first be free of stock, reservations, stock counts, and open transfers.
Result: The movement route is valid.To cancel / undo: Close the modal or choose Cancel; the transfer list is discarded and balances don't change. - 2
Search/scan items from the source warehouse
Use the barcode, SKU, or name. Add items to the list and enter a quantity greater than 0 up to the maximum available stock.
Result: One document can contain many kinds of items.If something goes wrong: Changing the source warehouse clears the selection list so stock from two warehouses doesn't get mixed. - 3
Add a delivery note
Record the vehicle, staff member, reason, delivery note number, or other reference that helps with handover.
Result: The movement has operational context. - 4
Confirm the whole list
Check the source, destination, quantity per item, and value, then choose Move once.
Result: All rows are moved atomically and the transfer document is recorded as complete.If something goes wrong: If one item doesn't have enough stock or one row fails validation, the whole transfer is canceled automatically—there are no half-finished balances. Reload the stock, fix the list, then create it again. - 5
Fix a wrong transfer
A completed transfer has no direct undo on screen. Once the physical items are confirmed, create a new transfer in the opposite direction with a note that refers to the original transfer number.
Result: The balance is restored through a new, auditable transfer trail.
Cancel is only available before the move
The Cancel button closes a form that hasn't been processed. After a transfer is complete, don't edit balances; use a reverse transfer with a reason and proof of handover.
Run a Stock count
- 1
Set the cut-off and start a session
Stop or coordinate physical movements during the count. Choose the warehouse, the scope (All or a specific category), add a note, then Start count.
Result: The session creates a list of all items in scope to be counted.To cancel / undo: Close the form before starting. Once a session is created, use Cancel session if the count won't continue; the counted results remain for audit but stock isn't adjusted. - 2
Enter the physical quantities
Enter 0 or higher for each item. Values are saved when you leave the field. Use search/the Not counted filter so no row is missed.
Result: The difference from system stock and the value of the difference are calculated immediately.If something goes wrong: Empty means not counted yet, while 0 means counted and the physical quantity is zero. Don't treat the two as the same. - 3
Use export/import for large counts
Export the Vasco sheet, fill in the physical_quantity column without changing material_id, then import it back. Preview/validation rejects negative numbers or invalid formats.
Result: Hundreds or thousands of rows can be updated in a batch.To cancel / undo: Before you choose a file, nothing changes. After an import, quantities can still be corrected as long as the Counting session hasn't been finalized. - 4
Complete all rows and check the differences
Finalization is refused if any items are still uncounted. Trace large differences, check the units, lot/serial, items on the wrong shelf, and movements that happened after the cut-off.
Result: The session is ready for the final check. - 5
Do the second count if requested
The policy may hold back risky differences. Enter the second count for all requested items; the first count is still saved for the audit.
Result: Large differences are verified before they affect stock.To cancel / undo: Choose Later to close the dialog without finalizing. The session stays open and stock is not changed yet. - 6
Finalize once
After all rows and second counts are done, choose Finalize. Vasco posts all differences as one atomic audit transaction.
Result: System stock adjusts to the approved stock count result.If something goes wrong: Finalizing has no direct undo. If the final result is wrong, do a new stock count or an official correction that references the session—don't delete audit movements.
Cancel the session before Finalize
Cancel session keeps the count results for audit but doesn't change stock. After Finalize, corrections must be a new transaction so the history of differences stays intact.
Use restock suggestions and read the material cost
Restock suggestions take into account available stock, minimum/target, reservations, quantity on POs, current requests, and available data. A suggestion is input for your decision—not an automatic order.
- 1
Open Reorder/Restock suggestions
Check items that are out of stock or below minimum, available stock, open POs, open requests, suggested quantity, estimate, and last supplier.
Result: Net needs are visible without counting the same PO twice. - 2
Choose the right materials
Review them one by one; clear the selection for any you don't need. Make sure the minimum, target, lead time, and price of each material are still current.
Result: Only approved needs are prepared for the purchasing flow.To cancel / undo: Clear the selection or leave the page before Create request/Create PO. No purchase transaction is created. - 3
Create a purchase request or PO
From bulk suggestions, create a Request so it goes into Approvals. From a specific material, Create PO can create an order with the status Pending approval, with the material and quantity linked.
Result: Needs enter the Purchasing flow; stock doesn't increase until the goods are received.If something goes wrong: Creating a PO is not the same as receiving goods. Don't record a manual Stock in if the PO receipt will also add stock later.
| Calculation | Basis | Limitation |
|---|---|---|
| Material used | Quantity out minus Returned | Open issues that aren't closed yet can still change |
| Project cost | Net usage × available cost/price snapshot | A missing price makes the cost partial |
| Purchase estimate | Suggested quantity × estimated price | Not the supplier's final price |
| Stock value | Balance × unit cost | Not a cash balance, and can change when costs are updated |
Archive materials you no longer use
- 1
Bring stock down to 0 properly
Settle sales/usage, transfers, returns, or corrections based on the physical condition. Don't make a fake zero correction just to be able to archive a material.
Result: The material balance is exactly 0, with a history you can explain. - 2
Close all open issues
Open In use and settle every loan/usage with the correct returned quantity.
Result: No material accountability is left hanging. - 3
Choose Archive and confirm
Make sure the name/SKU is correct. The material is hidden from the active catalog, while its movement history is kept.
Result: The material is no longer available for regular active transactions.To cancel / undo: Choose Cancel in the dialog. The material stays active.If something goes wrong: Archiving is refused if stock is not 0 or there are still open loans. In a bulk archive, rows that don't qualify are skipped—read the result summary. - 4
Handle a mistaken archive
Don't immediately create a new material with the same SKU. Note the name/SKU and contact the main admin/Vasco team to restore the catalog if the screen doesn't offer Restore.
Result: The old history stays on the same material and duplicates can be avoided.
Archiving is different from deleting
Archiving keeps the history and hides the material from active work. Use it only after stock is zero and all issues are closed; self-service restore may not be available on the screen.
Cancel and fix matrix for stock transactions
| Action | Before Save | After success |
|---|---|---|
| Add/Edit material | Cancel closes the form | Edit the details; fix the balance through Correction |
| Stock in | Cancel, balance unchanged | Phone: Cancel/Correct creates an opposite Adjust; or Correction Reduce/Purchase return where relevant |
| Out | Cancel, balance unchanged | Return for real goods; Cancel/Correct only for wrong movements, and check the In use workflow |
| Return/settle | Cancel, issue stays open | Cancel/Correct can neutralize stock; audit the settled status/cost and escalate if needed |
| Correction | Cancel, balance unchanged | Cancel/Correct or make one opposite correction with a reason |
| Pending request | Staff cancels before sending | Manager rejects; once Approved, use the Return flow |
| Transfers | Cancel closes the list | Make a return transfer after physical verification |
| Stock count | Cancel session; stock doesn't change | After Finalize, do a new stock count/correction |
| Archive material | Cancel at the confirmation | Ask for a restore; don't create a duplicate SKU |
Opposite transaction, not deletion
For an auditable stock system, both Cancel/Correct and a manual reversal add an opposite movement—the original row stays. Use it once, reload before retrying, and always check the staff/project workflow in addition to the balance figure.
Troubleshooting Stock and Materials
| Symptom | Common cause | Action |
|---|---|---|
| Balance differs from the physical count | A movement wasn't recorded, wrong warehouse/unit, or a real difference | Audit the history; add the missing transaction or use Correction/Stock count with a reason |
| Can't reduce stock | Quantity exceeds the balance/available | Check reservations, warehouse, unit, unprocessed receipts, and the physical count |
| Approval request failed | Not enough stock or already processed by another user | Reload the queue; add stock properly or reject the request |
| Stock increased twice | PO receipt and manual Stock in were both recorded | Verify the reference, then correct one transaction with a reason—don't delete the ledger |
| Project cost is zero/low | The unit price is empty or the material isn't linked to the project | Complete the catalog/source cost and check the project expenses |
| Can't archive | Balance isn't 0 yet or there are open loans | Settle the stock and the In use list first |
| Edit refused because the data changed | Another user updated the catalog after the form was opened | Reload, open Edit again, compare the latest values, then save |
| The whole transfer failed | One of the rows is invalid/insufficient | Reload the source, correct the list, then send again; there is no partial transfer |
| Stock count can't be finalized | There are items not yet counted or needing a second count | Filter Not counted yet and finish the recheck before finalizing |
| Serial number rejected | The number of serials doesn't match, a duplicate, or the wrong format | Enter one unique serial per unit and match the count |
Questions and answers
Why can't I edit the stock balance directly?
Because the balance must be explainable from movements. Use In, Out, Return, Correction, Transfer, Receipt, or Stock count so every change has a time, a person, and a reason.
What does the Cancel/Correct button do in History?
The button in the Manager phone app doesn't delete the original movement. Vasco adds an Adjust with the opposite value so the effect on stock is neutral. Use it once, and also check the In use list, settled status, and cost if the source is Out/Return.
What's the difference between Out and Correction Reduce?
Out records goods given to or used by staff or a project, and can be settled with Return. Correction Reduce fixes a balance difference such as damaged, lost, or count results—it must come with a reason.
What does a Return quantity of 0 mean?
The issue is closed with no goods returned; the whole remainder is counted as used. Cancel before Save if you're unsure, because there is no direct undo.
Can staff cancel a material request?
Staff can Cancel before sending. Once sent, there is no self-service cancellation; ask a Manager to reject it while the status is Pending.
Does approving a request reduce stock right away?
Yes. A successful approval creates an Out movement and reduces stock. If stock is insufficient or the request has already been processed, the system prevents a double issue.
How do I cancel a completed transfer?
There is no direct undo. After the physical goods are verified, make a new transfer from the destination warehouse back to the source and note the first transfer's number as a reference.
What's the difference between Cancel session and Finalize stock count?
Cancel session keeps the count results for audit but doesn't change stock. Finalize posts all differences atomically; corrections afterward must be a new transaction.
Why is the project material cost incomplete?
Cost depends on expenses linked to the project, the returned quantity, and the price/cost snapshot. A missing price or a transaction without a project makes the value partial.
Does Archive delete a material's history?
No. Archive hides the material from the active catalog and keeps the history. Stock must be 0 and there must be no open issues.
When should I use Purchase return, Return, or Correction?
Purchase return for goods received from a supplier and then sent back; Return to settle material that was previously issued Out to staff or a project; Correction for balance differences that don't come from those two flows.