[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 <jco@odoo.com>
Signed-off-by: Zeel Patel (zepa) <zepa@odoo.com>
This commit is contained in:
Zeel Patel
2024-01-13 05:56:51 +00:00
parent 57ecc833fd
commit 06bf2e0ec5
@@ -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("<br/>").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 = "<br/>".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("<br/>").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 = "<br/>".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 = "<br/>".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 = "<br/>".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 = "<br/>".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 = "<br/>".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 {