1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
odoo.define('pos_restaurant.tour.TipScreen', function (require) {
'use strict';
const { ProductScreen } = require('point_of_sale.tour.ProductScreenTourMethods');
const { PaymentScreen } = require('point_of_sale.tour.PaymentScreenTourMethods');
const { ReceiptScreen } = require('point_of_sale.tour.ReceiptScreenTourMethods');
const { FloorScreen } = require('pos_restaurant.tour.FloorScreenTourMethods');
const { TicketScreen } = require('point_of_sale.tour.TicketScreenTourMethods');
const { TipScreen } = require('pos_restaurant.tour.TipScreenTourMethods');
const { NumberPopup } = require('point_of_sale.tour.NumberPopupTourMethods');
const { Chrome } = require('pos_restaurant.tour.ChromeTourMethods');
const { getSteps, startSteps } = require('point_of_sale.tour.utils');
var Tour = require('web_tour.tour');
startSteps();
// Create order that is synced when draft.
// order 1
FloorScreen.do.clickTable('T2');
ProductScreen.exec.addOrderline('Minute Maid', '1', '2');
ProductScreen.check.totalAmountIs('2.0');
Chrome.do.backToFloor();
FloorScreen.check.orderCountSyncedInTableIs('T2', '1');
FloorScreen.do.clickTable('T2');
ProductScreen.check.totalAmountIs('2.0');
ProductScreen.do.clickPayButton();
PaymentScreen.do.clickPaymentMethod('Bank');
PaymentScreen.do.clickValidate();
TipScreen.check.isShown();
Chrome.do.clickTicketButton();
TicketScreen.do.clickNewTicket();
// order 2
ProductScreen.exec.addOrderline('Coca-Cola', '2', '2');
ProductScreen.check.totalAmountIs('4.0');
Chrome.do.backToFloor();
FloorScreen.check.orderCountSyncedInTableIs('T2', '1');
Chrome.do.clickTicketButton();
TicketScreen.check.nthRowContains('2', 'Tipping');
TicketScreen.do.clickDiscard();
// Create without syncing the draft.
// order 3
FloorScreen.do.clickTable('T5');
ProductScreen.exec.addOrderline('Minute Maid', '3', '2');
ProductScreen.check.totalAmountIs('6.0');
ProductScreen.do.clickPayButton();
PaymentScreen.do.clickPaymentMethod('Bank');
PaymentScreen.do.clickValidate();
TipScreen.check.isShown();
Chrome.do.clickTicketButton();
TicketScreen.do.clickNewTicket();
// order 4
ProductScreen.exec.addOrderline('Coca-Cola', '4', '2');
ProductScreen.check.totalAmountIs('8.0');
Chrome.do.backToFloor();
FloorScreen.check.orderCountSyncedInTableIs('T5', '1');
Chrome.do.clickTicketButton();
TicketScreen.check.nthRowContains('4', 'Tipping');
// Tip 20% on order1
TicketScreen.do.selectOrder('-0001');
TipScreen.check.isShown();
TipScreen.check.totalAmountIs('2.0');
TipScreen.check.percentAmountIs('15%', '0.30');
TipScreen.check.percentAmountIs('20%', '0.40');
TipScreen.check.percentAmountIs('25%', '0.50');
TipScreen.do.clickPercentTip('20%');
TipScreen.check.inputAmountIs('0.40')
Chrome.do.backToFloor();
FloorScreen.check.isShown();
Chrome.do.clickTicketButton();
// Tip 25% on order3
TicketScreen.do.selectOrder('-0003');
TipScreen.check.isShown();
TipScreen.check.totalAmountIs('6.0');
TipScreen.check.percentAmountIs('15%', '0.90');
TipScreen.check.percentAmountIs('20%', '1.20');
TipScreen.check.percentAmountIs('25%', '1.50');
TipScreen.do.clickPercentTip('25%');
TipScreen.check.inputAmountIs('1.50');
Chrome.do.backToFloor();
FloorScreen.check.isShown();
Chrome.do.clickTicketButton();
// finalize order 4 then tip custom amount
TicketScreen.do.selectOrder('-0004');
ProductScreen.check.totalAmountIs('8.0');
ProductScreen.do.clickPayButton();
PaymentScreen.do.clickPaymentMethod('Bank');
PaymentScreen.do.clickValidate();
TipScreen.check.isShown();
TipScreen.check.totalAmountIs('8.0');
TipScreen.check.percentAmountIs('15%', '1.20');
TipScreen.check.percentAmountIs('20%', '1.60');
TipScreen.check.percentAmountIs('25%', '2.00');
TipScreen.do.setCustomTip('1.00');
TipScreen.check.inputAmountIs('1.00')
Chrome.do.backToFloor();
FloorScreen.check.isShown();
// settle tips here
Chrome.do.clickTicketButton();
TicketScreen.do.selectFilter('Tipping');
TicketScreen.do.settleTips();
TicketScreen.do.selectFilter('All Tickets');
TicketScreen.check.nthRowContains(2, 'Ongoing');
// tip order2 during payment
// tip screen should not show after validating payment screen
TicketScreen.do.selectOrder('-0002');
ProductScreen.do.clickPayButton();
PaymentScreen.do.clickTipButton();
NumberPopup.check.isShown();
NumberPopup.do.pressNumpad('1');
NumberPopup.check.inputShownIs('1');
NumberPopup.do.clickConfirm();
PaymentScreen.do.clickPaymentMethod('Cash');
PaymentScreen.do.clickValidate();
ReceiptScreen.check.isShown();
Tour.register('PosResTipScreenTour', { test: true, url: '/pos/ui' }, getSteps());
});
|