UK legislation Challenge 25

@emre can you see the error in this report, instead of just listing the orders it duplicates the ticket number, date etc first and then adds the orders

[Challenge 25 Check Log:3,2,2 ,4, 3,3]
>Ticket Number|Date|Time|ID Type Seen|ID Number|DOB
>{REPORT TICKET DETAILS:T.TicketNumber,T.Date,T.Time,TT.ID Type Seen,TT.ID Number,TTD.Date of Birth:(TY=Challenge 25 - ID Confirmed):T.Id==$1}
{REPORT ORDER DETAILS:O.MenuItemName.asc:T.Id==$1::,}

You incorrectly splitted expression with column char. I’m mobile couldn’t ss that.

Thats what mine was doing show us your rules that have to do with the age check in them

where abouts I cant see it?

I copied your original code and added my extra bits in, its also repeating the same transactions

hmm its the same.

Maybe just needs a reboot after being programmed?

It worked then didn’t etc

im sure i had to change {DATE} or something related to that i cant remember now

gone to bed now, but it deffo says {DATE} ill check the Action fields tomorrow to see if there is something that ‘could’ be changed?

is it to do with local date formatting? my system set to ‘dd MM yyyy’ but the samba setup is set to ‘MM dd yyyy’ ? so when it deducts 216 months is isnt actually doing it correct?

yes it could be that might have been my issue

sorry to bother you again @emre

in regards to the above tutorial:

We have the constraint [=ADM('{TICKET TAG:Customer Birthday}',216)]

Because my local settings would be ‘dd MM yyyy’, does that mean that my ask question for this particular field of asking for birthday should be:

[?Enter Customer Birthday;(0?[1-9]|[12]\d|30|31) ([1-9]|10|11|12) \d{2}\d{2}?]

instead of:

[?Enter Customer Birthday;([1-9]|10|11|12) (0?[1-9]|[12]\d|30|31) \d{2}\d{2}?]

Which is suggested?


fixed it, i had to move the (TY=Challenge 25 - ID Confirmed) part on the line that starts with the @ symbol

[Challenge 25 Check Log:3,2,2 ,4, 3,3,3]
@{REPORT TICKET DETAILS:T.Id:(TY=Challenge 25 - ID Confirmed):,}
>Ticket Number|Date|Time|ID Type Seen|ID Number|DOB|Ticket Total
>{REPORT TICKET DETAILS:T.TicketNumber,T.Date,T.Time,TT.ID Type Seen,TT.ID Number,TTD.Date of Birth,T.TotalAmount:T.Id==$1}
{REPORT ORDER DETAILS:O.MenuItemName.asc:T.Id==$1::,}

I have also solved it.

The date had to be changed round AND the rule had to be changed from ‘MATCHES’ to ‘MATCHES ALL’

Now I have reproduced it for v5 ill redo a tutorial.


Also had to add a new rule where ‘MATCHES’ {DATE} too as it would not verify if it was someones 18th birthday

Here is a DB file of what ive done. All completed and working.

3 steps before you install:

1> Settings > Program Settings > General > Product Tag Captions > Add Confirm Age

2> You will need to create a product called Verify Age add True in the “Confirm Age” Product Tag and set a portion as an open price (0.00)

3> Tickets> Ticket Types> Choose your ticket> General Settings> then check the “Allow Zero Priced Orders”

Then you can import it :slight_smile: (2.5 KB)

You well then be able to create a report for both approved ID and rejected ID. This format is in dd MM yyyy If your local setting on your till is MM dd yyyy you will have to edit the question in the rule Age Check_Mark Ticket as Unconfirmed when Age Check required item added action Age Check_Ticket Tag.

dd MM yyyy = [?Enter Customer Birthday;(0?[1-9]|[12]\d|30|31) ([1-9]|10|11|12) \d{2}\d{2}?;;ON]

MM dd yyyy = [?Enter Customer Birthday;([1-9]|10|11|12) (0?[1-9]|[12]\d|30|31) \d{2}\d{2}?;;ON]

The report has been made so that it prints on A4 paper rather than Till Receipt


Cant work this out…

I import the above file that I made into the working system and the DOB throws me this every time?

Ive looked over what I can think of?

Looks like it is not interpreting the DOB as a Date, something like Excel sometimes does unless you explicitly set the cell format type.

Check the regional settings on the computer for Date format being used and change it to match your Dev system if necessary.

Show the Report again.

Mabe try something like:

FD([TTD.Date of Birth],'dd MM yyyy')

That ^ might not be completely correct, but you get the idea.

Instead of doing that in the Field selection list, you might alternatively need to set the formatting in the report tag after the last colon such as:

1 Like

Q’s right thats the tag you need in the report, theres a specific tag for ticket tag date which is TTD. So use that instead, so my ticket tag is called Date of Birth so the report format for it is:

TTD.Date of Birth

I didnt need all the extra formatting around it i assume you just used TT. so just replace that with TTD. and it should work fine

1 Like

This is my report settings, youll see my TTD.Date of Birth and it works perfect

[Challenge 25 Check Log:3,2,2 ,4, 3,3,3]
@{REPORT TICKET DETAILS:T.Id:(TY=Challenge 25 - ID Confirmed):,}

Ticket Number|Date|Time|ID Type Seen|ID Number|DOB|Ticket Total
{REPORT TICKET DETAILS:T.TicketNumber,T.Date,T.Time,TT.ID Type Seen,TT.ID Number,TTD.Date of Birth,T.TotalAmount:T.Id==$1}

1 Like

yup yup, will edit the upload. Thanks guys

so, from reading below this is actually a Scottish law and not UK Law?



The ability to determine the age of young people has become increasingly difficult over the years. This has led to problems for both retailers and young people when trying to purchase and sell age related goods.

In October 2011, the Licensing (Scotland) Act 2005 was amended by the introduction of a new mandatory condition for all premises licences and occasional licences. This provides that there must be an age verification policy in relation to the sale of alcohol on the premises. The section has set a minimum age of 25 years for the policy where it appears to the person selling the alcohol that the customer may be under the age of 25 years.

Only the production of proof of age documents specified by law will satisfy the purpose of the age verification policy. With effect from 1st October 2013, these are:

(i) A passport
(ii) A European Union photocard driving licence
(iii) A Ministry of Defence Form 90 (Defence Identity Card)
(iv) A photographic identity card bearing the national Proof of Age
Standards Scheme (PASS) hologram
(v) A national identity card issued by a European Union member state (other than the United Kingdom), Norway, Iceland, Liechtenstein or Switzerland, or
(vi) A Biometric Immigration Document.

It is for each business to decide which of these approved forms of identification it will accept in terms of the age verification policy. They need not all be accepted. It would be very prudent to exclude any type of document with which staff are not wholly familiar. Only the forms of identification acceptable to the business should be included in any declaration form signed by staff serving alcohol. Examples of the forms of proof of age are available from and are contained in

Proposing the introduction of Challenge 25 in the Scottish Parliament the Scottish Government’s Deputy First Minister, Nicola Sturgeon MSP, commented: “Age verification policies such as challenge 25 can help to empower staff to challenge customers where there is doubt about their age and to ensure that customers are more aware that they are likely to be asked to show proof of age. That can help to avoid confrontation…” [The Scottish Parliament, 22nd September 2010]

Agree, and was quite annoyed at the time the officer giving me false information. However it is still classed as “Good Practise” in the UK so we are continuing to do it anyway.