modificado para obtener todas las facturas que tiene el casillero de validación vacío, no más de 30 días
This commit is contained in:
1 parent
22aec163d2
commit
9f2d96e64c
9 files changed
+213
-198
No files matched your search
+20
-21
@@ -8,6 +8,9 @@ from hdbcli import dbapi
|
||||
from dotenv import load_dotenv
|
||||
|
||||
from constants import TABLAS, ESTADOS_COMPROBANTE, ESTADOS_CONTRIBUYENTE, CONDICIONES_DOMICILIADO
|
||||
from logger_manager import get_logger
|
||||
|
||||
logger = get_logger()
|
||||
|
||||
# ============================================================================
|
||||
# CONFIGURACIÓN
|
||||
@@ -34,11 +37,11 @@ def get_connection():
|
||||
)
|
||||
return conn
|
||||
except Exception as e:
|
||||
print(f" ❌ Error conectando a HANA: {e}")
|
||||
logger.error(f" ❌ Error conectando a HANA: {e}")
|
||||
return None
|
||||
|
||||
# ============================================================================
|
||||
def obtener_documentos_creados_actualizados_hace_60_minutos(schema, minutes=60):
|
||||
def obtener_documentos_aun_no_validados_ultimos_30_dias(schema):
|
||||
"""
|
||||
Se conecta a la base de datos SAP HANA, realiza una consulta a la tabla OPCH,
|
||||
y formatea el resultado para que coincida con el esquema de documentos.json.
|
||||
@@ -60,11 +63,7 @@ def obtener_documentos_creados_actualizados_hace_60_minutos(schema, minutes=60):
|
||||
FROM "{schema}".OPCH T0
|
||||
INNER JOIN "{schema}".OCRD T3 ON T3."CardCode" = T0."CardCode"
|
||||
INNER JOIN "{schema}".OUSR T1 ON T1."USERID" = T0."UserSign2"
|
||||
WHERE TO_TIMESTAMP(TO_VARCHAR(T0."UpdateDate", 'YYYY-MM-DD')
|
||||
|| ' ' || LPAD(TO_VARCHAR(T0."UpdateTS"), 6, '0'),
|
||||
'YYYY-MM-DD HH24MISS')
|
||||
>= ADD_SECONDS(CURRENT_TIMESTAMP, {-1 * minutes * 60})
|
||||
|
||||
WHERE T0."UpdateDate" >= ADD_DAYS(CURRENT_DATE, -30)
|
||||
AND T0."CANCELED" = 'N'
|
||||
AND IFNULL(T0."Indicator",'') IN ('01','02','03','08')
|
||||
AND LENGTH(IFNULL(T0."FolioPref",'')) > 0
|
||||
@@ -73,7 +72,7 @@ def obtener_documentos_creados_actualizados_hace_60_minutos(schema, minutes=60):
|
||||
AND (LENGTH(IFNULL(T0."U_PGX_STMENSAJE",'')) = 0 OR LOCATE('NO EXISTE', IFNULL(T0."U_PGX_STMENSAJE",'')) > 0)
|
||||
ORDER BY T0."CreateDate" DESC;
|
||||
"""
|
||||
print(f"🔌 Conectando al servidor SAP HANA ({HANA_HOST}:{HANA_PORT}) para schema {schema}...")
|
||||
logger.info(f"🔌 Conectando al servidor SAP HANA ({HANA_HOST}:{HANA_PORT}) para schema {schema}...")
|
||||
connection = get_connection()
|
||||
if not connection:
|
||||
raise ConnectionError("No se pudo establecer la conexión a SAP HANA.")
|
||||
@@ -94,14 +93,14 @@ def obtener_documentos_creados_actualizados_hace_60_minutos(schema, minutes=60):
|
||||
return results
|
||||
|
||||
except Exception as e:
|
||||
print(f" ❌ Error en consulta HANA: {e}")
|
||||
logger.error(f" ❌ Error en consulta HANA: {e}")
|
||||
return []
|
||||
finally:
|
||||
if cursor:
|
||||
cursor.close()
|
||||
if connection:
|
||||
connection.close()
|
||||
print(f" 🔒 [{sys._getframe().f_code.co_name}] Conexión HANA cerrada.")
|
||||
logger.info(f" 🔒 [{sys._getframe().f_code.co_name}] Conexión HANA cerrada.")
|
||||
|
||||
# ============================================================================
|
||||
def obtener_documentos_fecha_emision_ultimos_8_dias(schema):
|
||||
@@ -129,7 +128,7 @@ def obtener_documentos_fecha_emision_ultimos_8_dias(schema):
|
||||
AND IFNULL(T3."U_EXX_TIPODOCU",'') IN ('6','4')
|
||||
ORDER BY T0."U_PGX_STMENSAJE", T0."CreateDate" DESC;
|
||||
"""
|
||||
print(f"🔌 Conectando al servidor SAP HANA ({HANA_HOST}:{HANA_PORT}) para schema {schema}...")
|
||||
logger.info(f"🔌 Conectando al servidor SAP HANA ({HANA_HOST}:{HANA_PORT}) para schema {schema}...")
|
||||
connection = get_connection()
|
||||
if not connection:
|
||||
raise ConnectionError("No se pudo establecer la conexión a SAP HANA.")
|
||||
@@ -148,14 +147,14 @@ def obtener_documentos_fecha_emision_ultimos_8_dias(schema):
|
||||
return results
|
||||
|
||||
except Exception as e:
|
||||
print(f" ❌ Error en consulta HANA: {e}")
|
||||
logger.error(f" ❌ Error en consulta HANA: {e}")
|
||||
return []
|
||||
finally:
|
||||
if cursor:
|
||||
cursor.close()
|
||||
if connection:
|
||||
connection.close()
|
||||
print(f" 🔒 [{sys._getframe().f_code.co_name}] Conexión HANA cerrada.")
|
||||
logger.info(f" 🔒 [{sys._getframe().f_code.co_name}] Conexión HANA cerrada.")
|
||||
|
||||
# ============================================================================
|
||||
def obtener_documentos_creados_hace_x_dias(schema, dias=8):
|
||||
@@ -184,7 +183,7 @@ def obtener_documentos_creados_hace_x_dias(schema, dias=8):
|
||||
AND IFNULL(T3."U_EXX_TIPODOCU",'') IN ('6','4')
|
||||
ORDER BY T0."CreateDate" DESC;
|
||||
"""
|
||||
print(f"🔌 Conectando al servidor SAP HANA ({HANA_HOST}:{HANA_PORT}) para schema {schema}...")
|
||||
logger.info(f"🔌 Conectando al servidor SAP HANA ({HANA_HOST}:{HANA_PORT}) para schema {schema}...")
|
||||
connection = get_connection()
|
||||
if not connection:
|
||||
raise ConnectionError("No se pudo establecer la conexión a SAP HANA.")
|
||||
@@ -203,14 +202,14 @@ def obtener_documentos_creados_hace_x_dias(schema, dias=8):
|
||||
return results
|
||||
|
||||
except Exception as e:
|
||||
print(f" ❌ Error en consulta HANA: {e}")
|
||||
logger.error(f" ❌ Error en consulta HANA: {e}")
|
||||
return []
|
||||
finally:
|
||||
if cursor:
|
||||
cursor.close()
|
||||
if connection:
|
||||
connection.close()
|
||||
print(f" 🔒 [{sys._getframe().f_code.co_name}] Conexión HANA cerrada.")
|
||||
logger.info(f" 🔒 [{sys._getframe().f_code.co_name}] Conexión HANA cerrada.")
|
||||
|
||||
# ============================================================================
|
||||
def actualizar_documento_sap(schema, registro,resultado):
|
||||
@@ -263,10 +262,10 @@ def actualizar_documento_sap(schema, registro,resultado):
|
||||
"U_PGX_PETOTORHORA" = TO_VARCHAR(CURRENT_TIME,'HH24:MM:SS')
|
||||
WHERE "DocEntry" = {registro["fieldvalue"]};"""
|
||||
|
||||
print(f" ┌─ 🗄️ UPDATE HANA ──────────────────────")
|
||||
logger.info(f" ┌─ 🗄️ UPDATE HANA ──────────────────────")
|
||||
for line in query.splitlines():
|
||||
print(f" │ {line}")
|
||||
print(f" └─────────────────────────────────────────")
|
||||
logger.info(f" │ {line}")
|
||||
logger.info(f" └─────────────────────────────────────────")
|
||||
|
||||
try:
|
||||
cursor.execute(query)
|
||||
@@ -274,13 +273,13 @@ def actualizar_documento_sap(schema, registro,resultado):
|
||||
cursor.close()
|
||||
return True
|
||||
except Exception as e:
|
||||
print(f" ❌ Error actualizando registro en HANA: {e}")
|
||||
logger.error(f" ❌ Error actualizando registro en HANA: {e}")
|
||||
return False
|
||||
finally:
|
||||
if cursor:
|
||||
cursor.close()
|
||||
if connection:
|
||||
connection.close()
|
||||
print(f" 🔒 [{sys._getframe().f_code.co_name}] Conexión HANA cerrada.")
|
||||
logger.info(f" 🔒 [{sys._getframe().f_code.co_name}] Conexión HANA cerrada.")
|
||||
|
||||
# ============================================================================
|
||||
Reference in new issue
Block a user