diff --git a/addons/l10n_in_edi_ewaybill/models/account_edi_format.py b/addons/l10n_in_edi_ewaybill/models/account_edi_format.py index a40d4b125e9..3332d266fb2 100755 --- a/addons/l10n_in_edi_ewaybill/models/account_edi_format.py +++ b/addons/l10n_in_edi_ewaybill/models/account_edi_format.py @@ -154,7 +154,7 @@ class AccountEdiFormat(models.Model): if "312" in error_codes: # E-waybill is already canceled # this happens when timeout from the Government portal but IRN is generated - error_message = Markup("
").join([Markup("[%s] %s") % (e.get("code"), e.get("message") or self._l10n_in_edi_ewaybill_get_error_message(e.get('code'))) for e in error]) + error_message = "
".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in error]) error = [] response = {"data": ""} odoobot = self.env.ref("base.partner_root") @@ -172,7 +172,7 @@ class AccountEdiFormat(models.Model): "blocking_level": "error", } elif error: - error_message = Markup("
").join([Markup("[%s] %s") % (e.get("code"), e.get("message") or self._l10n_in_edi_ewaybill_get_error_message(e.get('code'))) for e in error]) + error_message = "
".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in error]) blocking_level = "error" if "404" in error_codes: blocking_level = "warning" @@ -231,7 +231,7 @@ class AccountEdiFormat(models.Model): "blocking_level": "error", } elif error: - error_message = "
".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message") or self._l10n_in_edi_ewaybill_get_error_message(e.get('code')))) for e in error]) + error_message = "
".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in error]) blocking_level = "error" if "404" in error_codes or "waiting" in error_codes: blocking_level = "warning" @@ -315,7 +315,7 @@ class AccountEdiFormat(models.Model): "blocking_level": "error", } elif error: - error_message = "
".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message") or self._l10n_in_edi_ewaybill_get_error_message(e.get('code')))) for e in error]) + error_message = "
".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in error]) blocking_level = "error" if "404" in error_codes: blocking_level = "warning" @@ -542,6 +542,12 @@ class AccountEdiFormat(models.Model): return True return False + def _l10n_in_set_missing_error_message(self, response): + for error in response.get('error', []): + if error.get('code') and not error.get('message'): + error['message'] = self._l10n_in_edi_ewaybill_get_error_message(error.get('code')) + return response + @api.model def _l10n_in_edi_ewaybill_connect_to_server(self, company, url_path, params): user_token = self.env["iap.account"].get("l10n_in_edi") @@ -558,7 +564,8 @@ class AccountEdiFormat(models.Model): endpoint = self.env["ir.config_parameter"].sudo().get_param("l10n_in_edi_ewaybill.endpoint", default_endpoint) url = "%s%s" % (endpoint, url_path) try: - return jsonrpc(url, params=params, timeout=70) + response = jsonrpc(url, params=params, timeout=70) + return self._l10n_in_set_missing_error_message(response) except AccessError as e: _logger.warning("Connection error: %s", e.args[0]) return {