-
Notifications
You must be signed in to change notification settings - Fork 12
4. Simplifying Payments
This document continues from 3. Choosing Tables tutorial. Please complete it before starting this tutorial.
On previous tutorial we implemented table selection function for Ticket Cards. On this tutorial we'll implement a payment dialog to simplify adding payments to Ticket Cards.
First we'll add a Payment Button for Ticket Cards. To do that open Main Menu and click Card Types menu item.
Select Tickets to edit Ticket Card Type.

We'll add Payment button next to Table button. To do that insert a new line under Table Button definition and type Payment=Add Payment. This means we'll have a button labelled as Payment and it will execute Add Payment command when clicked.

Click on Check Mark button to save the Card Type and edit a Ticket to test if button appears correctly.
You should be able see Payment button next to Table button.

We'll need two rule functions. One of them will display the dialog when button is clicked and the other one will add payment card when payment dialog is closed.
From Main Menu Click on Rules and edit Default Rules we added on the previous tutorial.

Paste AskPayment and SetPayment functions under Table Selection Functions.
rule AskPayment {
when {
r: Result;
s: State;
a: Action a.type == 'EXECUTE_COMMAND' from s.action;
a: Action a.data.name == 'Add Payment' from s.action;
}
then {
r.add('ASK_QUESTION',{
question:'Enter Payment',
tag:'MyPayment',
parameters: {
'type': [
'Cash',
'Credit Card',
'Voucher'
],
'amount': Number(s.card.balance)
}
});
}
}
rule SetPayment {
when {
r: Result;
s: State;
a: Action a.type == 'ASK_QUESTION' from s.action;
a: Action a.data.tag == 'MyPayment' from s.action;
s: State s.state.get('amount') > 0;
}
then {
r.add('CREATE_CARD',{type:'Payment'});
r.add('SET_CARD_TAG',{
'value': s.state.get('type'),
'amount': s.state.get('amount'),
'target': 'Wallet.' + s.state.get('type')
});
}
}
Click on Check Mark button to save the rule.
Now edit ticket and click on Payment button to test if it functions properly.

Select a Payment Type click Submit button to close the dialog. You can change the payment amount if you want.
PM-POS automatically adds the payment card.

You'll notice we changed Account Naming for payments. Cash payments will go to Wallet.Cash account instead of Wallet account. However 5 Cash payment we created on previous tutorial still appears have Wallet. To change it you can click on Edit Cash command from the Card Menu and change Wallet to Wallet.Cash.

This is how we edit existing tags.
Click Check Mark button to submit your Ticket Card.