3 permission levels
| Permission | What it allows |
|---|---|
| parking.view | View the parking page (only needed to see this page) |
| parking.operate | Open a ticket when a vehicle arrives, close a ticket/collect payment when it leaves, discount/waive the parking fee |
| parking.manage | Everything operate can do, plus set up lots/spaces, set the price table, issue monthly passes, void a ticket opened by mistake |
Vehicle arrives — open a ticket
- 1Choose the lot you want, then click "Vehicle in"
- 2Enter the license plate (can be left blank if the lot doesn't record plates — but a lot that doesn't record plates can't prevent the same vehicle from entering twice), then choose the vehicle type: car · motorcycle · truck · bicycle · EV
- 3Click "Open ticket" — the system issues a ticket token immediately
You can't open a second ticket for the same plate while one is already open in the lot — the system will say "This plate already has an open ticket in this lot."
Vehicle leaves — close ticket and collect payment
- 1Choose the departing vehicle's ticket from the list of parked vehicles, click "Vehicle out"
- 2The system automatically requests the price from the server (based on the set price table + actual time parked), and shows the amount to collect
- 3Click "Collected, release vehicle" to close the ticket — the amount locks the moment it closes and can't be edited afterward
If the lot hasn't set a price yet, the system won't calculate a charge, and will say "This lot hasn't set a price yet — set a price before you can charge."
Discount vs. void a ticket — two different things
| Action | When to use | Effect on reports |
|---|---|---|
| Discount / waive | The vehicle really did park, but the shop wants to lower the price or give it for free (a reason is always required) | Counts as a real closed round, but at the discounted amount, with the reason noted in the history |
| Void a ticket — manage permission only | The ticket was opened wrong from the start (mistyped plate/accidentally opened twice) | The ticket disappears entirely from revenue reports — not counted as a round worth 0 baht. Requires a reason of at least 3 characters |
You cannot collect more than the price set in the price table — to charge more, you must go edit the price table first, not type a higher amount on the vehicle-out screen.
Price table
Can be set (manage permission only):
- Free minutes at the start — how many minutes are free before charging begins
- First block (minutes) + first block price — the price of the first block after the free period ends
- Following blocks (minutes) + price per following block — the price per block after that (must be at least 1 minute)
- Daily cap — leave blank = no cap (different from entering 0, which means free for the whole day)
A partial block is always charged as a full block (rounded up). Saving a new price table issues a new price sheet on top of the old one, and the old sheet stays stored so already-closed old tickets can still explain their own pricing — it never overwrites the old one in place.
Monthly pass
For regular vehicles that pay for parking per period instead of per visit (manage permission only) — enter the license plate, holder's name, start–end date range, and the fee per period. A vehicle holding an unexpired monthly pass is charged 0 baht for parking the whole time. Passes can be turned on/off later without deleting them.
History and reports
The "Entry-exit history" tab shows the plate, vehicle type, entry-exit time, duration parked, and the actual amount collected for each vehicle (with a note if a discount was applied). The "Reports" tab summarizes daily revenue for the past 30 days, number of closed rounds, number discounted/voided, and average amount per vehicle.
What can break
| Symptom | Cause / fix |
|---|---|
| Can't open a ticket — "Lot is full" | The set number of spaces is full — wait for a vehicle to leave, or edit the space count in the lot settings page |
| Can't open a ticket — "This plate already has an open ticket in this lot" | Duplicate plate with an unclosed ticket — check whether it's really the same vehicle, or someone forgot to close the old ticket |
| Closed a ticket but no price shows | This lot hasn't set up a price table yet — go set a price in the "Price table" menu first |
| Discount/void won't go through | A reason of at least 3 characters is always required — the system won't allow a discount or void without one |
| Report amounts show no currency | That round has no price tied to it yet — the system shows "no price set" instead of guessing a currency |