38 lines
1.6 KiB
Python
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
|