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
|
odoo.define('pos_reataurant.tour.synchronized_table_management', function (require) {
'use strict';
const { PaymentScreen } = require('point_of_sale.tour.PaymentScreenTourMethods');
const { ReceiptScreen } = require('point_of_sale.tour.ReceiptScreenTourMethods');
const { Chrome } = require('pos_restaurant.tour.ChromeTourMethods');
const { FloorScreen } = require('pos_restaurant.tour.FloorScreenTourMethods');
const { ProductScreen } = require('pos_restaurant.tour.ProductScreenTourMethods');
const { TicketScreen } = require('point_of_sale.tour.TicketScreenTourMethods');
const { getSteps, startSteps } = require('point_of_sale.tour.utils');
const Tour = require('web_tour.tour');
startSteps();
FloorScreen.do.clickTable('T5');
// Create first order
ProductScreen.do.clickDisplayedProduct('Coca-Cola');
ProductScreen.check.selectedOrderlineHas('Coca-Cola');
ProductScreen.do.clickDisplayedProduct('Water');
ProductScreen.check.selectedOrderlineHas('Water');
ProductScreen.check.totalAmountIs('4.40');
// Create 2nd order (paid)
Chrome.do.clickTicketButton();
TicketScreen.do.clickNewTicket();
ProductScreen.do.clickDisplayedProduct('Coca-Cola');
ProductScreen.check.selectedOrderlineHas('Coca-Cola');
ProductScreen.do.clickDisplayedProduct('Minute Maid');
ProductScreen.check.selectedOrderlineHas('Minute Maid');
ProductScreen.check.totalAmountIs('4.40');
ProductScreen.do.clickPayButton();
PaymentScreen.do.clickPaymentMethod('Cash');
PaymentScreen.do.clickValidate();
ReceiptScreen.do.clickNextOrder();
// After clicking next order, floor screen is shown.
// It should have 1 as number of draft synced order.
FloorScreen.check.orderCountSyncedInTableIs('T5', '1');
FloorScreen.do.clickTable('T5');
ProductScreen.check.totalAmountIs('4.40');
// Create another draft order and go back to floor
Chrome.do.clickTicketButton();
TicketScreen.do.clickNewTicket();
ProductScreen.do.clickDisplayedProduct('Coca-Cola');
ProductScreen.check.selectedOrderlineHas('Coca-Cola');
ProductScreen.do.clickDisplayedProduct('Minute Maid');
ProductScreen.check.selectedOrderlineHas('Minute Maid');
Chrome.do.backToFloor();
// At floor screen, there should be 2 synced draft orders
FloorScreen.check.orderCountSyncedInTableIs('T5', '2');
// Delete the first order then go back to floor
FloorScreen.do.clickTable('T5');
ProductScreen.check.isShown();
Chrome.do.clickTicketButton();
TicketScreen.do.deleteOrder('-0001');
Chrome.do.confirmPopup();
TicketScreen.do.selectOrder('-0003');
Chrome.do.backToFloor();
// There should be 1 synced draft order.
FloorScreen.check.orderCountSyncedInTableIs('T5', '1');
Tour.register('pos_restaurant_sync', { test: true, url: '/pos/ui' }, getSteps());
startSteps();
/* pos_restaurant_sync_second_login
*
* This tour should be run after the first tour is done.
*/
// There is one draft synced order from the previous tour
FloorScreen.check.orderCountSyncedInTableIs('T5', '1');
FloorScreen.do.clickTable('T5');
ProductScreen.check.totalAmountIs('4.40');
// Test transfering an order
ProductScreen.do.clickTransferButton();
FloorScreen.do.clickTable('T4');
// Test if products still get merged after transfering the order
ProductScreen.do.clickDisplayedProduct('Coca-Cola');
ProductScreen.check.selectedOrderlineHas('Coca-Cola', '2.0');
ProductScreen.check.totalAmountIs('6.60');
ProductScreen.do.pressNumpad('1');
ProductScreen.check.totalAmountIs('4.40');
ProductScreen.do.clickPayButton();
PaymentScreen.do.clickPaymentMethod('Cash');
PaymentScreen.do.clickValidate();
ReceiptScreen.do.clickNextOrder();
// At this point, there are no draft orders.
FloorScreen.do.clickTable('T2');
ProductScreen.check.isShown();
ProductScreen.check.orderIsEmpty();
ProductScreen.do.clickTransferButton();
FloorScreen.do.clickTable('T4');
ProductScreen.do.clickDisplayedProduct('Coca-Cola');
ProductScreen.check.totalAmountIs('2.20');
Chrome.do.backToFloor();
FloorScreen.check.orderCountSyncedInTableIs('T4', '1');
Tour.register('pos_restaurant_sync_second_login', { test: true, url: '/pos/ui' }, getSteps());
});
|