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.