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

35 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class PoSPaymentMethod(models.Model):
_inherit = 'pos.payment.method'
payment_terminal_ids = fields.Many2many('iot.device', compute="_compute_payment_terminal_ids")
iot_device_id = fields.Many2one('iot.device', string='Payment Terminal Device')
def _get_payment_terminal_selection(self):
selection_list = super(PoSPaymentMethod, self)._get_payment_terminal_selection()
if self.env['ir.config_parameter'].sudo().get_param('pos_iot.ingenico_payment_terminal'):
selection_list.append(('ingenico', 'Ingenico'))
if self.env['ir.config_parameter'].sudo().get_param('pos_iot.worldline_payment_terminal'):
selection_list.append(('worldline', 'Worldline'))
return selection_list
@api.onchange('use_payment_terminal')
def _onchange_use_payment_terminal(self):
super(PoSPaymentMethod, self)._onchange_use_payment_terminal()
self.iot_device_id = False
@api.depends('use_payment_terminal')
def _compute_payment_terminal_ids(self):
for payment_method in self:
domain = [('type', '=', 'payment')]
if payment_method.use_payment_terminal == 'ingenico':
domain.append(('manufacturer', '=', 'Ingenico'))
elif payment_method.use_payment_terminal == 'worldline':
domain.append(('manufacturer', '=', 'Worldline'))
elif payment_method.use_payment_terminal == 'six_iot':
domain.append(('manufacturer', '=', 'Six'))
payment_method.payment_terminal_ids = self.env['iot.device'].search(domain)