migrate.py: Indicate member active status in invalid/warning calls

This commit is contained in:
2023-09-04 19:12:46 +02:00
parent 2f63c3202a
commit e5433c53de

View File

@ -149,12 +149,12 @@ def success(mgnr: int, key: str, value) -> None:
print(f'\x1B[1;32m{mgnr:>6} : {key:<12} {value}\x1B[0m', file=sys.stderr)
def warning(mgnr: int, key: str, value) -> None:
print(f'\x1B[1;33m{mgnr:>6}: {key:<12} {value}\x1B[0m', file=sys.stderr)
def warning(mgnr: int, key: str, value, active: bool) -> None:
print(f'\x1B[1;33m{mgnr:>6} ({"A" if active else " "}): {key:<12} {value}\x1B[0m', file=sys.stderr)
def invalid(mgnr: int, key: str, value) -> None:
print(f'\x1B[1;31m{mgnr:>6}: {key:<12} {value}\x1B[0m', file=sys.stderr)
def invalid(mgnr: int, key: str, value, active: Optional[bool]) -> None:
print(f'\x1B[1;31m{mgnr:>6} ({"A" if active else "?" if active is None else " "}): {key:<12} {value}\x1B[0m', file=sys.stderr)
def renumber_delivery(lsnr_1: str, lsnr_2: str) -> None:
@ -782,7 +782,7 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
if not given_name or not family_name:
given_name = given_name or ''
family_name = family_name or ''
invalid(mgnr, 'Name', n1)
invalid(mgnr, 'Name', n1, active)
bnr: Optional[str] = m['Betriebsnummer'] if m['Betriebsnummer'] != '-' else None
if bnr is not None:
@ -795,9 +795,9 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
bnr = bnr.split(' ')[0]
if not check_lfbis_nr(bnr):
if bnr in ('0', '1234567'):
warning(mgnr, 'BetriebsNr.', bnr)
warning(mgnr, 'BetriebsNr.', bnr, active)
else:
invalid(mgnr, 'BetriebsNr.', bnr)
invalid(mgnr, 'BetriebsNr.', bnr, active)
bnr = None
ustid_nr: Optional[str] = m['UID']
@ -806,13 +806,13 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
if len(ustid_nr) == 8 and ustid_nr.isdigit():
ustid_nr = 'ATU' + ustid_nr
elif not USTID_NR_RE.fullmatch(ustid_nr):
invalid(mgnr, 'UID', ustid_nr)
invalid(mgnr, 'UID', ustid_nr, active)
ustid_nr = None
if ustid_nr and not check_ustid_nr_at(ustid_nr):
if ustid_nr == 'ATU11111111':
warning(mgnr, 'UID', ustid_nr)
warning(mgnr, 'UID', ustid_nr, active)
else:
invalid(mgnr, 'UID', ustid_nr)
invalid(mgnr, 'UID', ustid_nr, active)
ustid_nr = None
iban: Optional[str] = m['IBAN']
@ -823,7 +823,7 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
if iban is not None:
iban = iban.replace(' ', '')
if not check_iban(iban):
invalid(mgnr, 'IBAN', iban)
invalid(mgnr, 'IBAN', iban, active)
iban = None
if bic is not None:
@ -833,7 +833,7 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
elif bic == 'RLNWATWMIB':
bic = 'RLNWATWWMIB'
if not BIC_RE.fullmatch(bic):
invalid(mgnr, 'BIC', bic)
invalid(mgnr, 'BIC', bic, active)
bic = None
if bic is not None:
if len(bic) == 11 and bic.endswith('XXX'):
@ -889,7 +889,7 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
if email.isupper():
email = email.lower()
if not EMAIL_RE.fullmatch(email):
invalid(mgnr, 'E-Mail', m['EMail'])
invalid(mgnr, 'E-Mail', m['EMail'], active)
email = None
else:
parts = email.split('@')
@ -909,7 +909,7 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
kgnr = lookup_kgnr(okz)
active = m['Aktives Mitglied'] or False
if kgnr is None:
invalid(mgnr, 'KGNr.', ort)
invalid(mgnr, 'KGNr.', ort, active)
elif kgnr not in [kg[0] for gem in GEM_MAP.values() for kg in gem]:
glnr = guess_glnr(kgnr)
if glnr:
@ -922,7 +922,7 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
kgnr = None
if postal_dest is None:
invalid(mgnr, 'PLZ', None)
invalid(mgnr, 'PLZ', None, active)
continue
pred = m['MGNR-Vorgänger'] if m['MGNR-Vorgänger'] in mgnrs else None
@ -1035,7 +1035,7 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
if phone_1:
phone_1 = normalize_phone_nr(phone_1)
if len(phone_1) <= 10 or phone_1[0] != '+':
invalid(mgnr, 'Tel.Nr.', m['Telefon'])
invalid(mgnr, 'Tel.Nr.', m['Telefon'], active)
else:
numbers.append(phone_1)
if phone_1[4] == '6':
@ -1045,7 +1045,7 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
if phone_2:
phone_2 = normalize_phone_nr(phone_2)
if len(phone_2) <= 8 or phone_2[0] != '+':
invalid(mgnr, 'Fax.Nr.', m['Telefax'])
invalid(mgnr, 'Fax.Nr.', m['Telefax'], active)
else:
numbers.append(phone_2)
if phone_2[4] == '6':
@ -1055,7 +1055,7 @@ def migrate_members(in_dir: str, out_dir: str) -> None:
if phone_3:
phone_3 = normalize_phone_nr(phone_3)
if len(phone_3) <= 10 or phone_3[0] != '+':
invalid(mgnr, 'Tel.Nr.', m['Mobiltelefon'])
invalid(mgnr, 'Tel.Nr.', m['Mobiltelefon'], active)
elif phone_3 not in numbers:
numbers.append(phone_3)
if phone_3[4] == '6':
@ -1118,7 +1118,7 @@ def migrate_area_commitments(in_dir: str, out_dir: str) -> None:
for gst in parse_gstnrs(p, kgnr, mgnr)
]
invalid(mgnr, 'GstNr.', f'{kgnr:05}-{nr_str}')
invalid(mgnr, 'GstNr.', f'{kgnr:05}-{nr_str}', None)
return []
def replace_nrs(m: re.Match, sep: str) -> str:
@ -1224,7 +1224,7 @@ def migrate_area_commitments(in_dir: str, out_dir: str) -> None:
comment, gstnr = None, None
if parz is None or parz == '0000':
if parz is not None:
invalid(mgnr, 'GstNr.', f'{lookup_kg_name(kgnr)} {kgnr or 0:05}-{parz}')
invalid(mgnr, 'GstNr.', f'{lookup_kg_name(kgnr)} {kgnr or 0:05}-{parz}', None)
gstnrs = []
gstnr = '-'
if WG == 'MATZEN' and len(gstnrs) == 0: