Hotel Rooms (Entity?)


Yes and it updates the Custom Field for Guests Name and Booking Number no problem.

At that point it tries to get the above fields and cannot read the value from the Entity in order to combine them to create the Booking Account Field. I only pasted the Text value between the Values.

So the Entity is loaded
Guests Name is asked and the Custom Field is updated
Booking Number is generated and Custom Field is updated.

Custom Field values cannot be read to create Booking Account Custom Field

{DATE} always returns 01/01/01. It updates the Custom Field but always the same value.

At this point the system cannot get any of the values for creating and updating the Booking Entity since ENTITY DATA:Rooms anythingyoutype does not work.


Show your first two action;


Here is the whole rule in order


Can you show the actions themselves for those first two?

Also what does a show message/ask question on end of that rule show for say {ENTITY DATA:Rooms:Guests Name}?


The message given is exactly {}

Here are the actions


Looks like Update Room was poorly names, it should be change ticket entity;

Suspect this will be why as the entity isnt selected so doesn’t know an entity to lookup the data from.
Never quite grasped the difference in abilities between load and change/select entity but remember having both made it work LOL


@JTRTech. Dear Joe

I have sorted those issues with the Actions and this works fine thank you.

As usual sorting one problem exposes the next. I have been trying to sort this one for a while now and have tried so many combinations my head is spinning.

The issue is assigning transactions to the Booking Account. If I run through my understanding of the Logic process maybe you can point me at my mistake (s).

I will try add relevant screen shots to help my thought train.

Firstly in simple terms I have the following
Room Entities
Booking Entities
These are now working fine and are being created by the ‘CreateBooking’ Rule and are carbon copies of your database at the moment. ( I plan to amend/add some fields later but need to get the thing working first)
It is at this point that the Booking Account is created and my assumption is this is created by the Room Entity Update Rule

My problem seems to be that the Room Entity Account Field is not updated with the Booking Number and therefore the ticket transaction is not being assigned to the Booking Account. In Fact unless I manually go into the Room Entity and select the Account, I cannot get the option to sign this payment to the Booking Account.

Here is my Room Entity Type

And here is my Bookings Entity Type

Running this and checking in Room Number 2 gives me the following Entities and Accounts

First Booking Entity - This looks fine to me.

Next Room Entity - This is my problem as Booking Account is not defined

Any ideas or advice?


Despite trying (what I think) are all possible combinations and rechecking all my constraints/rules/actions, I have hit the proverbial Brick Wall.
There are a number of fundamental issues with my setup that I cannot resolve.

  1. Booking Entity is not assigned to the Ticket. This prevents me selecting the “Booking Sign” payment option when settling the ticket. I can set up a Room Account payment method but cannot automatically set the Booking Account to the Room Entity. Clearly I do not understand half of what I should to make this work. On reviewing the Gif that Joe has posted above I can clearly see the ticket has both Room and Booking Entities in the ticket header but I cannot get this whatever I try.

  2. I have very little knowledge of Scripts and have used the script which @JTRTech very kindly posted. I have followed the logic of this script and Joe’s previous dialog with QMcKay whilst developing this script. I am pretty sure that the script I have implemented is identical to the script posted by Joe. However I cannot return a value from an account which is clearly showing a Balance on my Room Entity Screen. This of course prevents the checkout process being properly executed. I can checkout a booking because the system thinks there is no value to the account. Is there any other way to extract the Account value for the constraint arguments.

Despite the tremendous assistance I have received to date, particularly from Joe, I have come to a Road Block. Having wanted to implement a simple POS to get away from Paper Bills and KOT’s the Booking system has distracted me from implementation. Since however more than 90% of my Restaurant and Bar business is via my Hotel guests, the ability to sign bills to particular Room bookings and and to collate, print and pay for those bills at Room Check Out is pretty fundamental to my Business.

Getting pretty desperate to find a solution as we do not really have the funds to get a bespoke POS solution (if one is possible) to meet our requirements. Any help or guidance would be much appreciated.

P.S. please excuse my message tone. I really love the flexible nature of Sambapos and the community concept behind it. I guess I am a tad depressed by my own failure to solve my problems.


Will have a look later, missed your last post so will have a look see if I can see whats wrong.


@davetrillo apologies, looking at comment 1 I think I missed this acction in the list as was hidden in the default settle automation command rule;

This adds the booking entity to the ticket on settle button pressing to allow the booking account payment type to be active.
The important part is that the charges are made to the booking account NOT the room account so as to split the charges between guests unlike if they were all charged to the room account.

Also this is the corasponding command rule that this is triggering;


@JTRTech what is the Generic Ask Question Action you have set up in your settle rule. Is this where ‘RemoveBooking’ gets set as I cannot find reference to this anywhere in the automation.

What are we asking at this point? Confirmation maybe.

I cannot get the sign button to “light up” when I add the new rule and action. This tells me the Booking Account is still not being attached to the ticket.


The ask question is something seperate altogether, its about table number if there are food items.

RemoveBooking im going to guess will be be from another rule to do with is a room entity is removed from the ticket, will have a look later.
Pretty much unless that value is there it will add the command value as the booking entity.


Hi all, Just checking back in on this as we now have our tills installed and all other functions working. Is this now a complete tutorial for a newbie, or does it assume some pre-requisites first?


They are still finetuning/ testing the process.


Not sure this will ever be a tutorial that can be simply added in, as this is a very specific tailored application. JTRTech has developed some excellent automation to provide the basis of a setup but I soon found that I needed to add or tweak stuff to suit our business model i.e Meal Plans, Booking Ref aligned with our PMS, Number of Room occupants etc etc. Thanks to my wifes 30 second review I am now adding the facility to transfer an ongoing booking to a different Room! (not working yet but close)

I think the easiest way to go with this is to take the information in this thread, get it working and then develop this to suit your business. I have found the process very helpful in understanding the SambaPos structure and I guess that’s what this Forum is all about.

I may have had to cry for help when really struggling on some key issues but at least I now feel that I can fix something if it breaks at a crucial time.


It is always good to understand the underlying configeration to allow you to tweek and fix if issues when implimented in your own business…

Interesting… thought never came up when orgigionally putting together.
Given that booking and room are seperate entities it shouldnt be to bad.
First thought would either be saving the fields to program settings to facilitate the swap or perhapps an extra room entity, not mapped to the entity screen which can be used as a ‘buffer’ for the fields.



Yes it was a curve ball for me also.

Planning to use a “Transfer” Entity screen mapped to the rooms as per the Booking Screen. The reception staff only would have this screen mapped to their Terminal. On selecting the Relevant Room (which is yellow due to occupied state) I then planned to set a Variable called OldRoom and prompt the user with a dropdown to set NewRoom Variable (Transfer=[?NewRoom;;Room10|Room12| etc etc],Cancel=Cancel). Currently NewRoom works fine but I cannot seem to set OldRoom variable. Tried Update Program setting but not doing it. Grrr . I will sort it.

Any way then I run a string of automation to read OldRoom Custom Field Value and write it to NewRoom Custom field entity, Update Room Number in the Booking Entity and then clear all the values in OldRoom.

Its a little clunky but probably works OK once I can set OldRoom Variable. The buffer room entity sounds interesting though.

I also found I needed this facility because we often get guest who have had a room, checked out but are not leaving the Hotel until much later that day. This means they need to be transferred to a Holding Room Entity (Late CheckOut A, B, C etc) in order to continue signing food and beverage orders until departure and since the new arrivals for their previous room need to be checked in.

Once this is done I will move onto Meal Plans and Menu’s which may be more scary.


You could in theory have a booking entity search screen and post direct to booking accout :wink:

The thinking was swap room aswell rather than just move. as if swapping you would obviously need to keep the values somewhere while copying one set and then coppy the bufer room to the other, if that makes sense.


Am I being dim? Why does this not work when I know [:CommandValue] is set properly.

[:OldRoom] just returns a null value later in the automation. Also variable is not registering anywhere in rule debugger. NewRoom from query prompt adds and sets the variable


Whats this meant to be?
Shouldnt it be {SETTING:OldRoom}?
Check the program settings table via MSSQLM and youll be able to see if the value is being set ok.
Also add ask quesstion or show message with your questionable values. check [:CommandValue] in that rule and {SETTING:OldRoom} from a test button after running.