running POS ows machine access and customer sidebar
This commit is contained in:
parent
1f59e16b26
commit
0fe8417602
|
|
@ -1,11 +1,14 @@
|
|||
# Datei: controllers/pos_access.py
|
||||
|
||||
from odoo import http
|
||||
from odoo.http import request
|
||||
|
||||
class OpenWorkshopPOSController(http.Controller):
|
||||
|
||||
@http.route('/open_workshop/partner_access', type='json', auth='user')
|
||||
def get_partner_machine_access(self, partner_id):
|
||||
def get_partner_machine_access(self, **kwargs):
|
||||
partner_id = kwargs.get('params', {}).get('partner_id')
|
||||
if not partner_id:
|
||||
return {"error": "Missing partner_id"}
|
||||
|
||||
Machine = request.env['ows.machine'].sudo()
|
||||
return Machine.get_access_list_grouped(partner_id)
|
||||
|
||||
|
|
|
|||
|
|
@ -514,7 +514,7 @@ class OwsMachine(models.Model):
|
|||
"""
|
||||
partner = self.env['res.partner'].browse(partner_id)
|
||||
areas = self.env['ows.machine.area'].search([], order="name")
|
||||
|
||||
_logger.info("Access RPC called with partner_id=%s", partner_id)
|
||||
access_by_area = []
|
||||
for area in areas:
|
||||
machines = self.search([('area_id', '=', area.id), ('category', '=', 'red')], order="name")
|
||||
|
|
|
|||
|
|
@ -45,9 +45,7 @@ export class OwsMachineAccessList extends Component {
|
|||
|
||||
try {
|
||||
const data = await rpc("/open_workshop/partner_access", {
|
||||
params: {
|
||||
partner_id: partner.id,
|
||||
},
|
||||
params: { partner_id: partner.id },
|
||||
});
|
||||
|
||||
this.state.grouped_accesses = data.access_by_area || [];
|
||||
|
|
|
|||
|
|
@ -2,32 +2,30 @@
|
|||
|
||||
import { Component } from "@odoo/owl";
|
||||
import { useService } from "@web/core/utils/hooks";
|
||||
import { registry } from "@web/core/registry";
|
||||
import { usePos } from "@point_of_sale/app/store/pos_hook";
|
||||
import { _t } from "@web/core/l10n/translation";
|
||||
import { ask } from "@web/core/confirmation_dialog/confirmation_dialog";
|
||||
import { deserializeDateTime, formatDateTime, parseDateTime } from "@web/core/l10n/dates";
|
||||
|
||||
export class OwsPosCustomerSidebar extends Component {
|
||||
static template = "open_workshop.OwsPosCustomerSidebar";
|
||||
|
||||
setup() {
|
||||
this.pos = usePos();
|
||||
this.pos = usePos(); // ✅ Holt dir Zugriff auf den zentralen POS-Store
|
||||
this.dialog = useService("dialog");
|
||||
}
|
||||
|
||||
addOrder() {
|
||||
this.pos.add_new_order(); // neue Order wird aktive Order
|
||||
this.pos.add_new_order(); // ✅ Neue Order wird aktive Order
|
||||
this.pos.showScreen("ProductScreen");
|
||||
this.pos.selectPartner();
|
||||
this.env.bus.trigger('partner-changed'); // ✅ korrektes Event feuern
|
||||
this.env.bus.trigger('partner-changed'); // ✅ Event manuell auslösen
|
||||
}
|
||||
|
||||
async removeCurrentOrder() {
|
||||
const order = this.pos.get_order();
|
||||
if (!order) return;
|
||||
|
||||
// 🛑 Sicherheitsabfrage: Order enthält bereits Positionen
|
||||
// 🛑 Sicherheitsabfrage: Order enthält bereits Positionen?
|
||||
if (order.get_orderlines().length > 0) {
|
||||
const confirmed = await ask(this.dialog, {
|
||||
title: _t("Order enthält Positionen"),
|
||||
|
|
@ -49,16 +47,16 @@ export class OwsPosCustomerSidebar extends Component {
|
|||
this.pos.set_order(remainingOrders[remainingOrders.length - 1]);
|
||||
}
|
||||
|
||||
this.env.bus.trigger('partner-changed'); // ✅ korrektes Event feuern
|
||||
this.env.bus.trigger('partner-changed');
|
||||
}
|
||||
|
||||
openTicketScreen() {
|
||||
this.pos.showScreen("TicketScreen");
|
||||
}
|
||||
|
||||
// 🔧 FIXED: Zugriff auf Order-Liste korrigiert
|
||||
getFilteredOrderList() {
|
||||
//return this.pos.get_order_list();
|
||||
return this.pos.orders ? this.pos.orders.filter(order => order.get_partner()) : [];
|
||||
return this.pos.get_open_orders();
|
||||
}
|
||||
|
||||
getDate(order) {
|
||||
|
|
@ -79,5 +77,3 @@ export class OwsPosCustomerSidebar extends Component {
|
|||
this.env.bus.trigger('partner-changed');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user