Odoo18-Base/addons/l10n_eg_edi_eta/models/res_currency_rate.py

29 lines
1.1 KiB
Python
Raw Permalink Normal View History

2025-01-06 10:57:38 +07:00
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, api, _
from odoo.tools import float_compare
class ResCurrencyRate(models.Model):
_inherit = 'res.currency.rate'
@api.onchange('company_rate')
def _onchange_rate_warning(self):
# We send the ETA a rate that is 5 decimal accuracy, so to ensure consistency, Odoo should also operate with 5 decimal accuracy rate
if (
self.company_id.account_fiscal_country_id.code == 'EG' and
float_compare(self.inverse_company_rate, round(self.inverse_company_rate, 5), precision_digits=10) != 0
):
return {
'warning': {
'title': _("Warning for %s", self.currency_id.name),
'message': _(
"Please make sure that the EGP per unit is within 5 decimal accuracy.\n"
"Higher decimal accuracy might lead to inconsistency with the ETA invoicing portal!"
)
}
}
return super()._onchange_rate_warning()