try: texto_completo = """{cliente_datos}""" ci_base = """{numero_documento}""" digitos = "0123456789" # Extraer la parte del documento desde cliente_datos if ":" in texto_completo: parte_doc = texto_completo.split(":")[-1] else: parte_doc = texto_completo # Sacar número desde Odoo, dejando dígitos y guion cliente_num = "" for c in parte_doc: if c in digitos or c == "-": cliente_num += c # Sacar solo dígitos desde DB db_num = "" for c in ci_base: if c in digitos: db_num += c # Limpiar guion del documento de Odoo cliente_limpio = cliente_num.replace("-", "") db_limpio = db_num print("Odoo raw:", cliente_num, "len:", len(cliente_limpio)) print("DB raw:", ci_base, "len:", len(db_limpio)) # LÓGICA CORREGIDA: # Si Odoo tiene un dígito más que DB, se asume que el último es dígito verificador if len(cliente_limpio) == len(db_limpio) + 1: cliente_match = cliente_limpio[:-1] else: cliente_match = cliente_limpio iguales = (cliente_match == db_limpio) print("Odoo limpio:", cliente_limpio) print("Odoo match:", cliente_match) print("DB match:", db_limpio) print("FINAL Match:", iguales) # Resultado de comparación SetVar("documentos_iguales", "1" if iguales else "0") except Exception as e: SetVar("documentos_iguales", "0") print("ERROR:", str(e))