diff --git a/addons/pos_restaurant/data/pos_restaurant_demo.xml b/addons/pos_restaurant/data/pos_restaurant_demo.xml index b98af6ec053..3720ad71347 100644 --- a/addons/pos_restaurant/data/pos_restaurant_demo.xml +++ b/addons/pos_restaurant/data/pos_restaurant_demo.xml @@ -214,7 +214,7 @@ - T1 + 1 4 rgb(53,211,116) @@ -226,7 +226,7 @@ - T2 + 2 4 rgb(53,211,116) @@ -238,7 +238,7 @@ - T3 + 3 4 rgb(53,211,116) @@ -250,7 +250,7 @@ - T4 + 4 4 rgb(53,211,116) @@ -262,7 +262,7 @@ - T5 + 5 4 rgb(53,211,116) @@ -274,7 +274,7 @@ - T6 + 6 4 rgb(53,211,116) @@ -286,7 +286,7 @@ - T7 + 7 4 rgb(235,109,109) @@ -298,7 +298,7 @@ - T8 + 8 4 rgb(235,109,109) @@ -310,7 +310,7 @@ - T9 + 9 4 rgb(235,109,109) @@ -322,7 +322,7 @@ - T10 + 10 4 rgb(235,109,109) @@ -334,7 +334,7 @@ - T11 + 11 4 rgb(78,210,190) @@ -356,7 +356,7 @@ - T1 + 1 2 rgb(53,211,116) @@ -368,7 +368,7 @@ - T2 + 2 2 rgb(53,211,116) @@ -380,7 +380,7 @@ - T3 + 3 2 rgb(53,211,116) @@ -392,7 +392,7 @@ - T4 + 4 2 rgb(53,211,116) @@ -406,7 +406,7 @@ - T5 + 5 2 rgb(53,211,116) @@ -418,7 +418,7 @@ - T6 + 6 2 rgb(53,211,116) @@ -430,7 +430,7 @@ - T7 + 7 2 rgb(53,211,116) @@ -442,7 +442,7 @@ - T8 + 8 2 rgb(53,211,116) @@ -456,7 +456,7 @@ - T9 + 9 4 rgb(235,191,109) @@ -468,7 +468,7 @@ - T9 + 9 4 rgb(235,191,109) @@ -480,7 +480,7 @@ - T10 + 10 4 rgb(235,191,109) @@ -492,7 +492,7 @@ - T11 + 11 4 rgb(235,191,109) @@ -504,7 +504,7 @@ - T12 + 12 4 rgb(235,191,109) diff --git a/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.js b/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.js index e0b655976c6..a4d1edb8028 100644 --- a/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.js +++ b/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.js @@ -78,17 +78,99 @@ export class FloorScreen extends Component { this.state.selectedTableId = null; } async _createTableHelper(copyTable) { + let existingTable = this.activeFloor.tables; let newTable; if (copyTable) { newTable = Object.assign({}, copyTable); newTable.position_h += 10; newTable.position_v += 10; } else { + let posV = 0; + let posH = 10; + const referenceScreenWidth = 1180; + const spaceBetweenTable = 15 * (screen.width/referenceScreenWidth); + const h_min = spaceBetweenTable; + const h_max = screen.width; + const v_max = screen.height; + let potentialWidth = 100 * (h_max/referenceScreenWidth); + if (potentialWidth > 130) { + potentialWidth = 130; + } else if (potentialWidth < 75) { + potentialWidth = 75; + } + const heightTable = potentialWidth; + const widthTable = potentialWidth; + let positionTable = []; + + existingTable.forEach((table) => { + positionTable.push([table.position_v, table.position_v + table.height, table.position_h, table.position_h + table.width]) + }) + + positionTable.sort((tableA, tableB) => { + if (tableA[0] < tableB[0]) { + return -1; + } else if (tableA[0] > tableB[0]) { + return 1; + } else if (tableA[2] < tableB[2]) { + return -1; + } else { + return 1; + } + }); + + let actualHeight = 100 + let impossible = true; + + while(actualHeight <= (v_max - heightTable - spaceBetweenTable) && impossible) { + let tableIntervals = [[h_min, h_min, v_max], [h_max, h_max, v_max]]; + for (let i = 0; i < positionTable.length; i++) { + if (positionTable[i][0] >= (actualHeight + heightTable + spaceBetweenTable)) { + continue; + } else if ((positionTable[i][1] + spaceBetweenTable) <= actualHeight) { + continue; + } else { + tableIntervals.push([positionTable[i][2], positionTable[i][3], positionTable[i][1]]); + } + } + + tableIntervals.sort((a, b) => { + if (a[0] < b[0]) { + return -1; + } else if (a[0] > b[0]) { + return 1; + } else if (a[1] < b[1]) { + return -1; + } else { + return 1; + } + }); + + let nextHeight = v_max; + for (let i = 0; i < tableIntervals.length - 1; i++) { + if (tableIntervals[i][2] < nextHeight) { + nextHeight = tableIntervals[i][2]; + } + + if (tableIntervals[i+1][0] - tableIntervals[i][1] > widthTable + spaceBetweenTable) { + impossible = false; + posV = actualHeight; + posH = tableIntervals[i][1] + spaceBetweenTable; + break; + } + } + actualHeight = nextHeight + spaceBetweenTable; + } + + if (impossible) { + posV = positionTable[0][0] + 10; + posH = positionTable[0][2] + 10; + } + newTable = { - position_v: 100, - position_h: 100, - width: 75, - height: 75, + position_v: posV, + position_h: posH, + width: widthTable, + height: heightTable, shape: "square", seats: 1, color: "rgb(53, 211, 116)", @@ -112,7 +194,7 @@ export class FloorScreen extends Component { } else if (this._lastName) { this._lastName.num += 1; } else { - this._lastName = { num: 1, str: "T" }; + this._lastName = { num: 1, str: "" }; } return "" + this._lastName.str + this._lastName.num; } diff --git a/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.scss b/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.scss index 0a5265f8937..48b436cddbf 100644 --- a/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.scss +++ b/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.scss @@ -43,21 +43,6 @@ background-size: cover; transition: all 300ms ease-in-out; - .tables { - position: relative; - --scale: 1; - transform: scale(var(--scale)); - - @media screen and (min-width: 1024px) { - max-width: 1024px; - margin: auto; - max-height: 540px; - border-radius: 0px 0px 6px 6px; - border: dashed 2px rgba(0,0,0,0.1); - border-top: none; - height: 100%; - } - } // Should probably be moved to table.scss but currently the selectors are too generic .table { position: absolute; diff --git a/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.xml b/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.xml index 899cb19b750..1784b660505 100644 --- a/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.xml +++ b/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.xml @@ -26,7 +26,7 @@ button in the editing toolbar to create new tables. -
+
diff --git a/addons/pos_restaurant/static/tests/tours/ControlButtons.tour.js b/addons/pos_restaurant/static/tests/tours/ControlButtons.tour.js index e4018d66f85..bf6a0d6bfe6 100644 --- a/addons/pos_restaurant/static/tests/tours/ControlButtons.tour.js +++ b/addons/pos_restaurant/static/tests/tours/ControlButtons.tour.js @@ -15,16 +15,16 @@ import { registry } from "@web/core/registry"; startSteps(); // Test TransferOrderButton -FloorScreen.do.clickTable("T2"); +FloorScreen.do.clickTable("2"); ProductScreen.exec.addOrderline("Water", "5", "2", "10.0"); ProductScreen.do.clickTransferButton(); -FloorScreen.do.clickTable("T4"); +FloorScreen.do.clickTable("4"); ProductScreen.do.clickOrderline("Water", "5", "2"); Chrome.do.backToFloor(); -FloorScreen.do.clickTable("T2"); +FloorScreen.do.clickTable("2"); ProductScreen.check.orderIsEmpty(); Chrome.do.backToFloor(); -FloorScreen.do.clickTable("T4"); +FloorScreen.do.clickTable("4"); ProductScreen.do.clickOrderline("Water", "5", "2"); // Test SplitBillButton diff --git a/addons/pos_restaurant/static/tests/tours/FloorScreen.tour.js b/addons/pos_restaurant/static/tests/tours/FloorScreen.tour.js index 1fadfb7df14..7c0d024a284 100644 --- a/addons/pos_restaurant/static/tests/tours/FloorScreen.tour.js +++ b/addons/pos_restaurant/static/tests/tours/FloorScreen.tour.js @@ -14,21 +14,21 @@ startSteps(); // check floors if they contain their corresponding tables FloorScreen.check.selectedFloorIs("Main Floor"); -FloorScreen.check.hasTable("T2"); -FloorScreen.check.hasTable("T4"); -FloorScreen.check.hasTable("T5"); +FloorScreen.check.hasTable("2"); +FloorScreen.check.hasTable("4"); +FloorScreen.check.hasTable("5"); FloorScreen.do.clickFloor("Second Floor"); -FloorScreen.check.hasTable("T3"); -FloorScreen.check.hasTable("T1"); +FloorScreen.check.hasTable("3"); +FloorScreen.check.hasTable("1"); // clicking table in active mode does not open product screen // instead, table is selected FloorScreen.do.clickEdit(); FloorScreen.check.editModeIsActive(true); -FloorScreen.do.clickTable("T3"); -FloorScreen.check.selectedTableIs("T3"); -FloorScreen.do.clickTable("T1"); -FloorScreen.check.selectedTableIs("T1"); +FloorScreen.do.clickTable("3"); +FloorScreen.check.selectedTableIs("3"); +FloorScreen.do.clickTable("1"); +FloorScreen.check.selectedTableIs("1"); // switching floor in edit mode deactivates edit mode FloorScreen.do.clickFloor("Main Floor"); @@ -38,62 +38,62 @@ FloorScreen.check.editModeIsActive(true); // test add table FloorScreen.do.clickAddTable(); -FloorScreen.check.selectedTableIs("T1"); +FloorScreen.check.selectedTableIs("1"); FloorScreen.do.clickRename(); TextInputPopup.check.isShown(); -TextInputPopup.do.inputText("T100"); +TextInputPopup.do.inputText("100"); TextInputPopup.do.clickConfirm(); -FloorScreen.check.selectedTableIs("T100"); +FloorScreen.check.selectedTableIs("100"); // test duplicate table FloorScreen.do.clickDuplicate(); -// new table is already named T101 -FloorScreen.check.selectedTableIs("T101"); +// new table is already named 101 +FloorScreen.check.selectedTableIs("101"); FloorScreen.do.clickRename(); TextInputPopup.check.isShown(); -TextInputPopup.do.inputText("T1111"); +TextInputPopup.do.inputText("1111"); TextInputPopup.do.clickConfirm(); -FloorScreen.check.selectedTableIs("T1111"); +FloorScreen.check.selectedTableIs("1111"); // switch floor, switch back and check if // the new tables are still there FloorScreen.do.clickFloor("Second Floor"); FloorScreen.check.editModeIsActive(false); -FloorScreen.check.hasTable("T3"); -FloorScreen.check.hasTable("T1"); +FloorScreen.check.hasTable("3"); +FloorScreen.check.hasTable("1"); FloorScreen.do.clickFloor("Main Floor"); -FloorScreen.check.hasTable("T2"); -FloorScreen.check.hasTable("T4"); -FloorScreen.check.hasTable("T5"); -FloorScreen.check.hasTable("T100"); -FloorScreen.check.hasTable("T1111"); +FloorScreen.check.hasTable("2"); +FloorScreen.check.hasTable("4"); +FloorScreen.check.hasTable("5"); +FloorScreen.check.hasTable("100"); +FloorScreen.check.hasTable("1111"); // test delete table FloorScreen.do.clickEdit(); FloorScreen.check.editModeIsActive(true); -FloorScreen.do.clickTable("T2"); -FloorScreen.check.selectedTableIs("T2"); +FloorScreen.do.clickTable("2"); +FloorScreen.check.selectedTableIs("2"); FloorScreen.do.clickTrash(); Chrome.do.confirmPopup(); // change number of seats -FloorScreen.do.clickTable("T4"); -FloorScreen.check.selectedTableIs("T4"); +FloorScreen.do.clickTable("4"); +FloorScreen.check.selectedTableIs("4"); FloorScreen.do.clickSeats(); NumberPopup.do.pressNumpad("Backspace 9"); NumberPopup.check.inputShownIs("9"); NumberPopup.do.clickConfirm(); -FloorScreen.check.tableSeatIs("T4", "9"); +FloorScreen.check.tableSeatIs("4", "9"); // change number of seat when the input is already selected -FloorScreen.do.clickTable("T4"); -FloorScreen.check.selectedTableIs("T4"); +FloorScreen.do.clickTable("4"); +FloorScreen.check.selectedTableIs("4"); FloorScreen.do.clickSeats(); NumberPopup.do.pressNumpad("1 5"); NumberPopup.check.inputShownIs("15"); NumberPopup.do.clickConfirm(); -FloorScreen.check.tableSeatIs("T4", "15"); +FloorScreen.check.tableSeatIs("4", "15"); // change shape FloorScreen.do.changeShapeTo("round"); @@ -101,16 +101,16 @@ FloorScreen.do.changeShapeTo("round"); // Opening product screen in main floor should go back to main floor FloorScreen.do.clickEdit(); FloorScreen.check.editModeIsActive(false); -FloorScreen.check.tableIsNotSelected("T4"); -FloorScreen.do.clickTable("T4"); +FloorScreen.check.tableIsNotSelected("4"); +FloorScreen.do.clickTable("4"); ProductScreen.check.isShown(); -Chrome.check.backToFloorTextIs("Main Floor", "T4"); +Chrome.check.backToFloorTextIs("Main Floor", "4"); Chrome.do.backToFloor(); // Opening product screen in second floor should go back to second floor FloorScreen.do.clickFloor("Second Floor"); -FloorScreen.check.hasTable("T3"); -FloorScreen.do.clickTable("T3"); -Chrome.check.backToFloorTextIs("Second Floor", "T3"); +FloorScreen.check.hasTable("3"); +FloorScreen.do.clickTable("3"); +Chrome.check.backToFloorTextIs("Second Floor", "3"); registry.category("web_tour.tours").add("FloorScreenTour", { test: true, url: "/pos/ui", steps: getSteps() }); diff --git a/addons/pos_restaurant/static/tests/tours/SplitBillScreen.tour.js b/addons/pos_restaurant/static/tests/tours/SplitBillScreen.tour.js index 9656c25f402..f1903e7a548 100644 --- a/addons/pos_restaurant/static/tests/tours/SplitBillScreen.tour.js +++ b/addons/pos_restaurant/static/tests/tours/SplitBillScreen.tour.js @@ -13,7 +13,7 @@ import { registry } from "@web/core/registry"; // when finished, steps can be taken from getSteps startSteps(); -FloorScreen.do.clickTable("T2"); +FloorScreen.do.clickTable("2"); ProductScreen.do.confirmOpeningPopup(); ProductScreen.exec.addOrderline("Water", "5", "2", "10.0"); ProductScreen.exec.addOrderline("Minute Maid", "3", "2", "6.0"); @@ -53,12 +53,12 @@ registry.category("web_tour.tours").add("SplitBillScreenTour", { test: true, url startSteps(); -FloorScreen.do.clickTable("T2"); +FloorScreen.do.clickTable("2"); ProductScreen.exec.addOrderline("Water", "1", "2.0"); ProductScreen.exec.addOrderline("Minute Maid", "1", "2.0"); ProductScreen.exec.addOrderline("Coca-Cola", "1", "2.0"); Chrome.do.backToFloor(); -FloorScreen.do.clickTable("T2"); +FloorScreen.do.clickTable("2"); ProductScreen.do.clickSplitBillButton(); SplitBillScreen.do.clickOrderline("Water"); diff --git a/addons/pos_restaurant/static/tests/tours/TicketScreen.tour.js b/addons/pos_restaurant/static/tests/tours/TicketScreen.tour.js index 226e8cb1649..583426b4f46 100644 --- a/addons/pos_restaurant/static/tests/tours/TicketScreen.tour.js +++ b/addons/pos_restaurant/static/tests/tours/TicketScreen.tour.js @@ -16,7 +16,7 @@ TicketScreen.check.noNewTicketButton(); TicketScreen.do.clickDiscard(); // Deleting the last order in the table brings back to floorscreen -FloorScreen.do.clickTable("T4"); +FloorScreen.do.clickTable("4"); ProductScreen.check.isShown(); Chrome.do.clickTicketButton(); TicketScreen.check.nthRowContains(2, "-0001"); @@ -25,7 +25,7 @@ FloorScreen.check.isShown(); // Create 2 items in a table. From floorscreen, delete 1 item. Then select the other item. // Correct order and screen should be displayed and the BackToFloorButton is shown. -FloorScreen.do.clickTable("T2"); +FloorScreen.do.clickTable("2"); ProductScreen.exec.addOrderline("Minute Maid", "1", "2"); ProductScreen.check.totalAmountIs("2.0"); Chrome.do.clickTicketButton(); @@ -33,29 +33,29 @@ TicketScreen.do.clickNewTicket(); ProductScreen.exec.addOrderline("Coca-Cola", "2", "2"); ProductScreen.check.totalAmountIs("4.0"); Chrome.do.backToFloor(); -FloorScreen.check.orderCountSyncedInTableIs("T2", "2"); +FloorScreen.check.orderCountSyncedInTableIs("2", "2"); Chrome.do.clickTicketButton(); TicketScreen.do.deleteOrder("-0003"); Chrome.do.confirmPopup(); TicketScreen.do.selectOrder("-0002"); ProductScreen.check.isShown(); ProductScreen.check.totalAmountIs("2.0"); -Chrome.check.backToFloorTextIs("Main Floor", "T2"); +Chrome.check.backToFloorTextIs("Main Floor", "2"); Chrome.do.backToFloor(); // Make sure that order is deleted properly. -FloorScreen.do.clickTable("T5"); +FloorScreen.do.clickTable("5"); ProductScreen.exec.addOrderline("Minute Maid", "1", "3"); ProductScreen.check.totalAmountIs("3.0"); Chrome.do.backToFloor(); -FloorScreen.check.orderCountSyncedInTableIs("T5", "1"); +FloorScreen.check.orderCountSyncedInTableIs("5", "1"); Chrome.do.clickTicketButton(); TicketScreen.do.deleteOrder("-0004"); Chrome.do.confirmPopup(); TicketScreen.do.clickDiscard(); FloorScreen.check.isShown(); -FloorScreen.check.orderCountSyncedInTableIs("T5", "0"); -FloorScreen.do.clickTable("T5"); +FloorScreen.check.orderCountSyncedInTableIs("5", "0"); +FloorScreen.do.clickTable("5"); ProductScreen.check.orderIsEmpty(); registry diff --git a/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js b/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js index 99a2c046af0..dc21f22537e 100644 --- a/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js +++ b/addons/pos_restaurant/static/tests/tours/TipScreen.tour.js @@ -15,13 +15,13 @@ startSteps(); // Create order that is synced when draft. // order 1 -FloorScreen.do.clickTable("T2"); +FloorScreen.do.clickTable("2"); ProductScreen.do.confirmOpeningPopup(); ProductScreen.exec.addOrderline("Minute Maid", "1", "2"); ProductScreen.check.totalAmountIs("2.0"); Chrome.do.backToFloor(); -FloorScreen.check.orderCountSyncedInTableIs("T2", "1"); -FloorScreen.do.clickTable("T2"); +FloorScreen.check.orderCountSyncedInTableIs("2", "1"); +FloorScreen.do.clickTable("2"); ProductScreen.check.totalAmountIs("2.0"); ProductScreen.do.clickPayButton(); PaymentScreen.do.clickPaymentMethod("Bank"); @@ -33,14 +33,14 @@ TicketScreen.do.clickNewTicket(); ProductScreen.exec.addOrderline("Coca-Cola", "2", "2"); ProductScreen.check.totalAmountIs("4.0"); Chrome.do.backToFloor(); -FloorScreen.check.orderCountSyncedInTableIs("T2", "1"); +FloorScreen.check.orderCountSyncedInTableIs("2", "1"); Chrome.do.clickTicketButton(); TicketScreen.check.nthRowContains("2", "Tipping"); TicketScreen.do.clickDiscard(); // Create without syncing the draft. // order 3 -FloorScreen.do.clickTable("T5"); +FloorScreen.do.clickTable("5"); ProductScreen.exec.addOrderline("Minute Maid", "3", "2"); ProductScreen.check.totalAmountIs("6.0"); ProductScreen.do.clickPayButton(); @@ -53,7 +53,7 @@ TicketScreen.do.clickNewTicket(); ProductScreen.exec.addOrderline("Coca-Cola", "4", "2"); ProductScreen.check.totalAmountIs("8.0"); Chrome.do.backToFloor(); -FloorScreen.check.orderCountSyncedInTableIs("T5", "1"); +FloorScreen.check.orderCountSyncedInTableIs("5", "1"); Chrome.do.clickTicketButton(); TicketScreen.check.nthRowContains("3", "Tipping"); diff --git a/addons/pos_restaurant/static/tests/tours/helpers/FloorScreenTourMethods.js b/addons/pos_restaurant/static/tests/tours/helpers/FloorScreenTourMethods.js index c160456fa54..3cd6c56c433 100644 --- a/addons/pos_restaurant/static/tests/tours/helpers/FloorScreenTourMethods.js +++ b/addons/pos_restaurant/static/tests/tours/helpers/FloorScreenTourMethods.js @@ -100,7 +100,7 @@ class Check { return [ { content: `selected floor has '${name}' table`, - trigger: `.floor-map .tables .table .label:contains("${name}")`, + trigger: `.floor-map .table .label:contains("${name}")`, run: () => {}, }, ]; @@ -118,7 +118,7 @@ class Check { return [ { content: `number of seats in table '${table}' is '${val}'`, - trigger: `.floor-map .tables .table .label:contains("${table}") ~ .table-seats:contains("${val}")`, + trigger: `.floor-map .table .label:contains("${table}") ~ .table-seats:contains("${val}")`, run: function () {}, }, ]; diff --git a/addons/pos_restaurant/static/tests/tours/pos_restaurant.js b/addons/pos_restaurant/static/tests/tours/pos_restaurant.js index 5e30baefe6b..7ea43138c43 100644 --- a/addons/pos_restaurant/static/tests/tours/pos_restaurant.js +++ b/addons/pos_restaurant/static/tests/tours/pos_restaurant.js @@ -11,7 +11,7 @@ import { registry } from "@web/core/registry"; startSteps(); -FloorScreen.do.clickTable("T5"); +FloorScreen.do.clickTable("5"); // Create first order ProductScreen.do.confirmOpeningPopup(); @@ -36,8 +36,8 @@ 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"); +FloorScreen.check.orderCountSyncedInTableIs("5", "1"); +FloorScreen.do.clickTable("5"); ProductScreen.check.totalAmountIs("4.40"); // Create another draft order and go back to floor @@ -50,10 +50,10 @@ ProductScreen.check.selectedOrderlineHas("Minute Maid"); Chrome.do.backToFloor(); // At floor screen, there should be 2 synced draft orders -FloorScreen.check.orderCountSyncedInTableIs("T5", "2"); +FloorScreen.check.orderCountSyncedInTableIs("5", "2"); // Delete the first order then go back to floor -FloorScreen.do.clickTable("T5"); +FloorScreen.do.clickTable("5"); ProductScreen.check.isShown(); Chrome.do.clickTicketButton(); TicketScreen.do.deleteOrder("-0001"); @@ -62,7 +62,7 @@ TicketScreen.do.selectOrder("-0003"); Chrome.do.backToFloor(); // There should be 1 synced draft order. -FloorScreen.check.orderCountSyncedInTableIs("T5", "1"); +FloorScreen.check.orderCountSyncedInTableIs("5", "1"); registry.category("web_tour.tours").add("pos_restaurant_sync", { test: true, url: "/pos/ui", steps: getSteps() }); startSteps(); @@ -73,13 +73,13 @@ startSteps(); */ // There is one draft synced order from the previous tour -FloorScreen.check.orderCountSyncedInTableIs("T5", "1"); -FloorScreen.do.clickTable("T5"); +FloorScreen.check.orderCountSyncedInTableIs("5", "1"); +FloorScreen.do.clickTable("5"); ProductScreen.check.totalAmountIs("4.40"); // Test transfering an order ProductScreen.do.clickTransferButton(); -FloorScreen.do.clickTable("T4"); +FloorScreen.do.clickTable("4"); // Test if products still get merged after transfering the order ProductScreen.do.clickDisplayedProduct("Coca-Cola"); @@ -93,14 +93,14 @@ PaymentScreen.do.clickValidate(); ReceiptScreen.do.clickNextOrder(); // At this point, there are no draft orders. -FloorScreen.do.clickTable("T2"); +FloorScreen.do.clickTable("2"); ProductScreen.check.isShown(); ProductScreen.check.orderIsEmpty(); ProductScreen.do.clickTransferButton(); -FloorScreen.do.clickTable("T4"); +FloorScreen.do.clickTable("4"); ProductScreen.do.clickDisplayedProduct("Coca-Cola"); ProductScreen.check.totalAmountIs("2.20"); Chrome.do.backToFloor(); -FloorScreen.check.orderCountSyncedInTableIs("T4", "1"); +FloorScreen.check.orderCountSyncedInTableIs("4", "1"); registry.category("web_tour.tours").add("pos_restaurant_sync_second_login", { test: true, url: "/pos/ui", steps: getSteps() }); diff --git a/addons/pos_restaurant/tests/test_frontend.py b/addons/pos_restaurant/tests/test_frontend.py index 39e3044631c..e2ae18b879d 100644 --- a/addons/pos_restaurant/tests/test_frontend.py +++ b/addons/pos_restaurant/tests/test_frontend.py @@ -55,14 +55,14 @@ class TestFrontend(odoo.tests.HttpCase): }) table_05 = self.env['restaurant.table'].create({ - 'name': 'T5', + 'name': '5', 'floor_id': main_floor.id, 'seats': 4, 'position_h': 100, 'position_v': 100, }) table_04 = self.env['restaurant.table'].create({ - 'name': 'T4', + 'name': '4', 'floor_id': main_floor.id, 'seats': 4, 'shape': 'square', @@ -70,7 +70,7 @@ class TestFrontend(odoo.tests.HttpCase): 'position_v': 100, }) table_02 = self.env['restaurant.table'].create({ - 'name': 'T2', + 'name': '2', 'floor_id': main_floor.id, 'seats': 4, 'position_h': 250, @@ -83,7 +83,7 @@ class TestFrontend(odoo.tests.HttpCase): }) table_01 = self.env['restaurant.table'].create({ - 'name': 'T1', + 'name': '1', 'floor_id': second_floor.id, 'seats': 4, 'shape': 'square', @@ -91,7 +91,7 @@ class TestFrontend(odoo.tests.HttpCase): 'position_v': 150, }) table_03 = self.env['restaurant.table'].create({ - 'name': 'T3', + 'name': '3', 'floor_id': second_floor.id, 'seats': 4, 'position_h': 100,