1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/pos_iot/models/pos_config.py
2024-12-10 09:04:09 +07:00

55 lines
2.9 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class PosConfig(models.Model):
_inherit = 'pos.config'
iface_print_via_proxy = fields.Boolean(compute="_compute_print_via_proxy")
iface_printer_id = fields.Many2one('iot.device', domain="[('type', '=', 'printer'), '|', ('company_id', '=', False), ('company_id', '=', company_id)]")
iface_customer_facing_display_via_proxy = fields.Boolean(compute="_compute_customer_facing_display_via_proxy")
iface_display_id = fields.Many2one('iot.device', domain="[('type', '=', 'display'), '|', ('company_id', '=', False), ('company_id', '=', company_id)]")
iface_scan_via_proxy = fields.Boolean(compute="_compute_scan_via_proxy")
iface_scanner_ids = fields.Many2many('iot.device', domain="[('type', '=', 'scanner'), '|', ('company_id', '=', False), ('company_id', '=', company_id)]",
help="Enable barcode scanning with a remotely connected barcode scanner and card swiping with a Vantiv card reader.")
iface_electronic_scale = fields.Boolean(compute="_compute_electronic_scale")
iface_scale_id = fields.Many2one('iot.device', domain="[('type', '=', 'scale'), '|', ('company_id', '=', False), ('company_id', '=', company_id)]")
iot_device_ids = fields.Many2many('iot.device', compute="_compute_iot_device_ids")
# TODO: Remove this field, it's not being used.
payment_terminal_device_ids = fields.Many2many('iot.device', compute="_compute_payment_terminal_device_ids")
@api.depends('iface_printer_id')
def _compute_print_via_proxy(self):
for config in self:
config.iface_print_via_proxy = config.iface_printer_id.id is not False
@api.depends('iface_display_id')
def _compute_customer_facing_display_via_proxy(self):
for config in self:
config.iface_customer_facing_display_via_proxy = config.iface_display_id.id is not False
@api.depends('iface_scanner_ids')
def _compute_scan_via_proxy(self):
for config in self:
config.iface_scan_via_proxy = len(config.iface_scanner_ids)
@api.depends('iface_scale_id')
def _compute_electronic_scale(self):
for config in self:
config.iface_electronic_scale = config.iface_scale_id.id is not False
@api.depends('iface_printer_id', 'iface_display_id', 'iface_scanner_ids', 'iface_scale_id')
def _compute_iot_device_ids(self):
for config in self:
if config.is_posbox:
config.iot_device_ids = config.iface_printer_id + config.iface_display_id + config.iface_scanner_ids + config.iface_scale_id
else:
config.iot_device_ids = False
@api.depends('payment_method_ids', 'payment_method_ids.iot_device_id')
def _compute_payment_terminal_device_ids(self):
for config in self:
config.payment_terminal_device_ids = config.payment_method_ids.mapped('iot_device_id')