forked from Mapan/odoo17e
251 lines
11 KiB
JavaScript
251 lines
11 KiB
JavaScript
/** @odoo-module */
|
|
|
|
import * as ProductScreen from "@point_of_sale/../tests/tours/helpers/ProductScreenTourMethods";
|
|
import * as ReceiptScreen from "@point_of_sale/../tests/tours/helpers/ReceiptScreenTourMethods";
|
|
import * as PaymentScreen from "@point_of_sale/../tests/tours/helpers/PaymentScreenTourMethods";
|
|
import * as PartnerListScreen from "@point_of_sale/../tests/tours/helpers/PartnerListScreenTourMethods";
|
|
import * as TicketScreen from "@point_of_sale/../tests/tours/helpers/TicketScreenTourMethods";
|
|
import * as Order from "@point_of_sale/../tests/tours/helpers/generic_components/OrderWidgetMethods";
|
|
import * as ErrorPopup from "@point_of_sale/../tests/tours/helpers/ErrorPopupTourMethods";
|
|
import * as Chrome from "@point_of_sale/../tests/tours/helpers/ChromeTourMethods";
|
|
import { inLeftSide } from "@point_of_sale/../tests/tours/helpers/utils";
|
|
import { registry } from "@web/core/registry";
|
|
|
|
registry.category("web_tour.tours").add("TicketScreenTour", {
|
|
test: true,
|
|
url: "/pos/ui",
|
|
steps: () =>
|
|
[
|
|
ProductScreen.confirmOpeningPopup(),
|
|
ProductScreen.clickHomeCategory(),
|
|
Chrome.clickMenuButton(),
|
|
Chrome.clickTicketButton(),
|
|
TicketScreen.clickNewTicket(),
|
|
ProductScreen.addOrderline("Desk Pad", "1", "3"),
|
|
Chrome.clickMenuButton(),
|
|
Chrome.clickTicketButton(),
|
|
TicketScreen.deleteOrder("-0002"),
|
|
Chrome.confirmPopup(),
|
|
TicketScreen.clickDiscard(),
|
|
ProductScreen.orderIsEmpty(),
|
|
ProductScreen.addOrderline("Desk Pad", "1", "2"),
|
|
Chrome.clickMenuButton(),
|
|
Chrome.clickTicketButton(),
|
|
TicketScreen.deleteOrder("-0001"),
|
|
Chrome.confirmPopup(),
|
|
TicketScreen.clickDiscard(),
|
|
Chrome.clickMenuButton(),
|
|
Chrome.clickTicketButton(),
|
|
TicketScreen.nthRowContains(2, "-0003"),
|
|
TicketScreen.clickDiscard(),
|
|
ProductScreen.addOrderline("Desk Pad", "1", "2"),
|
|
ProductScreen.clickPartnerButton(),
|
|
ProductScreen.clickCustomer("Partner Test 1"),
|
|
Chrome.clickMenuButton(),
|
|
Chrome.clickTicketButton(),
|
|
TicketScreen.nthRowContains(2, "Partner Test 1", false),
|
|
TicketScreen.clickNewTicket(),
|
|
ProductScreen.addOrderline("Desk Pad", "1", "3"),
|
|
ProductScreen.clickPartnerButton(),
|
|
ProductScreen.clickCustomer("Partner Test 2"),
|
|
ProductScreen.clickPayButton(),
|
|
PaymentScreen.isShown(),
|
|
Chrome.clickMenuButton(),
|
|
Chrome.clickTicketButton(),
|
|
TicketScreen.nthRowContains(3, "Partner Test 2", false),
|
|
TicketScreen.clickNewTicket(),
|
|
ProductScreen.addOrderline("Desk Pad", "2", "4"),
|
|
ProductScreen.clickPayButton(),
|
|
PaymentScreen.clickPaymentMethod("Bank"),
|
|
PaymentScreen.clickValidate(),
|
|
ReceiptScreen.isShown(),
|
|
Chrome.clickMenuButton(),
|
|
Chrome.clickTicketButton(),
|
|
TicketScreen.nthRowContains(4, "Receipt"),
|
|
TicketScreen.selectFilter("Receipt"),
|
|
TicketScreen.nthRowContains(2, "Receipt"),
|
|
TicketScreen.selectFilter("Payment"),
|
|
TicketScreen.nthRowContains(2, "Payment"),
|
|
TicketScreen.selectFilter("Ongoing"),
|
|
TicketScreen.nthRowContains(2, "Ongoing"),
|
|
TicketScreen.selectFilter("All active orders"),
|
|
TicketScreen.nthRowContains(4, "Receipt"),
|
|
TicketScreen.search("Receipt Number", "-0005"),
|
|
TicketScreen.nthRowContains(2, "Receipt"),
|
|
TicketScreen.search("Customer", "Partner Test 1"),
|
|
TicketScreen.nthRowContains(2, "Partner Test 1", false),
|
|
TicketScreen.search("Customer", "Partner Test 2"),
|
|
TicketScreen.nthRowContains(2, "Partner Test 2", false),
|
|
// Close the TicketScreen to see the current order which is in ReceiptScreen.
|
|
// This is just to remove the search string in the search bar.
|
|
TicketScreen.clickDiscard(),
|
|
ReceiptScreen.isShown(),
|
|
// Open again the TicketScreen to check the Paid filter.
|
|
Chrome.clickMenuButton(),
|
|
Chrome.clickTicketButton(),
|
|
TicketScreen.selectFilter("Paid"),
|
|
TicketScreen.nthRowContains(2, "-0005"),
|
|
TicketScreen.selectOrder("-0005"),
|
|
TicketScreen.clickControlButton("Print Receipt"),
|
|
TicketScreen.receiptTotalIs("8.00"),
|
|
ReceiptScreen.clickBack(),
|
|
TicketScreen.clickBackToMainTicketScreen(),
|
|
// Pay the order that was in PaymentScreen.
|
|
TicketScreen.selectFilter("Payment"),
|
|
TicketScreen.selectOrder("-0004"),
|
|
TicketScreen.loadSelectedOrder(),
|
|
PaymentScreen.clickPaymentMethod("Cash"),
|
|
PaymentScreen.clickValidate(),
|
|
ReceiptScreen.isShown(),
|
|
ReceiptScreen.clickNextOrder(),
|
|
ProductScreen.isShown(),
|
|
// Check that the Paid filter will show the 2 synced orders.
|
|
Chrome.clickMenuButton(),
|
|
Chrome.clickTicketButton(),
|
|
TicketScreen.selectFilter("Paid"),
|
|
TicketScreen.nthRowContains(2, "Partner Test 2", false),
|
|
TicketScreen.nthRowContains(3, "-0005"),
|
|
// Invoice order
|
|
TicketScreen.selectOrder("-0005"),
|
|
inLeftSide(Order.hasLine()),
|
|
TicketScreen.clickControlButton("Invoice"),
|
|
Chrome.confirmPopup(),
|
|
PartnerListScreen.isShown(),
|
|
PartnerListScreen.clickPartner("Partner Test 3"),
|
|
TicketScreen.invoicePrinted(),
|
|
TicketScreen.clickBackToMainTicketScreen(),
|
|
TicketScreen.partnerIs("Partner Test 3"),
|
|
// Reprint receipt
|
|
TicketScreen.clickControlButton("Print Receipt"),
|
|
ReceiptScreen.isShown(),
|
|
ReceiptScreen.clickBack(),
|
|
TicketScreen.clickBackToMainTicketScreen(),
|
|
// When going back, the ticket screen should be in its previous state.
|
|
TicketScreen.filterIs("Paid"),
|
|
// Test refund //
|
|
TicketScreen.clickDiscard(),
|
|
ProductScreen.isShown(),
|
|
ProductScreen.orderIsEmpty(),
|
|
ProductScreen.clickRefund(),
|
|
// Filter should be automatically 'Paid'.
|
|
TicketScreen.filterIs("Paid"),
|
|
TicketScreen.selectOrder("-0005"),
|
|
TicketScreen.partnerIs("Partner Test 3"),
|
|
inLeftSide(Order.hasLine({ productName: "Desk Pad", withClass: ".selected" })),
|
|
ProductScreen.pressNumpad("3"),
|
|
// Error should show because 2 is more than the number
|
|
// that can be refunded.
|
|
ErrorPopup.clickConfirm(),
|
|
TicketScreen.clickDiscard(),
|
|
ProductScreen.goBackToMainScreen(),
|
|
ProductScreen.isShown(),
|
|
ProductScreen.orderIsEmpty(),
|
|
ProductScreen.clickRefund(),
|
|
TicketScreen.selectOrder("-0005"),
|
|
inLeftSide(Order.hasLine({ productName: "Desk Pad", withClass: ".selected" })),
|
|
ProductScreen.pressNumpad("1"),
|
|
TicketScreen.toRefundTextContains("To Refund: 1.00"),
|
|
TicketScreen.confirmRefund(),
|
|
ProductScreen.goBackToMainScreen(),
|
|
ProductScreen.isShown(),
|
|
ProductScreen.selectedOrderlineHas("Desk Pad", "-1.00"),
|
|
// Try changing the refund line to positive number.
|
|
// Error popup should show.
|
|
ProductScreen.pressNumpad("2"),
|
|
ErrorPopup.clickConfirm(),
|
|
// Change the refund line quantity to -3 -- not allowed
|
|
// so error popup.
|
|
ProductScreen.pressNumpad("+/-", "3"),
|
|
ErrorPopup.clickConfirm(),
|
|
// Change the refund line quantity to -2 -- allowed.
|
|
ProductScreen.pressNumpad("+/-", "2"),
|
|
ProductScreen.selectedOrderlineHas("Desk Pad", "-2.00"),
|
|
// Check if the amount being refunded changed to 2.
|
|
ProductScreen.clickRefund(),
|
|
TicketScreen.selectOrder("-0005"),
|
|
TicketScreen.toRefundTextContains("Refunding 2.00"),
|
|
TicketScreen.clickDiscard(),
|
|
ProductScreen.goBackToMainScreen(),
|
|
// Pay the refund order.
|
|
ProductScreen.clickPayButton(),
|
|
PaymentScreen.clickPaymentMethod("Bank"),
|
|
PaymentScreen.clickValidate(),
|
|
ReceiptScreen.isShown(),
|
|
ReceiptScreen.clickNextOrder(),
|
|
// Check refunded quantity.
|
|
ProductScreen.clickRefund(),
|
|
TicketScreen.selectOrder("-0005"),
|
|
TicketScreen.refundedNoteContains("2.00 Refunded"),
|
|
].flat(),
|
|
});
|
|
|
|
registry.category("web_tour.tours").add("FiscalPositionNoTaxRefund", {
|
|
test: true,
|
|
url: "/pos/ui",
|
|
steps: () =>
|
|
[
|
|
ProductScreen.confirmOpeningPopup(),
|
|
ProductScreen.clickHomeCategory(),
|
|
ProductScreen.clickDisplayedProduct("Product Test"),
|
|
ProductScreen.totalAmountIs("100.00"),
|
|
ProductScreen.changeFiscalPosition("No Tax"),
|
|
ProductScreen.totalAmountIs("86.96"),
|
|
ProductScreen.clickPayButton(),
|
|
PaymentScreen.clickPaymentMethod("Bank"),
|
|
PaymentScreen.remainingIs("0.00"),
|
|
PaymentScreen.clickValidate(),
|
|
ReceiptScreen.isShown(),
|
|
ReceiptScreen.clickNextOrder(),
|
|
ProductScreen.clickRefund(),
|
|
TicketScreen.selectOrder("-0001"),
|
|
ProductScreen.pressNumpad("1"),
|
|
TicketScreen.toRefundTextContains("To Refund: 1.00"),
|
|
TicketScreen.confirmRefund(),
|
|
ProductScreen.isShown(),
|
|
ProductScreen.goBackToMainScreen(),
|
|
ProductScreen.totalAmountIs("-86.96"),
|
|
].flat(),
|
|
});
|
|
|
|
registry.category("web_tour.tours").add("LotRefundTour", {
|
|
test: true,
|
|
url: "/pos/ui",
|
|
steps: () =>
|
|
[
|
|
ProductScreen.confirmOpeningPopup(),
|
|
ProductScreen.clickHomeCategory(),
|
|
ProductScreen.clickDisplayedProduct("Product A"),
|
|
ProductScreen.enterLotNumber("123456789"),
|
|
ProductScreen.selectedOrderlineHas("Product A", "1.00"),
|
|
ProductScreen.clickPayButton(),
|
|
PaymentScreen.clickPaymentMethod("Bank"),
|
|
PaymentScreen.clickValidate(),
|
|
ReceiptScreen.isShown(),
|
|
ReceiptScreen.clickNextOrder(),
|
|
ProductScreen.clickRefund(),
|
|
TicketScreen.selectOrder("-0001"),
|
|
ProductScreen.pressNumpad("1"),
|
|
TicketScreen.toRefundTextContains("To Refund: 1.00"),
|
|
TicketScreen.confirmRefund(),
|
|
ProductScreen.isShown(),
|
|
ProductScreen.clickLotIcon(),
|
|
ProductScreen.checkFirstLotNumber("123456789"),
|
|
].flat(),
|
|
});
|
|
|
|
registry.category("web_tour.tours").add("FiscalPositionTwoTaxIncluded", {
|
|
test: true,
|
|
steps: () =>
|
|
[
|
|
ProductScreen.confirmOpeningPopup(),
|
|
ProductScreen.clickHomeCategory(),
|
|
ProductScreen.clickDisplayedProduct("Test Product"),
|
|
ProductScreen.checkTaxAmount("9.09"),
|
|
ProductScreen.totalAmountIs("100.00"),
|
|
ProductScreen.changeFiscalPosition("test fp"),
|
|
ProductScreen.totalAmountIs("100.00"),
|
|
ProductScreen.checkTaxAmount("4.76"),
|
|
ProductScreen.isShown(),
|
|
].flat(),
|
|
});
|