diff --git a/l10n_mx_params_pac/pacs/solucion_factible.py b/l10n_mx_params_pac/pacs/solucion_factible.py index f92cc503ba1429541ff6a19eb745ae6aaf05ab29..d3a72853566d61bfe01a29621666ae848b2d8b6a 100644 --- a/l10n_mx_params_pac/pacs/solucion_factible.py +++ b/l10n_mx_params_pac/pacs/solucion_factible.py @@ -12,6 +12,9 @@ from openerp import api, fields, models, tools from openerp.tools.translate import _ from ..models import exceptions as pac_exceptions +from ..lib.pac_answer import PacCancelAnswer +from SOAPpy.Errors import HTTPError, UnknownTypeError, UnderflowError,\ + RecursionError logger = logging.getLogger(__name__) @@ -78,22 +81,28 @@ class ParamsPac(models.Model): wsdl_client.soapproxy.config.dumpSOAPIn = 0 wsdl_client.soapproxy.config.debug = 0 wsdl_client.soapproxy.config.dict_encoding = 'UTF-8' - result = wsdl_client.cancelarAsincrono(*params) + try: + result = wsdl_client.cancelarAsincrono(*params) + except ( + HTTPError, UnknownTypeError, UnderflowError, RecursionError + ) as e: + logger.info(e) status_cancel = result['status'] or '' mensaje_cancel = result['mensaje'] or '' + cancel_answer = PacCancelAnswer(uuid, status_cancel, status_cancel) # Something went wrong and raise exception - if status_cancel in pac_exceptions.cancel_error_list: + if cancel_answer.estatus in pac_exceptions.cancel_error_list: raise pac_exceptions.CancelError( - code=status_cancel, message=mensaje_cancel, + code=cancel_answer, message=mensaje_cancel, ) # Cancel process was unsuccessful - elif status_cancel not in '200': + elif cancel_answer.estatus not in '200': raise Exception( ' '.join(['Code', status_cancel, mensaje_cancel]), ) # If code result is 200 then all was okay else: - return True + return cancel_answer def _upload_ws_file(self, fdata=None): """