import json import logging from pathlib import Path from suds.client import Client logger = logging.getLogger("nasa") def submit_data(config: dict[str, str], payload): client = Client( url=config["service_url"], username=config["credentials"]["username"], password=config["credentials"]["password"], ) try: return client.service.MeldeAfterSalesDaten(payload) except Exception as e: logger.error(e) return -1 def print_result(period: str, result: str, len_pos: int): print("Periode: " + period) if len_pos == result: print(f"Erfolgreich {result} Datensätze übertragen") logger.info(f"Erfolgreich {result} Datensätze übertragen") return print("Übertragung der Datensätze Fehlgeschlagen.") if result == -1: print("Fehler! Es waren keine Datensätze vorhanden.") else: print(f"{len_pos - result} von {len_pos} Datensätzen nicht verarbeitet!") logger.error(f"{len_pos - result} von {len_pos} Datensätzen nicht verarbeitet!") def submit_changes(config): for file in Path(config["export_dir"]).glob("NASA_*.json"): print(" " + file.name) payload = json.load(file.open("r")) period = payload["Jahr"] + payload["Monat"] logger.info("Periode: " + period) len_pos = len(payload["AfterSalesPositionen"]) result = submit_data(config, payload) print_result(period, result, len_pos)