| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from datetime import timedelta, date
- from db import get_session
- import re
- from sqlalchemy import text
- def main():
- db = next(get_session())
- q = db.execute(text("SELECT * FROM dbo.Forderungen_Kommentar_Rohdaten"))
- for row in q.fetchall():
- for i, r in enumerate(row.Kommentar.split("\n"), 1):
- comment_date = row.Timestamp + timedelta(minutes=i)
- comment_user = row.Benutzer_ID
- r = r.replace("'", "")
- d, u = get_date_and_user_from_comment(r)
- db.execute(
- text(
- "INSERT INTO dbo.Forderungen_Kommentar "
- f"VALUES ('{row.Client_DB}', '{row.Beleg_Nr}', '{comment_date}', '{comment_user}', '{r}')"
- )
- )
- db.commit()
- def get_date_and_user_from_comment(r: str) -> tuple[date, str]:
- m = re.search(r"(\d\d\.\d\d?)\.?[\/\s](\w+)", r)
- if m:
- date_split = m[1].split(".")
- return date(2026, date_split[1], date_split[0]), m[2]
- if r.startswith("EWB"):
- return None, "mde"
- az = re.search(r"^AZ\:?\s(\d+\/\d+)", r)
- if az:
- return None, "mde"
- return None, "mde"
- if __name__ == "__main__":
- main()
|