Skip to content

Permissions

Batch Update is a view-anything, change-only-what-you’re-allowed screen. Every field maps to a permission key, and warehouse assignment limits which rows you can touch at all.

Permission keys

Permission keyGrants
inventory.viewSee the Batch Update screen
inventory.update.batchEdit the batch number
inventory.update.expiryEdit the expiry date
inventory.update.selling_priceEdit the selling price (and use it in bulk update)
inventory.update.purchase_priceEdit the purchase price (and use it in bulk update)
inventory.adjust.increaseIncrease stock, and add adjustment stock
inventory.adjust.decreaseDecrease stock
warehouse.manageLegacy catch-all — grants all of the above

Tenant owners have every permission implicitly.

How gating shows up

  • Fields you can’t change are shown but disabled — you can read the current value but not edit it.
  • The Increase / Decrease segments appear only if you hold that adjustment permission.
  • The Update prices bulk control appears only if you can change selling or purchase price.
  • Add Stock appears only if you can create inventory (via inventory.adjust.increase).
  • With no editable permission at all, the header shows a View only badge and every row’s action is a lock.

Warehouse scoping

Beyond field permissions, you can only edit rows in warehouses you’re assigned to:

  • If your account has no warehouse restrictions, you can edit every warehouse.
  • If it’s restricted, rows outside your warehouses show a lock instead of Edit, and bulk actions skip them (the toast reports how many were skipped).

Auditing

Quantity adjustments are written through the adjust_inventory_quantity routine with a reason string, so increases and decreases are traceable. Price and reference-data edits update the inventory record’s updated_at.