Customer Loyalty Points Setup [4K with Voiceover]


I am having a problem with printer constraint. What am I missing? I am trying to print a receipt after the loyalty points have paid the ticket. I have tried many different constraints and none have worked.I have used [=TN(’{TICKET TOTAL}’)] == ‘’ & [=TN(’{TICKET TOTAL}’)] == 0. Any suggestions?



[=TN('{BALANCE}')] <= 0

Let me explain some things. These are Printer Template Tags, and as such, they are most often strings even though you might think they are numbers:


For example, {TICKET TOTAL} could contain something like 1,325.23, which is NOT a number - it is a formatted string which contains a comma, which is non-numeric.

As such, this type of comparison will not be True, ever:


This could be True, but only if the Total Amount is 0, and your system is set for 2 decimal-places:

'{TICKET TOTAL}' == '0.00'

{TICKET TOTAL} will contain the Total Amount of the Ticket, whether is is Paid or not.

{BALANCE} on the other hand is the Remaining Amount that is not Paid.

The TN() helper function takes a string input and converts it to a number. If the string is “non-numeric”, or empty, or null, the TN() function will always produce 0

[=TN('1,325.23')] == 1325.23
[=TN('1,325.20')] == 1325.2
[=TN('100.00')] == 100
[=TN('0.00')] == 0
[=TN('fluffy')] == 0

That ^ will never evaluate to True because the TN() function does not return a string; it returns a number.


QMcKay,That worked perfectly! I am learning alot. Thanks for the knowledge, patience and expertise. I need to turn on/off order tags for a certain period of time. I am searching the forum for this now. Can I ask that question here or another topic?


There is no way to “turn off Order Tags” other than to delete the Mappings.

Make another Topic explaining clearly what you are trying to achieve, as in “why” do you want to do that?


I spoke too soon. The expression [=TN(’{BALANCE}’)] <= 0 worked perfectly for a ticket that the points totally paid for. For a ticket that the points partially paid for, the receipt still printed as if the points paid the whole balance.


If you want it to print after points are applied in both full points payment or part points payment why constrain the print action at all?


There are no points applied if you pay the ticket using points. The ticket will print when there is zero balance perfectly. but when there is a balance on the ticket which needs tender, the ticket still prints showing $0.00 due. That is not true. I then can access the payment screen and pay the ticket and another receipt is created showing the points from the payment. i want the ticket to pay, print receipt and close only if the points pay the entire ticket.


I ment paid.

Can you show a screenshot. Cant see how ticket would print 0 balance unless automation mistake which applies full value discount.


how do i show receipt on screen?


Show screenshot of ticket in samba and if you go to teplate it will preview the last ticket.


I sent 2 transactions.One ticket is paid using points, no balance.The other has a balance due.


So whats wrong?
You said it was showing 0 due.
First one is discounted in full,
Other is part discounted and says grand total due 67.25…


The second receipt says grand total due 67.25. But it also says amount tendered 0.00 and change due 0.00 on that receipt. The unclaimed points are 672 because the ticket still has balance and has not been paid. if i pay this ticket another receipt will print showing amount tendered, changed due, and points claimed. i only want one receipt to print when the ticket has 0.00 actual balance or 0.00 grand total due.



These are both correct though… nothing has been tendered, the points are applied as discount not payment. Any there wouldnt be any change as nothing has been tendered…

The points should be like that because you have put the print in before the update points actions… move the print to the last action in the rule.


It is last in the rule. I am thinking i need another type of constraint that will stop the ticket with balance from printing.


Am struggling to follow…
So the ticket will be printed at the end eitherway by default rules.
What/when are you wanting to print?


A ticket with a balance will print 2 receipts. these are the two instances:
1.) when i apply the points and leave a balance that needs to be paid it prints a receipt like it has a zero balance. (but it doesn’t)
2.) when i pay the ticket and close it.
A ticket with a balance should print one receipt. “when i pay the ticket and close it.”


you mean 0 points balance?

It should not the print action is after the points update actions…


that is what is confusing me. there are no loyalty points available and there is a grand total due on the ticket after the points have been applied. but the receipt still prints as you see with a grand total due.