Cash Management & End of Work Period Cash Up

Its been a while since i said i would write a tutorial for a cash up screen, so long in fact that i have completed redesigned and re-written a simpler cash up screen built in a default database that should work as a base for any database. You can then customise it further, i am now in the process and customising it further for my needs so once completed ill also show that setup, built from this setup ill go through now and there is a database import file at the end

New Basic Cash Management - This is how it works

User logs in and is prompted to open new work period

Selecting NO logs user into navigation menu without opening a work period
Selecting YES opens a work period, prompts for Float value to be entered and then logs the user out

image.png1366x768 26.3 KB

image.png1366x768 17.6 KB

Till is now setup ready for the day

User logs in to make a sale as normal and settles as cash

image.png1366x768 22.4 KB

image.png1366x768 30 KB

Press Cash Management Button to print X Read, Perform a Cash Lift, or Cash up and Close the Work Period

Cash Management Screen

image.png1366x768 30 KB

So here we can see that the cash sale we just did has logged £10 under cash takings, it has increased the Cash In Till balance to £60 (£50 float entered plus the £10 cash sale)

We can also see that as we have not cashed up yet we have a Final Closing Cash Figure of MINUS £10

So if we were to now cash up this work period:

  1. Remove the float, press remove float and enter the float value

image.png1366x768 56.8 KB

You will now see that Cash In Till Figure has reduced to £10
2. Now we need to enter all Cash, Card and Voucher takings we count from the cash drawer. As we only did a £10 Sale we should only have £10 to enter in cash. Press the Enter Final Cash Value button and enter the amount of cash you have

image.png1366x768 56.2 KB

image.png1366x768 82.3 KB

You can see that the cash takings figure under final closing figures has updated to £10 and we no longer show a £10 short. If you had card and voucher sales follow the same process above when pressing the enter final card and voucher buttons

Now the cashing up is complete we press the end work period button to close the work period

  1. Press Close Work Period, then select NO to go back to cash management screen or yes to end shift, I selected YES

image.png1366x768 9.04 KB

  1. Now confirm Till difference is correct, pressing NO will return you to the Cash Management screen, pressing YES will confirm till difference, close work period, print work period report, backup database and log user out, ready to start next work period

image.png1366x768 23.8 KB

image.png1366x768 17.6 KB

So youve taken a lot of cash and need to remove some from the cash drawer as its getting full and put it in the safe (*An additional to be added to this system is a notification on the POS screen to inform you when theres is too much cash in the till)

To remove money from the drawer Press Cash Management and then press the Cash Lift Button (in this case ive processed a large cash sale so the system thinks theres a lot of cash been taken)

image.png1366x768 84 KB

Press Enter Cash Lift and enter the amount you remove from the cash drawer, here we will take £400

image.png1366x768 57.5 KB

Once entered this is the updated cash management screen

image.png1366x768 84 KB

  1. You can see under cash takings on the left we expect to have £500 in cash
  2. We cash lifted £400 so the cash in till now shows as £150 (£100 remaining from the £500 cash sale and the £50 float) so at a glance we can see how much money we have in the cash drawer during trade
  3. Cash takings has on the final closing figure column has updated to £400, since we have already counted this amount and moved to safe we have “cashed this amount up”
  4. All that remains now is to finish a final cashup and enter the remaining cash figure, press enter final cash value button, enter £100 and this will balance the drawer

image.png1366x768 83.7 KB

This added £100 to final closing figure and balanced the till to ZERO difference

**Note to remember: all the buttons to enter cash, card, voucher, cash lifts etc are UPDATE buttons NOT additional. So if you do two cash lifts one for 200 and the second for 300 when entering the second one you would add the two together and enter 500 to update the figure to the total lifted

So if you made a mistake entering a cash figure for example you could just retype the correct figure to update

Now to ensure a “clean” cash management screen we need to reset the cash drawer to zero before closing work period. If you forget to press the remove float button and instead press close work period you get the following error message

image.png1366x768 18.6 KB

Press OK to go back to cash management, then remove the float, you see my cash in till balance is now zero

image.png1366x768 82.9 KB

I can now press close work period and finish the closing of the work period as before

image.png1366x768 9.04 KB

image.png1366x768 23.8 KB

image.png1366x768 23.4 KB

So as we are automating the closing of the work period there is no built in function to provide an error message if you try to close the work period with unpaid tickets, pressing close work button will just appear not to work

So i have automated this process too, in the below screen shot i have added an order and added a customer entity and then closed the ticket so it is now unpaid. i have created a new state flow so that every ticket opened is marked as active and when fully paid it gets marked as inactive as can be seen below

image.png1366x768 22.5 KB

Now ive pressed close the ticket is not paid, if i now try to close the work period whilst having unpaid tickets this is what happens

  1. Press close work period button
  2. following error message appears

image.png1366x768 28 KB

  1. press the clear unpaid tickets button to be taken to a ticket lister screen of all unpaid tickets

image.png1366x768 10.3 KB

  1. Press the ticket on screen to select and open it on the pos screen

image.png1366x768 10.8 KB

image.png1366x768 25 KB

  1. now settle it as normal so it becomes paid and “inactive”
  2. go back to cash management screen, cash up as normal and then end the work period

heres the export file, ive tested the import on a blank database and it seems to work fine

Cash Management (6.3 KB)


Thanks @RickH This looks awesome.

1 Like

Hi ,Its great i have been longing to this kind of an idea.But is it possible to limit waiters from ordering after their have reached a certain amount then until they clear with cashier then they are allowed to continue with ordering cash limiting as per say

Yep you could setup a separate program settin for each waiter and when it hits a certain value it stops them being able to add orders to a ticket. Then they clear their cash and reset the vakue back to zero

I use the same idea to set a cash limit in the till, when that limit is reached a message flags up everytime a ticket is created telling you to perform a cash lift. Once the lift is complete the limit value resets

It’s definitelty doable

How do go about it especially setting up to certain value for the waiters if you don’t mind you can give us the screen shots

How to show cash differences in work period report

Hi @RickH,
I have imported the file, but its not working for me.

It works on a blank database so something else on your setup is stopping it. We will never know what if all you can tell us is that it isn’t working

What isn’t working ?

1 Like

hello @RickH, i can not see this screen

also some of the images in the tutorial are not availables if its posible to fix it would be great, thanks

That’s a custom entity screen you need to create, doesn’t look like I mentioned that in the tutorial I’ll update when I have time

1 Like

how can i see the cash management reports.
and can i see the history of other cash ins and outs ?

You’ll need to create the reports and you’ll need to configure any other cash ins and outs you need

Sorry for digging up an old topic but I think this is a very good Cash Management screen but it only goes so far, so I’d like to ask if @RickH or anyone has taken this further before I spend time doing so myself.

Specifically, at the moment it is storing all the values in global settings, which means there is only one value being held and no way of storing past values from previous work periods. Have a report been created to enable the figures from the cash management screen to be printed?

Has anyone taken this further to store values in the database so they can be viewed in past reports, or displaying the all the figures shown on the screen per work period? If not, I was thinking to log all the value for a work period as a task which can then be reported on at a future date - do you think this would be the best method or has anyone got any better suggestions or ideas?

Also this cash management screen will work globally across the system, so if you have multiple terminals with multiple cash drawers and you want to separate out per cash drawer, it needs modification. Has anyone done anything with this? As a simple way I was thinking to suffix all the setting values with {:CURRENTTERMINAL} to enable this to work in the context of the terminal its being run from.

What I did with our system is create a Workday Payment Account Type then defined a Cash and Check account for each till that accepts payments. At the end of the day, when a till is Cash Up/Cashed Out/Balanced (not sure what the correct terminology is) a Credit amount is automatically entered (based on the account balance) on the Workday Payment Account and a debit amount is made to the Main Payment Account when the end of the day report is printed. I was inspired by this post from Emre:

This solves 2 problems for me:

  • If at the end of the day a till was not Cash Up/Cashed Out/Balanced, the balance is carried over to the following day and can be Cash Up/Cashed Out/Balanced can be done at the end of that day.
  • Because we take deposit payments on PreOrder tickets (tickets that have a previous ticket date), it accounts for that. There is a bug where a payment is made on a Pre-Order ticket that has a previous ticket date (i.e. a PreOrder ticket made 3 days/workperiods prior), the payment will show up on the PreOrder Ticket date, even though the payment was made 3 days/workperiods after the PreOrder Ticket Date.

We have a Cash Up/Cashed Out/Balanced screen and at the end of the day , all the domination’s counts are printed on a report and cleared out. If there is printer error, the numbers are lost but we will write everything down on a slip of paper (it has only happened a few times).

I have toyed with the idea of writing all the denomination’s to a task, same as you have mentioned. But right now, I don’t look at the report after making a deposit.

I hope my ramblings makes sense. If want further explanations or screens shots let me know.

1 Like

Hi @markjw

Ive made some slight changes to it with a new screen for entering all the takings, ill show you screen shots below.

So first is the float “removal” count the number of coins for each denomination until you get to or just over the float value. Press the orange value buttons to open a key pad to enter the number of coins, this will then update underneath with the actual value, eg press 10p, enter 5 and the value will show as £0.50

Once you reach the float total or just over you then remove anything not yet counted, as this will now be counted in the takings count, press the remove float button, which will reset to zero and anthing counted above the float value will automatically transfer to the float difference in final takings count to be included in the takings (you just then need to physically remove that amount from what you have already counted as the float) if the remove float button isnt pressed you cannot progress with the Finalise Totals button

This screen works as a blind count, so you cant see what you should have until you have entered what you have and progress tothe next screen to see any differences

You also cant close the shift if there are any wastage tickets open and not settled (linked to my wastage setup) and you cant close if there are any open tickets when pressing finalise totals. If there are open tickets on either, when pressing those buttons taked you to a screen showing the open tickets so they can be dealt with before closing the shift

This is the new flow

Starting a new shift

Login and open a new shift by pressing YES

Enter starting float value

System logs out ready to use

login and trade, ive just done 1 £26 transaction

Now go to close the shift to get the cash up screen

Enter number of coins of each denomination until you reach or go just over the initial float value, after each value is added the value under the remove float button increases towards zero or a positive number

ive not hit my float value and counted over by £4, which now become part of my takings when I press the Remove Float Button

Remove float pressed, value changes to zero and the £4 transfers to the float difference under Final Takings Count

Now count the rest of the money for the takings (in this case i did a £26 transaction so theres only £22 left to add

With nothing else left to add to takings and no open tickets, Press finalise totals button to show the final takings and any discrepancies. This shows the shift totals and what is expected, so we exoect £26 and we counted £26 on the previous screen

Press end shift to close the shift if you are happy with all the figures, press Yes to continue to close or no to abort

Press yes to confirm till difference

Confirm Z read print

Wait shilst shift closes and backup saves

Shift closes and system logs out


Wow good job @RickH it’s been a while since I saw some beautiful automation like that in the forum.