Used material, verified quantity
Inventory and supplies for aesthetic clinics
Bia records supplies with a unit, current quantity and minimum, links each service recipe to its materials and consumes the exact quantity when a confirmed appointment is completed. When stock falls below the minimum, the shopping list shows what is missing.
Supply inventory is different from products sold through the point of sale. The clinic records materials used in procedures, defines each service recipe and follows replenishment from those records. The server prevents a negative balance and leaves the purchasing decision with the team.
- Service recipes link supplies to a procedure
- Atomic consumption when an appointment completes
- Shopping list with a calculated shortage
- Milliunit precision without negative stock
The record shows each supply's balance, unit and minimum
Every supply has a name, unit, available quantity and minimum. The screen marks items below their minimum and lets the team edit the record on the server. A supply can be deactivated only when no service recipe still uses it.
The API validates names, units and quantities, checks the supply capability and records create or update actions in the audit trail. Every query is scoped by the clinic tenant.
- Current balance and minimum
- Low-stock warning
- Audited create and update
A service recipe links each supply to the procedure
For every active service, the clinic selects the materials in its recipe and enters how many milliunits are used. The editor can review, change or remove items; a supply cannot appear twice in one recipe.
The relationship has its own table. The API confirms that the service and every supply belong to the clinic, accepts active supplies only and audits the complete replacement.
- One recipe per service
- Exact quantity per material
- Duplicate or inactive items rejected
Completing an appointment consumes the recipe once
When a confirmed appointment has started, completion loads and locks its recipe and checks every quantity before updating stock. If any material is missing, the API returns a conflict and does not complete the appointment with an invented balance.
Consumption and completion share one transaction. A service lock and conditional update stop concurrent completions from consuming the same material twice. A repeat request returns the already completed appointment without another deduction.
- Only a confirmed, started appointment
- Insufficient stock stops the flow
- Event and audit record the consumption
The shopping list calculates the replenishment needed
The shopping tab collects active supplies below their minimum and shows the current balance plus the difference needed to reach that minimum. The difference comes from real stock and changes when the team edits a record or completes a procedure.
It is an operational aid for the owner to decide what to buy. Bia does not choose a supplier, create a purchase order or send a payment; when stock reaches the minimum, the warning is resolved.
- Need equals minimum minus balance
- Deduplicated low-stock warnings
- No automatic order or payment
Fractional units stay exact on the server
The interface accepts up to three decimal places and converts input to integer milliunits. The server uses that representation to compare, consume and display millilitres, grams or another chosen unit without floating-point drift.
Negative quantities, zero recipe amounts and values outside the contract are rejected before the transaction. The owner still sees the chosen unit while the calculation stays integral.
- Up to three input decimals
- Integer milliunit calculation
- Validation before the transaction
Permissions and limits keep the promise honest
Reading and managing supplies passes through API permissions and tenant isolation. Every route checks the session, role and capability before reading or changing inventory or recipes.
This module organizes material used by services. It is not a purchasing ERP, does not manage suppliers or lots and does not replace a physical count; the team still decides replenishment.
- Clinic-scoped data
- Server-enforced permission
- Purchasing and physical count stay human
What supply inventory solves — and what stays separate
Bia turns service consumption into a balance and replenishment need, but it does not turn a list into a confirmed purchase.
- Supply inventory covers materials linked to services; products sold at the POS have their own catalog stock.
- A recipe records consumption per service but does not automatically calculate procedure cost or margin.
- A deduction happens only on a valid completion and fails when the balance is insufficient.
- The list calculates the difference to minimum; it does not choose a supplier, order or pay.
- Quantity, unit and minimum are clinic settings; the team remains responsible for the physical count.
Frequently asked questions
How supply inventory works in the daily routine
What is the difference between a product and a supply?
A product is a catalog item sold at the POS. A supply is material linked to a service recipe and consumed when the appointment is completed.
How do I link material to a procedure?
Create the supply, open the active service recipe and enter the quantity in milliunits. The API checks clinic ownership and rejects duplicates.
What happens when there is not enough material?
Completion returns an insufficient-stock conflict before confirming the appointment. No partial deduction is made.
Does the shopping list place the order?
No. It shows supplies below minimum and the difference needed; supplier, order and payment stay outside this module.
Can the same completion deduct twice?
No. Completion locks the recipe and marks the appointment in one transaction; a repeat returns the already processed result.
Check material before the next appointment
Record supplies, build service recipes and test replenishment with your clinic's own data.
Create my account