Criptomart/red-supermercados-coop#4 add pos_full_refund from OCA/pos/pull/1458

This commit is contained in:
Luis 2025-12-04 14:03:12 +01:00
parent 5c213a3d6a
commit 6b1b032101
12 changed files with 714 additions and 0 deletions

View file

@ -0,0 +1,62 @@
odoo.define("pos_full_refund.tour.PosFullRefundTour", function (require) {
const {ProductScreen} = require("point_of_sale.tour.ProductScreenTourMethods");
const {PaymentScreen} = require("point_of_sale.tour.PaymentScreenTourMethods");
const {ReceiptScreen} = require("point_of_sale.tour.ReceiptScreenTourMethods");
const {TicketScreen} = require("point_of_sale.tour.TicketScreenTourMethods");
const {getSteps, startSteps} = require("point_of_sale.tour.utils");
var Tour = require("web_tour.tour");
startSteps();
// Start POS and open session
ProductScreen.do.confirmOpeningPopup();
// Create an order with multiple products
ProductScreen.exec.addOrderline("Desk Pad", "2", "5");
ProductScreen.exec.addOrderline("Monitor Stand", "3", "4.5");
ProductScreen.exec.addOrderline("Letter Tray", "1", "5");
// Verify the order has multiple lines by checking the selected orderline
ProductScreen.check.selectedOrderlineHas("Letter Tray", "1.0");
// Pay for the order
ProductScreen.do.clickPayButton();
PaymentScreen.do.clickPaymentMethod("Bank");
PaymentScreen.do.clickValidate();
ReceiptScreen.check.isShown();
ReceiptScreen.do.clickNextOrder();
// Go to refund mode
ProductScreen.do.clickRefund();
// Filter should be automatically 'Paid'
TicketScreen.check.filterIs("Paid");
// Select the order we just created
TicketScreen.do.selectOrder("-0001");
// Click the "Do Full Refund" button
getSteps().push({
trigger: "#set_full_refund_button",
run: "click",
});
// Verify we're back on product screen with refund order
ProductScreen.check.isShown();
// Verify all lines are in the refund order with negative quantities
// We can check by selecting each line and verifying the quantity
ProductScreen.check.selectedOrderlineHas("Letter Tray", "-1.0");
ProductScreen.do.clickOrderline("Desk Pad", "-2.0");
ProductScreen.check.selectedOrderlineHas("Desk Pad", "-2.0");
ProductScreen.do.clickOrderline("Monitor Stand", "-3.0");
ProductScreen.check.selectedOrderlineHas("Monitor Stand", "-3.0");
// Complete the refund by paying
ProductScreen.do.clickPayButton();
PaymentScreen.do.clickPaymentMethod("Bank");
PaymentScreen.do.clickValidate();
ReceiptScreen.check.isShown();
Tour.register("PosFullRefundTour", {test: true, url: "/pos/ui"}, getSteps());
});