From 4d1a628b45694fac0c087970e54666798c6f9052 Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Wed, 10 Jan 2024 01:44:22 +0100 Subject: [PATCH] migrate.py: Fix invalid sortid in payment_variant bug --- wgmaster/migrate.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/wgmaster/migrate.py b/wgmaster/migrate.py index dd8aea0..2d51cc0 100755 --- a/wgmaster/migrate.py +++ b/wgmaster/migrate.py @@ -44,6 +44,7 @@ MEMBER_MAP: Optional[Dict[int, Dict[str, Any]]] = None GROSSLAGE_KG_MAP: Optional[Dict[int, int]] = None DELIVERY_MAP: Optional[Dict[int, Tuple[int, int, int]]] = None MODIFIER_MAP: Optional[Dict[str, Dict]] = None +SORT_MAP: Optional[Dict[str, str]] = None PARAMETERS: Optional[Dict[str, str]] = None AUSTRIA = 40 @@ -1331,8 +1332,8 @@ def fix_deliveries(deliveries: Iterable[Dict[str, Any]]) -> Iterable[Tuple[str, def migrate_deliveries(in_dir: str, out_dir: str) -> None: - global DELIVERY_MAP, MODIFIER_MAP - DELIVERY_MAP, MODIFIER_MAP = {}, {} + global DELIVERY_MAP, MODIFIER_MAP, SORT_MAP + DELIVERY_MAP, MODIFIER_MAP, SORT_MAP = {}, {}, {} modifiers = { m['ASNR']: m @@ -1438,6 +1439,7 @@ def migrate_deliveries(in_dir: str, out_dir: str) -> None: attributes.remove('F') if d['SNR'] != sortid: + SORT_MAP[f'{d["SNR"]}/{d["SANR"] or ""}'] = f'{sortid}/{",".join(list(attributes)) or ""}' line = f'{d["SNR"]}/{d["SANR"]} -> {sortid}/{",".join(list(attributes)) or None}' if line not in updated_varieties: updated_varieties[line] = 0 @@ -1643,7 +1645,7 @@ def migrate_payments(in_dir: str, out_dir: str) -> None: del s['ID'] if s['Oechsle'] is None: continue - key = f'{s["SNR"].upper()}/{s["SANR"] or ""}' + key = SORT_MAP.get(f'{s["SNR"]}/{s["SANR"] or ""}', f'{s["SNR"].upper()}/{s["SANR"] or ""}') azs[key] = azs.get(key, {'Gebunden': {}, 'NichtGebunden': {}}) azs[key]['Gebunden' if s['gebunden'] else 'NichtGebunden'][s['Oechsle']] = s['Betrag'] curves = [] @@ -1697,7 +1699,7 @@ def migrate_payments(in_dir: str, out_dir: str) -> None: del q['AZNR'] del q['ID'] qualid = QUAL_MAP[q['QSNR']] - key = f'{q["SNR"].upper()}/{q["SANR"] or ""}' + key = SORT_MAP.get(f'{q["SNR"]}/{q["SANR"] or ""}', f'{q["SNR"].upper()}/{q["SANR"] or ""}') azq[qualid] = azq.get(qualid, {}) azq[qualid][key] = q['Betrag'] for qualid, d1 in azq.items():