mirror of
https://github.com/bringout/oca-ocb-pos.git
synced 2026-04-23 13:01:59 +02:00
Initial commit: Pos packages
This commit is contained in:
commit
95dfb9edb0
1301 changed files with 264148 additions and 0 deletions
|
|
@ -0,0 +1,84 @@
|
|||
odoo.define('point_of_sale.tour.PosHr', function (require) {
|
||||
'use strict';
|
||||
|
||||
const { PosHr } = require('pos_hr.tour.PosHrTourMethods');
|
||||
const { ProductScreen } = require('point_of_sale.tour.ProductScreenTourMethods');
|
||||
const { TicketScreen } = require('point_of_sale.tour.TicketScreenTourMethods');
|
||||
const { Chrome } = require('point_of_sale.tour.ChromeTourMethods');
|
||||
const { ErrorPopup } = require('point_of_sale.tour.ErrorPopupTourMethods');
|
||||
const { NumberPopup } = require('point_of_sale.tour.NumberPopupTourMethods');
|
||||
const { SelectionPopup } = require('point_of_sale.tour.SelectionPopupTourMethods');
|
||||
const { getSteps, startSteps } = require('point_of_sale.tour.utils');
|
||||
const Tour = require('web_tour.tour');
|
||||
|
||||
startSteps();
|
||||
|
||||
PosHr.check.loginScreenIsShown();
|
||||
PosHr.do.clickLoginButton();
|
||||
SelectionPopup.check.isShown();
|
||||
SelectionPopup.check.hasSelectionItem('Pos Employee1');
|
||||
SelectionPopup.check.hasSelectionItem('Pos Employee2');
|
||||
SelectionPopup.check.hasSelectionItem('Mitchell Admin');
|
||||
SelectionPopup.do.clickItem('Pos Employee1');
|
||||
NumberPopup.check.isShown();
|
||||
NumberPopup.do.pressNumpad('2 5');
|
||||
NumberPopup.check.inputShownIs('••');
|
||||
NumberPopup.do.pressNumpad('8 1');
|
||||
NumberPopup.check.inputShownIs('••••');
|
||||
NumberPopup.do.clickConfirm();
|
||||
ErrorPopup.check.isShown();
|
||||
ErrorPopup.do.clickConfirm();
|
||||
PosHr.do.clickLoginButton();
|
||||
SelectionPopup.do.clickItem('Pos Employee1');
|
||||
NumberPopup.check.isShown();
|
||||
NumberPopup.do.pressNumpad('2 5');
|
||||
NumberPopup.check.inputShownIs('••');
|
||||
NumberPopup.do.pressNumpad('8 0');
|
||||
NumberPopup.check.inputShownIs('••••');
|
||||
NumberPopup.do.clickConfirm();
|
||||
ProductScreen.check.isShown();
|
||||
ProductScreen.do.confirmOpeningPopup();
|
||||
PosHr.check.cashierNameIs('Pos Employee1');
|
||||
PosHr.do.clickCashierName();
|
||||
SelectionPopup.do.clickItem('Mitchell Admin');
|
||||
PosHr.check.cashierNameIs('Mitchell Admin');
|
||||
PosHr.do.clickLockButton();
|
||||
PosHr.do.clickLoginButton();
|
||||
SelectionPopup.do.clickItem('Pos Employee2');
|
||||
NumberPopup.do.pressNumpad('1 2');
|
||||
NumberPopup.check.inputShownIs('••');
|
||||
NumberPopup.do.pressNumpad('3 4');
|
||||
NumberPopup.check.inputShownIs('••••');
|
||||
NumberPopup.do.clickConfirm();
|
||||
ProductScreen.check.isShown();
|
||||
ProductScreen.do.clickHomeCategory();
|
||||
|
||||
// Create orders and check if the ticket list has the right employee for each order
|
||||
// order for employee 2
|
||||
ProductScreen.exec.addOrderline('Desk Pad', '1', '2');
|
||||
ProductScreen.check.totalAmountIs('2.0')
|
||||
Chrome.do.clickTicketButton();
|
||||
TicketScreen.check.nthRowContains(2, 'Pos Employee2');
|
||||
|
||||
// order for employee 1
|
||||
PosHr.do.clickLockButton();
|
||||
PosHr.exec.login('Pos Employee1', '2580');
|
||||
TicketScreen.do.clickNewTicket();
|
||||
ProductScreen.exec.addOrderline('Desk Pad', '1', '4');
|
||||
ProductScreen.check.totalAmountIs('4.0')
|
||||
Chrome.do.clickTicketButton();
|
||||
TicketScreen.check.nthRowContains(2, 'Pos Employee2');
|
||||
TicketScreen.check.nthRowContains(3, 'Pos Employee1');
|
||||
|
||||
// order for admin
|
||||
PosHr.do.clickCashierName();
|
||||
SelectionPopup.do.clickItem('Mitchell Admin');
|
||||
PosHr.check.cashierNameIs('Mitchell Admin');
|
||||
TicketScreen.do.clickNewTicket();
|
||||
ProductScreen.exec.addOrderline('Desk Pad', '1', '8');
|
||||
ProductScreen.check.totalAmountIs('8.0')
|
||||
Chrome.do.clickTicketButton();
|
||||
TicketScreen.check.nthRowContains(4, 'Mitchell Admin');
|
||||
|
||||
Tour.register('PosHrTour', { test: true, url: '/pos/ui' }, getSteps());
|
||||
});
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
odoo.define('pos_hr.tour.PosHrTourMethods', function (require) {
|
||||
'use strict';
|
||||
|
||||
const { createTourMethods } = require('point_of_sale.tour.utils');
|
||||
const { SelectionPopup } = require('point_of_sale.tour.SelectionPopupTourMethods');
|
||||
const { NumberPopup } = require('point_of_sale.tour.NumberPopupTourMethods');
|
||||
|
||||
class Do {
|
||||
clickLoginButton() {
|
||||
return [
|
||||
{
|
||||
content: 'click login button',
|
||||
trigger: '.login-overlay .login-button.select-cashier',
|
||||
},
|
||||
];
|
||||
}
|
||||
clickLockButton() {
|
||||
return [
|
||||
{
|
||||
content: 'click lock button',
|
||||
trigger: '.header-button .lock-button',
|
||||
},
|
||||
];
|
||||
}
|
||||
clickCashierName() {
|
||||
return [
|
||||
{
|
||||
content: 'click cashier name',
|
||||
trigger: '.oe_status .username',
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
class Check {
|
||||
loginScreenIsShown() {
|
||||
return [
|
||||
{
|
||||
content: 'login screen is shown',
|
||||
trigger: '.login-overlay .screen-login .login-body',
|
||||
run: () => {},
|
||||
},
|
||||
];
|
||||
}
|
||||
cashierNameIs(name) {
|
||||
return [
|
||||
{
|
||||
content: `logged cashier is '${name}'`,
|
||||
trigger: `.pos .oe_status .username:contains("${name}")`,
|
||||
run: () => {},
|
||||
},
|
||||
];
|
||||
}
|
||||
}
|
||||
class Execute {
|
||||
login(name, pin) {
|
||||
const res = this._do.clickLoginButton();
|
||||
res.push(...SelectionPopup._do.clickItem(name));
|
||||
if (pin) {
|
||||
res.push(...NumberPopup._do.pressNumpad(pin.split('').join(' ')));
|
||||
res.push(...NumberPopup._do.clickConfirm());
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
return createTourMethods('PosHr', Do, Check, Execute);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue