fix validation

This commit is contained in:
FH 2022-04-08 17:58:43 +02:00
parent 69709915ea
commit b208ae2a99
2 changed files with 31 additions and 16 deletions

View file

@ -16,5 +16,5 @@ using System.Runtime.InteropServices;
[assembly: ComVisible(false)] [assembly: ComVisible(false)]
[assembly: Guid("aaf08873-14e5-411d-8ec8-629782ac8f03")] [assembly: Guid("aaf08873-14e5-411d-8ec8-629782ac8f03")]
[assembly: AssemblyVersion("2.1.22098.1123")] [assembly: AssemblyVersion("2.1.22098.1531")]
[assembly: AssemblyFileVersion("2.1.22098.1123")] [assembly: AssemblyFileVersion("2.1.22098.1531")]

View file

@ -27,7 +27,7 @@ namespace FCS.Lib.Utility
// C8 check-digit MOD11 // C8 check-digit MOD11
// C1 > 0 // C1 > 0
// R = (2*C1 + 7*C2 + 6*C3 + 5*C4 + 4*C5 + 3*C6 + 2*C7 + C8) // R = (2*C1 + 7*C2 + 6*C3 + 5*C4 + 4*C5 + 3*C6 + 2*C7 + C8)
if(vatNumber.Length == 8 && long.Parse(vatNumber) != 0) if(vatNumber.Length == 8 && long.TryParse(vatNumber, out _))
return ValidateMod11(vatNumber); return ValidateMod11(vatNumber);
return false; return false;
} }
@ -39,10 +39,17 @@ namespace FCS.Lib.Utility
// C1..C8 random 0 to 9 // C1..C8 random 0 to 9
// C9 check-digit MOD11 // C9 check-digit MOD11
// C10 C11 C12 chars == MVA // C10 C11 C12 chars == MVA
if (vatNumber.Length == 9 && long.Parse(vatNumber) != 0) try
{
if (vatNumber.Length == 9 && long.TryParse(vatNumber, out _))
return ValidateMod11(vatNumber); return ValidateMod11(vatNumber);
return false; return false;
} }
catch
{
return false;
}
}
private static bool ValidateFormatSe(string vatNumber) private static bool ValidateFormatSe(string vatNumber)
{ {
@ -54,7 +61,7 @@ namespace FCS.Lib.Utility
// https://www.skatteverket.se/skatter/mervardesskattmoms/momsregistreringsnummer.4.18e1b10334ebe8bc80002649.html // https://www.skatteverket.se/skatter/mervardesskattmoms/momsregistreringsnummer.4.18e1b10334ebe8bc80002649.html
// C11 C12 == 01 (De två sista siffrorna är alltid 01) // C11 C12 == 01 (De två sista siffrorna är alltid 01)
if (vatNumber.Length != 12 || vatNumber.Substring(10) != "01" || long.Parse(vatNumber) == 0) if (vatNumber.Length != 12 || vatNumber.Substring(10) != "01" || !long.TryParse(vatNumber, out _))
return false; return false;
var r = new[] { 0, 2, 4, 6, 8 } var r = new[] { 0, 2, 4, 6, 8 }
@ -66,6 +73,8 @@ namespace FCS.Lib.Utility
} }
private static bool ValidateMod11(string number) private static bool ValidateMod11(string number)
{
try
{ {
if (long.Parse(number) == 0) if (long.Parse(number) == 0)
return false; return false;
@ -79,8 +88,14 @@ namespace FCS.Lib.Utility
return sum % 11 == 0; return sum % 11 == 0;
} }
catch
{
return false;
}
private static string SanitizeVatNumber(string vatNumber) }
public static string SanitizeVatNumber(string vatNumber)
{ {
vatNumber = vatNumber.ToUpperInvariant(); vatNumber = vatNumber.ToUpperInvariant();
return vatNumber return vatNumber