Script que extrae datos de cliente_datos en alta_contacto_odoo y que compara los numeros de documento, de la base de datos y del extraido de cliente_datos. Retorna documentos_iguales = 1 cuando son iguales.

This commit is contained in:
Mabejoyb
2026-04-24 11:40:06 -03:00
parent 194d370288
commit 9d2ba65f3f

View File

@@ -0,0 +1,50 @@
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))