forked from Mapan/odoo17e
55 lines
2.9 KiB
Python
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')
|