Files
enterprise-addons/l10n_be_codaclean/models/res_config_settings.py
T

47 lines
1.8 KiB
Python

from odoo import _, fields, models
from odoo.exceptions import UserError
from odoo.addons.l10n_be_codaclean.tools.iap_api import get_error_message
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
l10n_be_codaclean_iap_token = fields.Char(related="company_id.l10n_be_codaclean_iap_token", readonly=False)
l10n_be_codaclean_is_connected = fields.Boolean(related="company_id.l10n_be_codaclean_is_connected")
def l10n_be_codaclean_refresh_connection_status(self):
self.ensure_one()
result = self.company_id._l10n_be_codaclean_check_status()
self.env.cr.commit() # Persist the changes
if not result['success']:
raise UserError(get_error_message(result.get('error', {})))
if self.company_id.l10n_be_codaclean_is_connected:
args = ['success', _('Success'), _('Codaclean connection established.')]
else:
error = result.get('error', {})
args = ['danger', _('Error'), get_error_message(error) if error else _('Codaclean connection failed.')]
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'params': {
**dict(zip(['type', 'title', 'message'], args)),
'next': {
'type': 'ir.actions.act_window_close',
},
},
}
def l10n_be_codaclean_open_connection_wizard(self):
self.ensure_one()
result = self.company_id._l10n_be_codaclean_check_status()
error = result.get('error', {})
wizard = self.env['l10n_be_codaclean.connection.wizard'].create({
'company_id': self.company_id.id,
'username': result.get('username'),
'warning': get_error_message(error) if error else False,
})
return wizard._action_open()