[fix:] plz's and pplz's CAN be alphanumeric

This commit is contained in:
2025-11-27 14:48:24 +01:00
parent 7cd02456bc
commit 8c56717b9c
3 changed files with 48 additions and 38 deletions

View File

@@ -9,10 +9,8 @@ public class AddressCheck
{
public enum ErrorTypes
{
PlzTooShort,
PlzTooLong,
PPlzTooShort,
PPlzTooLong,
PlzNotUsable,
PPlzNotUsable,
MayBeSameAddress,
NoPLZorPPLZ
}
@@ -57,52 +55,64 @@ public class AddressCheck
var address_component_count = 2; // cause anrede and name are first
// PLZ-Prüfung
if (person.plz == 0 || person.plz == null)
if (person.plz == "" || person.plz == null)
{
hasFaults = true;
warnings.Add(WarningTypes.NoPLZ);
}
else
{
if ((person.plz < 10000 && string.IsNullOrWhiteSpace(person.land)) ||
(person.plz < 10000 && person.land == "GER") ||
(person.plz < 10000 && person.land == "DE"))
if (!AddressCreator.CheckPLZ(person.plz, person.land))
{
hasFaults = true;
errors.Add(ErrorTypes.PlzTooShort);
}
else if ((person.plz > 99999 && string.IsNullOrWhiteSpace(person.land)) ||
(person.plz > 99999 && person.land == "GER") ||
(person.plz > 99999 && person.land == "DE"))
{
hasFaults = true;
errors.Add(ErrorTypes.PlzTooLong);
errors.Add(ErrorTypes.PlzNotUsable);
}
// if ((person.plz < 10000 && string.IsNullOrWhiteSpace(person.land)) ||
// (person.plz < 10000 && person.land == "GER") ||
// (person.plz < 10000 && person.land == "DE"))
// {
// hasFaults = true;
// errors.Add(ErrorTypes.PlzTooShort);
// }
// else if ((person.plz > 99999 && string.IsNullOrWhiteSpace(person.land)) ||
// (person.plz > 99999 && person.land == "GER") ||
// (person.plz > 99999 && person.land == "DE"))
// {
// hasFaults = true;
// errors.Add(ErrorTypes.PlzTooLong);
// }
}
// PPLZ-Prüfung
if (person.pplz == 0 || person.pplz == null)
if (person.pplz == "" || person.pplz == null)
{
hasFaults = true;
warnings.Add(WarningTypes.NoPPLZ);
}
else
{
if ((person.pplz < 10000 && string.IsNullOrWhiteSpace(person.land)) ||
(person.pplz < 10000 && person.land == "GER") ||
(person.pplz < 10000 && person.land == "DE"))
if (!AddressCreator.CheckPLZ(person.pplz, person.land))
{
hasFaults = true;
errors.Add(ErrorTypes.PPlzTooShort);
}
else if ((person.pplz > 99999 && string.IsNullOrWhiteSpace(person.land)) ||
(person.pplz > 99999 && person.land == "GER") ||
(person.pplz > 99999 && person.land == "DE"))
{
hasFaults = true;
errors.Add(ErrorTypes.PPlzTooLong);
errors.Add(ErrorTypes.PPlzNotUsable);
}
// if ((person.pplz < 10000 && string.IsNullOrWhiteSpace(person.land)) ||
// (person.pplz < 10000 && person.land == "GER") ||
// (person.pplz < 10000 && person.land == "DE"))
// {
// hasFaults = true;
// errors.Add(ErrorTypes.PPlzTooShort);
// }
// else if ((person.pplz > 99999 && string.IsNullOrWhiteSpace(person.land)) ||
// (person.pplz > 99999 && person.land == "GER") ||
// (person.pplz > 99999 && person.land == "DE"))
// {
// hasFaults = true;
// errors.Add(ErrorTypes.PPlzTooLong);
// }
}
if (warnings.Contains(WarningTypes.NoPLZ) && warnings.Contains(WarningTypes.NoPPLZ))