50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
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)) |