select partner by pressing +, fixed delete order without popup

This commit is contained in:
Matthias Lotz 2025-05-14 23:18:04 +02:00
parent 671a9b1ebc
commit 459b565a94

View File

@ -1,24 +1,50 @@
// @odoo-module
import { Component } from "@odoo/owl";
import { useService } from "@web/core/utils/hooks";
import { usePos } from "@point_of_sale/app/store/pos_hook";
import { _t } from "@web/core/l10n/translation";
import { ConfirmPopup } from "@point_of_sale/app/utils/confirm_popup/confirm_popup";
export class OwsPosCustomerSidebar extends Component {
static template = "open_workshop.OwsPosCustomerSidebar";
setup() {
this.pos = usePos();
this.popup = useService("popup");
}
addOrder() {
this.pos.add_new_order();
this.pos.add_new_order(); // neue Order wird aktive Order
this.pos.selectPartner();
}
removeCurrentOrder() {
async removeCurrentOrder() {
const order = this.pos.get_order();
if (order) {
this.pos.removeOrder(order);
if (!order) return;
// 🛑 Sicherheitsabfrage: Order enthält bereits Positionen
// Hinweis: Verhalten angelehnt an ticket_screen.js in Odoo 17.0
if (order.get_orderlines().length > 0) {
const { confirmed } = await this.popup.add(ConfirmPopup, {
title: _t("Order enthält Positionen"),
body: _t("Möchtest du diese Order wirklich löschen?"),
});
if (!confirmed) return;
}
// 📋 Alle verbleibenden Orders (nach der aktuellen)
const remainingOrders = this.pos.get_order_list().filter(o => o !== order);
// 🗑 Order entfernen
this.pos.removeOrder(order);
// ✅ Wenn noch andere Orders existieren, eine davon aktivieren
if (remainingOrders.length > 0) {
this.pos.set_order(remainingOrders[remainingOrders.length - 1]); // z.B. letzte Order aktivieren
}
// Hinweis: Weitere Funktionen wie Sync mit Server (siehe ticket_screen.js) können hier ergänzt werden.
}
openTicketScreen() {