Files
enterprise-addons/pos_iot_six/wizard/add_six_terminal.py
T

38 lines
1.6 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class Pos_Iot_SixAdd_Six_Terminal(models.TransientModel):
_name = 'pos_iot_six.add_six_terminal'
_description = "Connect a Six Payment Terminal"
iot_box_id = fields.Many2one(
"iot.box",
string="IoT Box",
help="The IoT Box that your Six terminal is connected to.",
required=True,
default=lambda self: self._get_existing_iot_box_id()
)
iot_box_ip = fields.Char(related="iot_box_id.ip")
six_terminal_id = fields.Char(related="iot_box_id.six_terminal_id", readonly=False)
terminal_device_id = fields.Many2one("iot.device", string="Terminal Device", required=True, default=lambda self: self._get_existing_terminal_device_id())
def _get_existing_terminal_device_id(self):
payment_method = self.env["pos.payment.method"].browse(self.env.context["active_id"])
return payment_method.iot_device_id
def _get_existing_iot_box_id(self):
payment_method = self.env["pos.payment.method"].browse(self.env.context["active_id"])
return payment_method.iot_device_id.iot_id
@api.onchange("iot_box_id")
def _on_change_iot_box_id(self):
if self.terminal_device_id and self.terminal_device_id.iot_id != self.iot_box_id:
self.terminal_device_id = None
def action_add_payment_method(self):
self.ensure_one()
payment_method = self.env["pos.payment.method"].browse(self.env.context["active_id"])
payment_method.iot_device_id = self.terminal_device_id