27 lines
1.2 KiB
Python
27 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models, api, _
|
|
from odoo.exceptions import ValidationError
|
|
|
|
|
|
class PosConfig(models.Model):
|
|
_inherit = 'pos.config'
|
|
|
|
@api.constrains('payment_method_ids')
|
|
def _check_online_payment_methods(self):
|
|
""" Checks the journal currency with _get_online_payment_providers(..., error_if_invalid=True)"""
|
|
for config in self:
|
|
opm_amount = 0
|
|
for pm in config.payment_method_ids:
|
|
if pm.is_online_payment:
|
|
opm_amount += 1
|
|
if opm_amount > 1:
|
|
raise ValidationError(_("A POS config cannot have more than one online payment method."))
|
|
if not pm._get_online_payment_providers(config.id, error_if_invalid=True):
|
|
raise ValidationError(_("To use an online payment method in a POS config, it must have at least one published payment provider supporting the currency of that POS config."))
|
|
|
|
def _get_cashier_online_payment_method(self):
|
|
self.ensure_one()
|
|
return self.payment_method_ids.filtered('is_online_payment')[:1]
|