是否有人有验证俄罗斯税务登记号码(增值税)的代码。C#代码将是伟大的,但如果有人有其他语言,这也将是有帮助的。
格式(俄罗斯增值税编号=“税务识别号”=“Идентификационныйномерналогоплательщика”):
10位数字(法人资格)或12位数字(人),前两位数字是出生或公司登记区域(对于外国公司,在领先99之后的两位数字)国防部11-10。 第二次--检查(2004年以前,它改变了,现在仍然存在)。 对于法人使用可变的第二代码(KPP),通常前4位数字相同(99-区域规则不适用),通常和默认的XXXX01001。 KPP也是计数器(最后3个数字) KPP的数量仅限于77和50个地区(每个地区只有一个)的税务检查次数,再加上最大公司的一个代码。
来源: countries
发布于 2012-11-27 21:51:53
这是一个C#程序,将验证俄罗斯个人和公司的增值税号码。请考虑进行进一步的输入验证(核实已通过的增值税数字仅包含数字,是否具有所需的长度等等):
using System;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
class VatNumber
{
private int[] _numericVatNumber;
public int[] NumericVatNumber { get { return _numericVatNumber; } }
public VatNumber(string vatNumber)
{
_numericVatNumber = vatNumber.ToCharArray().Select(i => int.Parse(i.ToString())).ToArray();
}
public virtual bool IsValid(){return false;}
}
class PersonalVatNumber : VatNumber
{
public override bool IsValid()
{
var n10 = ((2 * NumericVatNumber[0] +
4 * NumericVatNumber[1] +
10 * NumericVatNumber[2] +
3 * NumericVatNumber[3] +
5 * NumericVatNumber[4] +
9 * NumericVatNumber[5] +
4 * NumericVatNumber[6] +
6 * NumericVatNumber[7] +
8 * NumericVatNumber[8]) % 11) % 10;
if (n10 == NumericVatNumber.Last())
return true;
return false;
}
public PersonalVatNumber(string vatNumber)
: base(vatNumber)
{
}
}
class CompanyVatNumber : VatNumber
{
public override bool IsValid()
{
var n11 = ((7 * NumericVatNumber[0] +
2 * NumericVatNumber[1] +
4 * NumericVatNumber[2] +
10 * NumericVatNumber[3] +
3 * NumericVatNumber[4] +
5 * NumericVatNumber[5] +
9 * NumericVatNumber[6] +
4 * NumericVatNumber[7] +
6 * NumericVatNumber[8] +
8 * NumericVatNumber[9]
) % 11) % 10;
if (n11 != NumericVatNumber[10])
return false;
var n12 = ((3 * NumericVatNumber[0] +
7 * NumericVatNumber[1] +
2 * NumericVatNumber[2] +
4 * NumericVatNumber[3] +
10 * NumericVatNumber[4] +
3 * NumericVatNumber[5] +
5 * NumericVatNumber[6] +
9 * NumericVatNumber[7] +
4 * NumericVatNumber[8] +
6 * NumericVatNumber[9] +
8 * NumericVatNumber[10]
) % 11) % 10;
if (n12 == NumericVatNumber.Last())
return true;
return false;
}
public CompanyVatNumber(string vatNumber)
: base(vatNumber)
{
}
}
static void Main(string[] args)
{
var companyVat = new CompanyVatNumber("123456789047");
Console.WriteLine(companyVat.IsValid());
var personalVat = new PersonalVatNumber("1234567894");
Console.WriteLine(personalVat.IsValid());
}
}
}发布于 2015-11-24 20:33:59
如果这是一个选项,您可以使用js (我的也是):
https://github.com/se-panfilov/jsvat
它支持欧盟(也包括俄罗斯)的增值税数字。
(jsvat check的增值税编号为两次-使用regexp和数学计算)
发布于 2022-04-19 10:35:04
您可以在https://tin-check.com/上查看russion税号,这是一个API,您还可以对100多个国家进行验证。
也许是个不错的选择。
https://stackoverflow.com/questions/13580911
复制相似问题