User guide

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.

± 31 minAdmin web · Admin phone app · Staff phone appWarehouse manager · Operations manager · Procurement · Project manager · Foreman · Staff
Short answer for clients

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.

00

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.
01

Understand balance, available, and the movement ledger

TermMeaningExample action that changes it
Recorded/on handThe amount based on all official movementsStock in, out, return, adjustment, receipt, transfer, stock count
AvailableStock that can be used after accounting for reservationsA new reservation or a released reservation
In useMaterial issued that hasn't been closed/settled yetOut to staff/project, then Return/Close
On orderThe quantity on purchases still in progressPO created, received, rejected, or canceled
RequestedNeeds still in the request flowRequest created, approved, or rejected
Minimum stockWarning/restock thresholdSet in the catalog; not an automatic order quantity
Stock valueQuantity × available unit costA 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.

02

Create and maintain the material catalog

  1. 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. 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. 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. 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. 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. 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. 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.
FieldsCan it be changed after transactions?Notes
Name/category/locationYes, through EditDon't change the identity into a different item
UnitTechnically it may be available, but it's riskyMake sure it doesn't change the meaning of all the old history
Current stockNot from catalog EditUse a movement or Adjustment
Minimum stockYesApplies to the next restock suggestions
Unit costYesOut history can keep a snapshot of the cost at the time of the transaction
SKU/barcodeYes, if uniqueCheck the scanner integration and import file
03

Import the catalog via CSV

  1. 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. 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. 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. 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.

04

Record Stock in

  1. 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. 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. 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. 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.

05

Record material Out, Return, or used up

  1. 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. 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. 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. 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. 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.
ExampleOutReturnedCounted as used
Project paint20 liters2 liters18 liters
Borrowed power drill1 unit1 unit0 units
Consumable screws100 pcs0 pcs, then close100 pcs
The material was partly returned earlier10 units3 already returned + 2 now5 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.

06

Fix differences with a Stock adjustment

  1. 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. 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. 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. 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. 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. 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. 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. 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.

07

Process staff material requests

  1. 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. 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. 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. 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. 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.

08

Move stock between warehouses

  1. 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. 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. 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. 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. 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.

09

Run a Stock count

  1. 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. 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. 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. 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. 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. 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.

10

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. 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. 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. 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.
CalculationBasisLimitation
Material usedQuantity out minus ReturnedOpen issues that aren't closed yet can still change
Project costNet usage × available cost/price snapshotA missing price makes the cost partial
Purchase estimateSuggested quantity × estimated priceNot the supplier's final price
Stock valueBalance × unit costNot a cash balance, and can change when costs are updated
11

Archive materials you no longer use

  1. 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. 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. 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. 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.

12

Cancel and fix matrix for stock transactions

ActionBefore SaveAfter success
Add/Edit materialCancel closes the formEdit the details; fix the balance through Correction
Stock inCancel, balance unchangedPhone: Cancel/Correct creates an opposite Adjust; or Correction Reduce/Purchase return where relevant
OutCancel, balance unchangedReturn for real goods; Cancel/Correct only for wrong movements, and check the In use workflow
Return/settleCancel, issue stays openCancel/Correct can neutralize stock; audit the settled status/cost and escalate if needed
CorrectionCancel, balance unchangedCancel/Correct or make one opposite correction with a reason
Pending requestStaff cancels before sendingManager rejects; once Approved, use the Return flow
TransfersCancel closes the listMake a return transfer after physical verification
Stock countCancel session; stock doesn't changeAfter Finalize, do a new stock count/correction
Archive materialCancel at the confirmationAsk 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.

13

Troubleshooting Stock and Materials

SymptomCommon causeAction
Balance differs from the physical countA movement wasn't recorded, wrong warehouse/unit, or a real differenceAudit the history; add the missing transaction or use Correction/Stock count with a reason
Can't reduce stockQuantity exceeds the balance/availableCheck reservations, warehouse, unit, unprocessed receipts, and the physical count
Approval request failedNot enough stock or already processed by another userReload the queue; add stock properly or reject the request
Stock increased twicePO receipt and manual Stock in were both recordedVerify the reference, then correct one transaction with a reason—don't delete the ledger
Project cost is zero/lowThe unit price is empty or the material isn't linked to the projectComplete the catalog/source cost and check the project expenses
Can't archiveBalance isn't 0 yet or there are open loansSettle the stock and the In use list first
Edit refused because the data changedAnother user updated the catalog after the form was openedReload, open Edit again, compare the latest values, then save
The whole transfer failedOne of the rows is invalid/insufficientReload the source, correct the list, then send again; there is no partial transfer
Stock count can't be finalizedThere are items not yet counted or needing a second countFilter Not counted yet and finish the recheck before finalizing
Serial number rejectedThe number of serials doesn't match, a duplicate, or the wrong formatEnter 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.

Last updated 2 September 2026Check your company's policies before taking any financial or irreversible action.
WhatsApp us