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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
odoo.define('point_of_sale.tour.OrderManagementScreen', function (require) {
'use strict';
const { OrderManagementScreen } = require('point_of_sale.tour.OrderManagementScreenTourMethods');
const { ProductScreen } = require('point_of_sale.tour.ProductScreenTourMethods');
const { PaymentScreen } = require('point_of_sale.tour.PaymentScreenTourMethods');
const { ClientListScreen } = require('point_of_sale.tour.ClientListScreenTourMethods');
const { TicketScreen } = require('point_of_sale.tour.TicketScreenTourMethods');
const { Chrome } = require('point_of_sale.tour.ChromeTourMethods');
const { makeFullOrder } = require('point_of_sale.tour.CompositeTourMethods');
const { getSteps, startSteps } = require('point_of_sale.tour.utils');
var Tour = require('web_tour.tour');
// signal to start generating steps
// when finished, steps can be taken from getSteps
startSteps();
// Go by default to home category
ProductScreen.do.clickHomeCategory();
// make one order and check if it can be seen from the management screen.
// order 0001
makeFullOrder({ orderlist: [['Whiteboard Pen', '5', '6']], payment: ['Cash', '30'] });
Chrome.do.clickOrderManagementButton();
OrderManagementScreen.check.isShown();
OrderManagementScreen.check.orderlistHas({ orderName: '-0001', total: '30' });
OrderManagementScreen.do.clickBack();
// make multiple orders and check them in the management screen.
// order 0002
makeFullOrder({
orderlist: [
['Desk Pad', '1', '2'],
['Monitor Stand', '3', '4'],
['Whiteboard Pen', '5', '6'],
],
payment: ['Bank', '44'],
});
// order 0003
makeFullOrder({
orderlist: [
['Desk Pad', '1', '2'],
['Whiteboard Pen', '5', '6'],
],
customer: 'Colleen Diaz',
payment: ['Cash', '50'],
});
// order 0004
makeFullOrder({
orderlist: [
['Monitor Stand', '3', '4'],
['Whiteboard Pen', '5', '6'],
],
payment: ['Bank', '42'],
});
Chrome.do.clickOrderManagementButton();
OrderManagementScreen.check.isShown();
OrderManagementScreen.check.orderlistHas({ orderName: '-0002', total: '44' });
OrderManagementScreen.check.orderlistHas({
orderName: '0003',
total: '32',
customer: 'Colleen Diaz',
});
OrderManagementScreen.check.orderlistHas({ orderName: '-0004', total: '42' });
// click the currently active order
OrderManagementScreen.do.clickOrder('-0005');
ProductScreen.check.isShown();
// Add 2 orders, they should appear in order management screen
// order 0006
Chrome.do.clickTicketButton();
TicketScreen.do.clickNewTicket();
ProductScreen.exec.addOrderline('Whiteboard Pen', '66', '6');
// order 0007, should be at payment screen
Chrome.do.clickTicketButton();
TicketScreen.do.clickNewTicket();
ProductScreen.exec.addOrderline('Monitor Stand', '55', '5');
ProductScreen.do.clickCustomerButton();
ClientListScreen.exec.setClient('Azure Interior');
ProductScreen.do.clickPayButton();
Chrome.do.clickOrderManagementButton();
OrderManagementScreen.check.orderlistHas({ orderName: '-0006', total: '396' });
OrderManagementScreen.check.orderlistHas({
orderName: '-0007',
total: '275',
customer: 'Azure Interior',
});
// select a paid order, order row should be highlighted and should show order details
OrderManagementScreen.do.clickOrder('-0004');
OrderManagementScreen.check.highlightedOrderRowHas('-0004');
OrderManagementScreen.check.orderDetailsHas({
lines: [
{ product: 'Monitor Stand', quantity: '3' },
{ product: 'Whiteboard Pen', quantity: '5' },
],
total: '42',
});
OrderManagementScreen.do.clickOrder('-0001');
OrderManagementScreen.check.highlightedOrderRowHas('-0001');
// 0004 should not be highlighted anymore
OrderManagementScreen.check.orderRowIsNotHighlighted('-0004');
OrderManagementScreen.check.orderDetailsHas({
lines: [{ product: 'Whiteboard Pen', quantity: '5' }],
total: '30',
});
// Select a paid order then invoice it. The selected order should remain selected
// and will contain a new customer. After invoice, the current customer should be removed.
// TODO: enable the following steps once the issue in invoicing is solved.
// OrderManagementScreen.do.clickInvoiceButton();
// Chrome.do.confirmPopup();
// ClientListScreen.check.isShown();
// ClientListScreen.exec.setClient('Jesse Brown');
// OrderManagementScreen.check.highlightedOrderRowHas('Jesse Brown');
// Check if order 0007 is selected, it should be at payment screen
OrderManagementScreen.do.clickOrder('-0007');
PaymentScreen.check.isShown();
Chrome.do.clickOrderManagementButton();
OrderManagementScreen.check.isShown();
OrderManagementScreen.do.clickOrder('-0003');
OrderManagementScreen.do.clickPrintReceiptButton();
OrderManagementScreen.check.reprintReceiptIsShown();
OrderManagementScreen.check.receiptChangeIs('18.0');
OrderManagementScreen.check.receiptOrderDataContains('-0003');
OrderManagementScreen.check.receiptAmountIs('32.0');
OrderManagementScreen.do.closeReceipt();
OrderManagementScreen.check.isNotHidden();
Tour.register('OrderManagementScreenTour', { test: true, url: '/pos/ui' }, getSteps());
});
|