Eat out to help out

Report for discounted tickets;

@{REPORT CALCULATION DETAILS:T.Id:(CT=Eat Out to Help Out #3401):{0},}
[Eat Out to Help Out Summary:2,1,1, 2, 2, 2]
>Date|Ticket No|Covers|Applicable Total|Ticket Total|Discount Total
 {REPORT TICKET DETAILS:T.Date,T.TicketNumber,TT.Covers:T.Id==$1}|{REPORT ORDER DETAILS:O.Total.sum:T.Id==$1 AND (MT.EOHO Discount=Y)}|{REPORT ORDER DETAILS:O.Total.sum:T.Id==$1}|{REPORT CALCULATION DETAILS:C.Amount:T.Id==$1 AND (CT=Eat Out to Help Out #3401)}
>Totals|{REPORT CALCULATION DETAILS:T.Id.count,TT.Covers.sum:(CT=Eat Out to Help Out #3401)}|{REPORT ORDER DETAILS:O.Total.sum:(CA=Eat Out to Help Out #3401) AND (MT.EOHO Discount=Y)}|{REPORT ORDER DETAILS:O.Total.sum:(CA=Eat Out to Help Out #3401)}|{REPORT CALCULATION DETAILS:C.Amount.sum:(CT=Eat Out to Help Out #3401)}

image

So have rolled out to all our sites.
Final run through;

image

image

image

image

image

Report above
Product tags as before
Prompts for covers on order with kitchen course tag set
There are a couple of actions relating to my covers system not directly relevant as extended existing covers suggestion system.

4 Likes

Hi @JTRTech is there sample Database Tools import file for this?

thanks.

Did create one but it was giving errors, dont think it liked the reusing of the same action over and over. Gave more than one instance reference type error.

Note other discounts should be applied first before EOHO discount is calculated.
If you have other discounts setup you should include these in the calculation.
Hotel has loyalty and staff discounts so I add the {CALCULATION TOTAL:Regulars Food Discount} value (a negative) to the report ticket order total in the constraints and calculation amount fields.
So the doscount is taken from the order total value before calculating the EOHO discount.

Just want to share my implementation of this for anyone looking for a last minute, slightly more straight forward setup.

Worth noting:

  • I have Eat In and Take Away as separate departments and so the automation command and rule are only mapped to Eat In.
  • Ticket Tag ‘Covers’ is required on all Eat In tables and is of type “Numeric” so for the purposes of this, the value is assumed to already be present for calculation.
  • I have not chosen to have the discount be applied automatically - I am fairly sure a customer would quickly point out if they forget to apply it to the bill.
  • I have a product tag on all items that is either Food, Drinks (non alcoholic) or Alcohol. I realise the last two are not mutually exclusive but in this instance it works fairly well in separating items which are eligible.

Transaction Type

Name: EOHO Transaction Type
Source Type: Receivables
Target Type: Discount
Default Source: Receivables
Default Target: EOHO

Calculation Type
Name: Eat Out to Help Out (this name will show on receipt)
Transaction Type: EOHO Transaction Type (as above)
Calculation Method: Fixed amount
Include tax, decrease amount, toggle calculation checked
Sort to be after Discount

Automation Command
Name: EOHO
Button header: Eat Out<br />Help Out
Mappings:
Department: Eat In
Ticket Type: Eat In
Enabled States: NewOrders,Unpaid
Visibility: Ticket&Payment

Action
Name: Calculate EOHO
Action Type: Update Ticket Calculation
Calculation Type: Eat Out to Help Out
Amount:
[=((TN('{TICKET ORDER TOTAL EXP:(ODI=True) AND ((MT.Type=Food) OR (MT.Type=Drinks))}') * 0.5)>(TN('{TICKET TAG:Covers}') * 10))?(TN('{TICKET TAG:Covers}') * 10):(TN('{TICKET ORDER TOTAL EXP:(ODI=True) AND ((MT.Type=Food) OR (MT.Type=Drinks))}') * 0.5)]

Automation Rule
Name: EOHO button rule
Event Name: Automation Command Executed
Custom Constraints List:
Execute rule if: Matches all
Automation Command Name, Equals, EOHO
{DATE:ddd}, Matches, Mon|Tue|Wed
{DATE:MMM}, Matches, Aug
Mappings:
Department: Eat In
Ticket Type: Eat In

This seems to be working well based on limited testing done earlier this morning but I’m sure there’ll be room for improvement once we see how things go in production.

Similar but just manual application.
Do you not sell alcoholic drinks? Notice your MT.Type=Drinks, alcohol is excluded from offer.
Also, do you ever use the gift option from default setup? Just check your expressions if you do.

Notice your MT.Type=Drinks, alcohol is excluded from offer.

From my last message:

  • I have a product tag on all items that is either Food, Drinks (non alcoholic) or Alcohol. I realise the last two are not mutually exclusive but in this instance it works fairly well in separating items which are eligible.

Also, do you ever use the gift option from default setup? Just check your expressions if you do.

We don’t use Gift (only been running SambaPOS for 2.5 weeks or so) but will do some further testing to see.

1 Like

Fair enough, missed that.
Also you say about sort order but bare in mind your calculating fixed discount direct from orders value so dont think sort order will help with making normal discount apply before EOHO.

Thank you both for posting your setup for this. I’ve got it working ready for tonight, but I can’t get the report showing. I’ve used ryanbates example with JTRTechs report, but clicking the eat out to help out button asks a question to tag the number of covers.

My Calculation Type, Account and Transaction type are all called Eat Out To Help Out so i’ve just edited JTRTechs report where it says Eat Out to Help Out #3401 to Eat Out To Help Out but the report just shows nothing. My tag to show which products are non alcoholic is just called Type for now and the applicable products are tagged with Y

@{REPORT CALCULATION DETAILS:T.Id:(CT=Eat Out to Help Out):{0},}
[Eat Out to Help Out Summary:2,1,1, 2, 2, 2]
>Date|Ticket No|Covers|Applicable Total|Ticket Total|Discount Total
 {REPORT TICKET DETAILS:T.Date,T.TicketNumber,TT.Covers:T.Id==$1}|{REPORT ORDER DETAILS:O.Total.sum:T.Id==$1 AND (MT.Type=Y)}|{REPORT ORDER DETAILS:O.Total.sum:T.Id==$1}|{REPORT CALCULATION DETAILS:C.Amount:T.Id==$1 AND (CT=Eat Out To Help Out)}
>Totals|{REPORT CALCULATION DETAILS:T.Id.count,TT.Covers.sum:(CT=Eat Out to Help Out)}|{REPORT ORDER DETAILS:O.Total.sum:(CA=Eat Out to Help Out) AND (MT.Type=Y)}|{REPORT ORDER DETAILS:O.Total.sum:(CA=Eat Out to Help Out)}|{REPORT CALCULATION DETAILS:C.Amount.sum:(CT=Eat Out to Help Out)}

If I could get this report working I can export the settings for other people who are struggling to use.

If your case is correct then thats the reason, reports are case sensitive, you say Eat Out To Help Out but report is Eat Out to Help Out

I am such an idiot! Hours wasted trying to sort it out and it was just lack of a capital T. Thank you!

1 Like

Dont feel too bad - I did the same thing on my version !!

BTW

I put my calculation commands in the ticket closing rule with the kitchen and bar print commands to make sure the Android tablets fired the rule. :slight_smile:

Thats fine so long as ticket is always closed before printing/changes.
Perhaps add a close/reopen type flow on print bill command to ensure up to date?

I still can’t get this to work.
I have copied Ryan’s code, initially I thought it was because on my system it states guest count and not covers, so I have changed to it to this, [=((TN(’{TICKET ORDER TOTAL EXP:(ODI=True) AND ((MT.Type=Food) OR (MT.Type=Drinks))}’) * 0.5)>(TN(’{TICKET TAG:Guest Count}’) * 10))?(TN(’{TICKET TAG:Guest Count}’) * 10):(TN(’{TICKET ORDER TOTAL EXP:(ODI=True) AND ((MT.Type=Food) OR (MT.Type=Drinks))}’) * 0.5)]

but when I click the button, nothing happens.

Any help would be very much appreciated.

only work around solution I’ve been using for the past two days is to create a -£10 EOHO button and manually multiply by number of guests.

for the 50% i have a seperate button at -£0.05 then calculate accordingly. Definitely not the best solution.

Do you have the Type product tag setup and values set for products?

I can configure for you remotely but would be paid support. Would implement the automatic setup i documented above. PM me if interested.

I believe so

Your tag is Product Type, code you posted is looking for tag of just Type

You also can try this.

Just wanted to follow up on this as the code posted ended up getting tweaked a little to handle gifts and other oddities of the system that I’m still getting to grips with:

In the end my calculation was as follows:
[=((TN('{TICKET ORDER TOTAL EXP:(ODI=True) AND ((MT.Type=Food) OR (MT.Type=Drinks)) AND (OS.GStatus= )}') * 0.5)>(TN('{TICKET TAG:Covers}') * 10))?(TN('{TICKET TAG:Covers}') * 10):(TN('{TICKET ORDER TOTAL EXP:(ODI=True) AND ((MT.Type=Food) OR (MT.Type=Drinks)) AND (OS.GStatus= )}') * 0.5)]

I still have it applying manually but if I have time to play about this weekend I’ll see if I can get it to reliably apply automatically. Unfortunately as it’s been extremely busy thanks to EOHO I don’t really want to introduce new problems.