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:
50
verificacion_contacto_odoo.py
Normal file
50
verificacion_contacto_odoo.py
Normal 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))
|
||||
Reference in New Issue
Block a user