From 06bf2e0ec5fd2b8ed79c9e48aafac6263fccd168 Mon Sep 17 00:00:00 2001 From: Zeel Patel Date: Tue, 9 May 2023 11:01:12 +0000 Subject: [PATCH] [IMP] l10n_in_edi_ewaybill: on verify it's only display error code Before this commit: If the username and password are wrong, then it only displays the error '108'. After this commit: If the username and password are wrong, then it displays the error. '[108] Invalid login credentials.' task - 3304862 closes odoo/odoo#149323 X-original-commit: a27421e0aab072a7c33b748f2d6162d1b2ea060f Signed-off-by: Josse Colpaert Signed-off-by: Zeel Patel (zepa) --- .../models/account_edi_format.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) 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 {