se agrega fallback OWTR y calculo de fecha de vencimiento por condicion de pago
- hana_manager.get_delivery ahora busca en ODLN y, si no encuentra, en OWTR - sapb1_manager resuelve StockTransfers -> Orders (via U_IDC_NUMOV) para validar precios de flete cuando la guia es un traslado de inventario - se corrige el orden de parametros tipo/serie/numero (sin cruces) en get_delivery, get_delivery_notes y _get_delivery_entries - se agrega sapb1_manager.obtener_condicion_pago (BusinessPartners + PaymentTermsTypes) y pipeline._calcular_fecha_vencimiento para que DocDueDate del draft sea fecha de contabilizacion + dias de la condicion de pago del proveedor - se agrega variante de regex para "VALOR REFER" truncado en sunat_schema.py - se actualiza documentacion (docs/) reflejando estos cambios Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
6b0ed6f519
commit
15e3b5079c
231 files changed
+21421
-475
No files matched your search
Executable → Regular
+6
-6
@@ -11,7 +11,7 @@ from datetime import datetime, timedelta
|
||||
from dotenv import load_dotenv
|
||||
|
||||
import database_utilities
|
||||
import logger_utilities
|
||||
import logger_manager
|
||||
from pipeline import _procesar_un_correo, step_authenticate
|
||||
|
||||
|
||||
@@ -45,13 +45,14 @@ def get_email_by_id(user_email: str, token: str, message_id: str) -> dict | None
|
||||
# PIPELINE PARA IDS
|
||||
# ============================================================================
|
||||
def run_pipeline_for_ids(ids: list[str]) -> None:
|
||||
load_dotenv(dotenv_path=".env.dev")
|
||||
# Ruta absoluta: no depende del directorio de trabajo desde el que se lance el proceso
|
||||
load_dotenv(dotenv_path=os.path.join(os.path.dirname(__file__), ".env"))
|
||||
email_addr = os.getenv("EMAIL", "")
|
||||
download_folder = os.getenv("DOWNLOAD_FOLDER", "adjuntos")
|
||||
output_folder = os.getenv("OUTPUT_FOLDER", "resultado")
|
||||
|
||||
if not email_addr:
|
||||
print("❌ EMAIL no configurado en .env.dev")
|
||||
print("❌ EMAIL no configurado en .env")
|
||||
return
|
||||
|
||||
database_utilities.init_db()
|
||||
@@ -96,13 +97,12 @@ if __name__ == "__main__":
|
||||
print(f"\n📋 Set: {args.set} — {descripcion}")
|
||||
print(f" IDs a procesar: {len(ids)}")
|
||||
|
||||
log_path = logger_utilities.setup_logger()
|
||||
logger_utilities.limpiar_logs_antiguos(dias=30)
|
||||
logger_manager.setup_logging()
|
||||
|
||||
inicio = datetime.now()
|
||||
print("\n" + "=" * 60)
|
||||
print(f"🚀 INICIO DE EJECUCIÓN: {inicio.strftime('%Y-%m-%d %H:%M:%S')}")
|
||||
print(f"📄 Log guardado en: {log_path}")
|
||||
print(f"📄 Log guardado en: {logger_manager.LOG_FILE}")
|
||||
print("=" * 60)
|
||||
|
||||
run_pipeline_for_ids(ids)
|
||||
|
||||
Reference in new issue
Block a user