Maintain Waiters Account


I need to maintain waiters account similar to Customer account.

Each waiter will have their own login id , raise tickets , settle the tickets and accepts cash and keep in their wallet. Manager can check account balance of waiters at any point of time and take cash from them full or part. How do i maintain this waiters account similar to customer account and know the cash available with each waiter and also waiter can pay to manager in between of the work period in part or full


Do you mean individual till/taking cash rather than account for their own purchases/credits like tips?

Not tried but expect you would need to either setup multiple payment types for cash (per user) then those individual users only have their associated cash account on their payment screens. The accounts flow is then similar except the reports will show multiple cash accounts/payment types.

You would then want to make some ‘uplift’ automation to transfer value from the individual cash accounts to a main master cash account.

Expect this isn’t a straight forward as you had hoped. It would require you to maintain payment accounts and transactions per user which is a pain.

@pauln might be a good one to chip in as he has done extensive account customisation and will have a better idea of the best method.
It might be posible to use staff entities and in turn entity accounts to ‘simplify’ the account maintenance.


Maybe you could setup a program setting that increased in value by the amount of cash taken when payment processed

I do this to create an alert when there is too much cash in the drawer, prompt a cash lift at a set level and reset when cash is taken out of the drawer

You can check the amount by pressing an auto command button to display the setting total, so perhaps you could set up the program per user logged in, and have an entity screen with auto commands buttons per person that displays there current cash value

That might be long winded though and like JTR said, Paul may have a better idea :grinning:


Thank you RickH and JTRTech for the quick reply.

My situation is little different which i will explain

My restaurant has Dine-In and Take away departments which works fine. However we have a huge parking lot in front of the restaurant where people come and honk for quick bites and juices. We have few salesmen/waters dedicated in the parking area taking orders in their Android Tablet . Once the order is delivered they collect the cash and keeps with them in a bag provided. So each waiter has his own balance which we have record in the system. Usually at the end of the day we take the waiters report and settle and that too is fine. But there are occasions that we might need cash inside the restaurant for payments etc. At this time we will collect cash from the waiters in parking area (eg. waiter X has 2500 in his wallet and we collect 2000 out of that and balance 500 remains with him).

So my thought was if we maintain Waiters accounts as entities similar to customer and have a button of WAITER ACCOUNT while settling bills similar to CUSTOMER ACCOUNT, each waiter will have their own user id to login and if that login id is synchronized as Waiters Account as said above, we can always take a quick look at the waiter account and see the sales and balance and also make a receipt to main cash from the waiters account similar to what we do with the Customer Account.

Hope the above gives a clear idea of what i am trying to achieve. Kindly help on how I can setup a similar config.


This is what we were both thinking and suggestions stand. Pauline probably still best person to comment given his complex account setup experience.


Is that auto correct Pauline (@pauln) haha :grinning:


@planetsolutions we don’t have a step by step tutorial for that and I don’t think someone can explain required steps from scratch. Instead of waiting just start by creating entity types, mapping them to accounts, assigning them to tickets, etc. If on any step you encounter an issue you can share with us what you already did and explain the specific problem you’re experiencing. Such questions gets fast answers as people who are not using waiter tracking setups can also answer your question. These topics are also good resources for other people who needs similar setups.


Yes @planetsolutions, you need to dissect Emres comments but your solution can be done using Entities or Accounts Transactions or both and how they are mapped.

If you create Waiters as entities then they each can have 1 account associated but this account would need to have an opening, closing and running balance. All of these are built in functionality using the Report Account Transactions syntax.

You can also just exploit the {REPORT ACCOUNT TRANSACTIONS:x} report BY creating Transaction Types and Document Types to separate the transactions.

What you are asking is really separate cash draws for each of your Waiters and we assume it all cash? If it is just one tender that will make your life a little easier.

Here is just a cross section of my Document Types:

In my example “BR1” could be your Waiter Name i.e. Fred Flintstone. Also I have difference tenders used for each Waiter.

Here is the document and transaction.

You control your Account Balances by Account Transactions and report on the using the {REPORT ACCOUNT TRANSACTIONS: x} where you can use parameter to print transactions assigned to a Waiter/Account.

Using Entities as waiters will allow you to track different transactions types within an Account but will require every transaction to be assigned to the Entity/Waiter for sales.

By the way Document Types Mapping do not give you much in the way of defining transactions for particular waiters:

User Role will not help but maybe Departments :slight_smile: and having a department for each Waiter? That could be very useful…

Hope that a little hepful.


Thank you all again for the support. I will try with the suggestions and revert soon

Thanking you again



I have made a solution for my requirement by just changing / Renaming the Customer Entity as Waiter as I don’t maintain Customers.

Now i create the waiters as customers and major part of my requirment is covered.

However i have one more requirement. Is there a way to select customer (now waiter) automatically if i have the same name for user login.

ie. I have a user John and I create a waiter (customer) John. Tickets should select John as customer (waiter) on the terminal which John is logged in. Any chance for this

Thanking you in advance


Yes, would imagine you would want to do on a ticket created rule rather than login as selecting entity on login would prevent opening tickets on tables etc as the ‘select’ will start a new ticket on login making selecting a table assign it to the new ticket rather than open existing ticket.


You need to Execute Change Ticket Entity action on Ticket Created rule with {:CURRENTUSER} tag.



Thank you and would appreciate if you could elaborate on how to Execute Change Ticket Entity action on Ticket Created rule with {:CURRENTUSER} tag.

  1. Create a ticket created rule
  2. Add a change ticket entity action to the above rule
  3. Click the arrow of the added action to expand the settings and add the currentuser tag to the required field in the action (I can’t remember all the fields off the top of my head but I think you need to specify entity type and entity name)


much easier this problem was solved if in Payment Types there was an opportunity to install accounts on regular expressions (ec. {:CURRENTUSER}) Of course having created before it the relevant accounts.


I used the solution from @emre and every thing works fine as expected by using {:CURRENTUSER} tag in action in SambaPOS Windows. However the users having Android version need a solution for the above. Any suggestions for using {:CURRENTUSER} as Entity for users logged in from Android