diff --git a/work_helpers/travels.py b/work_helpers/travels.py index f24c514..85ea544 100644 --- a/work_helpers/travels.py +++ b/work_helpers/travels.py @@ -62,6 +62,7 @@ class PrePayments: form_data.update( { f"Datum{index}": entry.date, + f"Euro{index}": entry.amount_localized, f"BelegNr aus SuberX{index}": entry.superx_id, # no field "Euro{index}" # the automatic form calculation would not work. @@ -148,7 +149,7 @@ def _get_unique(data: pd.DataFrame, column: str) -> str | int | float: return uniques[0] -def _extract_travel_number(data: pd.DataFrame, column: str) -> str: +def _parse_travel_number(data: pd.DataFrame, column: str) -> str: belege = data[column] travel_nr = belege.apply( lambda x: re.search(r"(5\d{9,10})", x.replace(" ", "")) @@ -156,6 +157,14 @@ def _extract_travel_number(data: pd.DataFrame, column: str) -> str: match_result = travel_nr[travel_nr.first_valid_index()] return match_result[0] +def _extract_travel_number(data: pd.DataFrame) -> str: + for column in ("BelegNr", "VorgängerBelegNr"): + try: + return _parse_travel_number(data, column) + except KeyError: + pass + msg = "Could not fint travel number, probably Obligo missing" + raise KeyError(msg) def _read_pre_payments(file_path: Pathlike = None) -> PrePayments: if not file_path: @@ -169,7 +178,7 @@ def _read_pre_payments(file_path: Pathlike = None) -> PrePayments: converters = {field: str for field in fields} raw_data = pd.read_excel(file_path, skiprows=3, converters=converters) - travel_nr = _extract_travel_number(raw_data, "BelegNr") + travel_nr = _extract_travel_number(raw_data) try: cost_center = _get_unique(raw_data, "Kostenstelle") fonds = _get_unique(raw_data, "Fonds") @@ -179,7 +188,7 @@ def _read_pre_payments(file_path: Pathlike = None) -> PrePayments: except ValueError as e: sys.exit(str(e)) - mask = raw_data["Werttyp"] == "Zahlung" + mask = raw_data["Werttyp"].isin(("Zahlung", "Rechnung")) raw_payments = raw_data[mask].copy() summary = ( @@ -287,9 +296,10 @@ def final_payment(search_last_name: str, iso_date: str, place: str): rk_path = folder / f"DATE {info.travel_short}, Reisekostenabrechnung.txt" _create_text_stub(rk_path) + year = TODAY.split("-", maxsplit=1)[0] uka_hint_path = ( folder - / f"HUEL UK-A {info.last_first}, Dienstreise {info.place}, Schlusszahlung.txt" + / f"{year}-HUEL UK-A {info.last_first}, Dienstreise {info.place}, Schlusszahlung.txt" ) huel_date = "/".join(TODAY.split("-")[::-1])