nasa_upload.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import json
  2. import logging
  3. from pathlib import Path
  4. from suds.client import Client
  5. logger = logging.getLogger("nasa")
  6. def submit_data(config: dict[str, str], payload):
  7. client = Client(
  8. url=config["service_url"],
  9. username=config["credentials"]["username"],
  10. password=config["credentials"]["password"],
  11. )
  12. try:
  13. return client.service.MeldeAfterSalesDaten(payload)
  14. except Exception as e:
  15. logger.error(e)
  16. return -1
  17. def print_result(period: str, result: str, len_pos: int):
  18. print("Periode: " + period)
  19. if len_pos == result:
  20. print(f"Erfolgreich {result} Datensätze übertragen")
  21. logger.info(f"Erfolgreich {result} Datensätze übertragen")
  22. return
  23. print("Übertragung der Datensätze Fehlgeschlagen.")
  24. if result == -1:
  25. print("Fehler! Es waren keine Datensätze vorhanden.")
  26. else:
  27. print(f"{len_pos - result} von {len_pos} Datensätzen nicht verarbeitet!")
  28. logger.error(f"{len_pos - result} von {len_pos} Datensätzen nicht verarbeitet!")
  29. def submit_changes(config):
  30. for file in Path(config["export_dir"]).glob("NASA_*.json"):
  31. print(" " + file.name)
  32. payload = json.load(file.open("r"))
  33. period = payload["Jahr"] + payload["Monat"]
  34. logger.info("Periode: " + period)
  35. len_pos = len(payload["AfterSalesPositionen"])
  36. result = submit_data(config, payload)
  37. print_result(period, result, len_pos)