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