from odoo import models, fields, api #import debugpy import logging _logger = logging.getLogger(__name__) _logger.info("✅ pos_order.py geladen") # debugpy.listen(("0.0.0.0", 5678)) print("✅ debugpy wartet auf Verbindung (Port 5678) ...") # Optional: Starte erst, wenn VS Code verbunden ist #debugpy.wait_for_client() class PosOrder(models.Model): _inherit = 'pos.order' def _process_order(self, order, draft, existing_order): pos_order_id = super(PosOrder, self)._process_order(order, draft, existing_order) pos_order = self.browse(pos_order_id) training_products = self.env['ows.machine.training'].search([]) product_map = { tp.training_id.product_tmpl_id.id: tp.machine_id.id for tp in training_products } partner = pos_order.partner_id if not partner: _logger.info("🟡 POS-Bestellung ohne Partner – keine Freigabe möglich") return pos_order_id for line in pos_order.lines: product_tmpl_id = line.product_id.product_tmpl_id.id machine_id = product_map.get(product_tmpl_id) _logger.info("🔍 Prüfe Produkt %s → Maschine ID: %s", line.product_id.display_name, machine_id) if machine_id: already_exists = self.env['ows.machine.access'].search([ ('partner_id', '=', partner.id), ('machine_id', '=', machine_id) ]) if not already_exists: self.env['ows.machine.access'].create({ 'partner_id': partner.id, 'machine_id': machine_id, 'granted_by_pos': True }) _logger.info("✅ Maschinenfreigabe erstellt: %s für %s", machine_id, partner.name) return pos_order_id