fix swedish vat validation
This commit is contained in:
parent
f4097dd316
commit
69709915ea
2 changed files with 19 additions and 17 deletions
|
@ -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.22097.1714")]
|
[assembly: AssemblyVersion("2.1.22098.1123")]
|
||||||
[assembly: AssemblyFileVersion("2.1.22097.1714")]
|
[assembly: AssemblyFileVersion("2.1.22098.1123")]
|
|
@ -1,4 +1,5 @@
|
||||||
using System.Linq;
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace FCS.Lib.Utility
|
namespace FCS.Lib.Utility
|
||||||
{
|
{
|
||||||
|
@ -52,15 +53,16 @@ namespace FCS.Lib.Utility
|
||||||
// Si = int(Ci/5) + (Ci*2)MOD10)
|
// Si = int(Ci/5) + (Ci*2)MOD10)
|
||||||
// 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.Parse(vatNumber) == 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
var r = new[] { 0, 2, 4, 5, 8 }
|
var r = new[] { 0, 2, 4, 6, 8 }
|
||||||
.Sum(m => (int)char.GetNumericValue(vatNumber[m]) / 5 +
|
.Sum(m => (int)char.GetNumericValue(vatNumber[m]) / 5 +
|
||||||
(int)char.GetNumericValue(vatNumber[m]) * 2 % 10);
|
(int)char.GetNumericValue(vatNumber[m]) * 2 % 10);
|
||||||
var c1 = new[] { 1, 3, 5, 7 }.Sum(m => (int)char.GetNumericValue(vatNumber[m]));
|
var c1 = new[] { 1, 3, 5, 7 }.Sum(m => (int)char.GetNumericValue(vatNumber[m]));
|
||||||
var c10 = (10 - (r + c1) % 10) % 10;
|
var c10 = (10 - (r + c1) % 10) % 10;
|
||||||
return $"{vatNumber.Substring(0,9)}{c10}{vatNumber.Substring(9,1)}" == vatNumber;
|
return $"{vatNumber.Substring(0, 9)}{c10}01" == vatNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool ValidateMod11(string number)
|
private static bool ValidateMod11(string number)
|
||||||
|
@ -78,18 +80,18 @@ namespace FCS.Lib.Utility
|
||||||
return sum % 11 == 0;
|
return sum % 11 == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//private static string SanitizeVatNumber(string vatNumber)
|
private static string SanitizeVatNumber(string vatNumber)
|
||||||
//{
|
{
|
||||||
// var washing = vatNumber.Replace(" ", "").Replace("-", "").ToUpperInvariant();
|
vatNumber = vatNumber.ToUpperInvariant();
|
||||||
// var result = washing.Replace("DK", "").Replace("NO", "").Replace("SE","") ;
|
return vatNumber
|
||||||
// if (result.Contains("MVA"))
|
.Replace(" ", "")
|
||||||
// result = result.Replace("MVA", "");
|
.Replace("-", "")
|
||||||
// return result.Length switch
|
.Replace("DK", "")
|
||||||
// {
|
.Replace("NO", "")
|
||||||
// >= 10 => vatNumber[..10],
|
.Replace("SE","")
|
||||||
// < 10 => result
|
.Replace("MVA", "");
|
||||||
// };
|
}
|
||||||
//}
|
|
||||||
//private static bool ValidateMod10(string number)
|
//private static bool ValidateMod10(string number)
|
||||||
//{
|
//{
|
||||||
// if (long.Parse(number) == 0)
|
// if (long.Parse(number) == 0)
|
||||||
|
|
Loading…
Reference in a new issue