You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.8 KiB
52 lines
1.8 KiB
/**@odoo-module **/
|
|
import { _t } from "@web/core/l10n/translation";
|
|
import { ProductScreen } from "@point_of_sale/app/screens/product_screen/product_screen";
|
|
import { useService } from "@web/core/utils/hooks";
|
|
import { Component } from "@odoo/owl";
|
|
import { usePos } from "@point_of_sale/app/store/pos_hook";
|
|
import { ConfirmPopup } from "@point_of_sale/app/utils/confirm_popup/confirm_popup";
|
|
/**
|
|
* Represents a component to delete all order lines in the Point of Sale.
|
|
* @extends Component
|
|
*/
|
|
export class DeleteOrderLines extends Component {
|
|
static template = "pos_delete_orderline.OrderLineClearALL";
|
|
/**
|
|
* Set up the DeleteOrderLines component.
|
|
* @override
|
|
*/
|
|
setup() {
|
|
this.pos = usePos();
|
|
this.popup = useService("popup");
|
|
this.notification = useService("pos_notification");
|
|
}
|
|
/**
|
|
* Handle the click event to confirm and delete all order lines.
|
|
* @async
|
|
*/
|
|
async onClick() {
|
|
var order = this.pos.get_order();
|
|
var lines = order.get_orderlines();
|
|
if (lines.length) {
|
|
await this.popup.add(ConfirmPopup, {
|
|
title: 'Clear Orders?',
|
|
body: 'Are you sure you want to delete all orders from the cart?',
|
|
}).then(({confirmed}) => {
|
|
if (confirmed == true) {
|
|
lines.filter(line => line.get_product())
|
|
.forEach(line => order.removeOrderline(line));
|
|
}else {
|
|
return false;
|
|
}
|
|
})
|
|
}else{
|
|
this.notification.add(_t("No Items to remove."), 3000);
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* Adds the DeleteOrderLines component as a control button to the ProductScreen.
|
|
*/
|
|
ProductScreen.addControlButton({
|
|
component: DeleteOrderLines,
|
|
});
|
|
|