End of day reconciliation

Hi
I am hoping I could get some help to reconcile my SambaPOS every night. Ideally I would like ;

a) To be able to input the money I have in my cash drawer so that it shows a “total cash” figure

b) To be able to input my cash in drawer (days cash takings), credit card receipt total, cash expenses before I do my end of day report, ending with a result that would show that I am either short or over in money.

This would do away for the need to have any hand written reconciliations each night and I am sure it would work for many other businesses.

I read that this would be possible in V5 a long time ago but cannot find that post.

Any help appreciated.

A tutorial showing this has not been written yet. Hopefully soon the community will share something like this. The capability is there and several users have configured it. You too could configure it but you need to study the features more and learn how to use them.

I have not built this yet so I cant share anything with you right now. But I do know that editor widget and entity screens are the key to this.

1 Like

Yes we can do this in V5 and it is fantastic. It is quite a bit of configuration to set this up, which is the main reason I have not delved into creating a Tutorial. I also have 2 currencies, so it doubles the amount of setup and work to put it together.

My version of this is shown below. @RickH has another version. So you need to choose which one you like or fits your needs better.

Thank you Kendash, my knowledge is fairly limited and I mostly rely on the great tutorials and advice I see here. I am catching on a bit but still a novice. Thanks again.

1 Like

Hi QMcKay, what you have there is along the same lines of what I would like, I have not seen @RickH version yet.
I have attached an image of what we use at night to give you a better idea. We count our cash drawer first and leave €200 for the next day which is always our float. Then we count what is left over in cash and add our credit card total to get a combined total. We then get our Samba report and write the total ticket sales in per category - drink, coffee,food , then minus expenses (taken from expenses section), then minus OR’s (Over Registers - mistakes if they haven’t been fixed). This gives our net sales, we then +/- our cash to give a +/- difference figure (basically the amount the drawer is under or over by).

It would be really nice if this could all be done within Samba V5 but I’m afraid I am not anywhere as proficient as some on this forum so its paper for now :smile:

##Widgets


##Cashout Count Report

[Cashout Report:1, 1, 1, 1, 1]
>>Tender|Count|(-Float)|Account|+/-
Cash|[=F(TN('{SETTING:USDcountTotal}'),'0.00')]|[=F(TN('{SETTING:USDcountTotal}')-TN('{SETTING:USDfloat}'),'0.00')]|[=F(TN('{ACCOUNT TOTAL:Cash}'),'0.00')]|[=F(TN('{SETTING:USDcountTotal}')-TN('{SETTING:USDfloat}')-TN('{ACCOUNT TOTAL:Cash}'),'0.00')]
CC|[=F(TN('{SETTING:CCUSDcountTotal}'),'0.00')]|-|[=F(TN('{ACCOUNT TOTAL:Credit Card}'),'0.00')]|[=F(TN('{SETTING:CCUSDcountTotal}')-TN('{ACCOUNT TOTAL:Credit Card}'),'0.00')]

>>TOTALS|Count|(-Float)|Account|+/-
Cash + CC|[=F(TN('{SETTING:CCUSDcountTotal}')+TN('{SETTING:USDcountTotal}'),'0.00')]|[=F( TN('{SETTING:USDcountTotal}')-TN('{SETTING:USDfloat}') + TN('{SETTING:CCUSDcountTotal}'),'0.00')]|[=F(TN('{ACCOUNT TOTAL:Cash}')+TN('{ACCOUNT TOTAL:Credit Card}'),'0.00')]|[=F(TN('{SETTING:USDcountTotal}')-TN('{SETTING:USDfloat}') + TN('{SETTING:CCUSDcountTotal}') - (TN('{ACCOUNT TOTAL:Cash}')+TN('{ACCOUNT TOTAL:Credit Card}'),'0.00')]

##Label Widget Text

<font Consolas><size 12>

x 100 = {CALL:str.pad('{SETTING:USDcount100}','left',5," ")}

x  50 = {CALL:str.pad('{SETTING:USDcount50}','left',5," ")}

x  20 = {CALL:str.pad('{SETTING:USDcount20}','left',5," ")}

x  10 = {CALL:str.pad('{SETTING:USDcount10}','left',5," ")}

x   5 = {CALL:str.pad('{SETTING:USDcount5}','left',5," ")}

x   1 = {CALL:str.pad('{SETTING:USDcount1}','left',5," ")}
-------------
        {CALL:str.pad('{SETTING:USDcountTotal}','left',5," ")}
      - {CALL:str.pad('{SETTING:USDfloat}','left',5," ")}
-------------
        {CALL:str.pad('{SETTING:USDbalance}','left',5," ")}</size></font>

##Automation Command Button Widget Caption

<font Consolas><block 0,0,0,0 #333333 right 30>USD:</block><block 0,0,0,0 #222222 right 80>[=F(TN('{SETTING:USDfloat}'),'0.00')]</block></font>

##JScript

Name:StringFunctions
Handler: str

function pad(s,d,l,c) {

  // s : input string
  // d : direction - left or right pad
  // l : length of output string
  // c : pad character (0," ")
  
  // ensure the input is a string, not a number
  s = ''+s+'';
  
  var outstring = "";
  var padding = "";
  
  // build string padding
  padding=Array(l+1).join(c);
  
  // pad the input right or left
  if (d=='right') {
    outstring = (s+padding).substring(0,padding.length);
  } else {
    outstring = (padding+s).slice(0-padding.length);
  }
  return outstring;
}

##Actions

###Update Program Setting

###Execute Automation Command


##Rules

###CO Set USD Count

Name: CO Set USD Count
Event: Automation Command Executed
Constraints:
Execute Rule if Matches
Automation Command Name Contains CO Set USD Count

CO Set Count Value
CountName: [='USDcount' + TN('[:AutomationCommandName]'.substr(17,3))]
Count: [=[:CommandValue] * TN('[:AutomationCommandName]'.substr(17,3))]

CO Set Count Value
CountName: USDcountTotal
Count: [=TN('{SETTING:USDcount500}')+TN('{SETTING:USDcount100}')+TN('{SETTING:USDcount50}')+TN('{SETTING:USDcount20}')+TN('{SETTING:USDcount10}')+TN('{SETTING:USDcount5}')+TN('{SETTING:USDcount1}')]

CO Set Count Value
CountName: USDbalance
Count: [=TN('{SETTING:USDcountTotal}')-TN('{SETTING:USDfloat}')]


###CO Set Float Value

Name: CO Set Float Value
Event: Automation Command Executed
Constraints:
Execute Rule if Matches
Automation Command Name Equals CO Set Float Value

CO Set Float Value
FloatName: [:CommandValue]float
Amount: [?Enter Float value for USD;;200;OCN]

CO Set Count Value
CountName: [:CommandValue]balance
Count: [=TN('{SETTING:[:CommandValue]countTotal}')-TN('{SETTING:[:CommandValue]float}')]

4 Likes

Thanks so much for this, it will take me some time to understand and implement but I will give it a bash. If I come up with any result or adaptation I will be sure to share it. If anyone else out there wants to lend a hand or give advice it would be much appreciated also. Thanks

The tedious part is all the Editor Widgets, because you need to set them 1-by-1 to call the same Automation Command using the denomination suffix. The Rule handles setting Program Settings based on the suffix (1, 5, 10, 20, 50, 100, etc)

Well, that and all the alignment and sizing, etc…

That is the basics of the setup. There is another panel for Credit Card. It uses the same methodology to parse the card type. And for me, I do that twice because of dual-currency (4 panels with ~6 editors each).

The Report is fairly simply, as is the Automation (I tried to parameterize it so I didn’t need a whole pile of Actions and Rules).

I don’t mind the tedious work as it should be worth it in the end. I am going to show it to a programmer friend, who owes me a favour or two, as I would like to make the accounting part matter. For this I would have to send the total cash and credit cards to a lodgement account, then the expenses would have to go to an expense (petty cash) account. The more I think about it though, I think the expense input and mistakes (OR’s) should all be done before cashout but still feature on the report.
I need to scratch my head on this for a while and my brain gets a bit fuzzy at this time of night! Thanks again for the advice.

2 Likes

How do i add the widgets to my SambaPOS?

Did you manage to get this working?

Presumably you mean entity screen widgets?
You need entity screen to be set to custom or layout mode in screen options then on screen right click and select edit then again and add widget. Then save afterwards.

1 Like

First you create an entity screen and set it to custom or layout mode. Then navigate to that screen and right click it and choose Design Mode. Then you can right click and add widget.

2 Likes

Thank you, let me try that. I want to try and add something like this

DB Tools import file for that system here:

You still need to know how to edit the Screen to remove or add Widgets, so do that as @Jesse has instructed.

2 Likes

Thanks a lot, let me try that now.

It worked, there is only one error showing when i try to view the CASHOUT REPORT.

It’s showing me this error

That is a Table that I added to the Database which stores historical records for the Cashout.

You can create that table using SSMS by running the following script:

create_CASHOUT.sql

USE [SambaPOS5]
GO

/****** Object:  Table [dbo].[CASHOUT]    Script Date: 2018-01-24 07:40:23 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[CASHOUT](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[WPID] [int] NULL,
	[F1] [varchar](255) NULL,
	[F2] [varchar](255) NULL,
	[Count] [money] NULL,
	[Float] [money] NULL,
	[Balance] [money] NULL,
	[Account] [money] NULL,
	[+/-] [money] NULL,
 CONSTRAINT [PK_dbo.CASHOUT] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
1 Like