首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >俄罗斯增值税编号验证

俄罗斯增值税编号验证
EN

Stack Overflow用户
提问于 2012-11-27 09:20:33
回答 3查看 4.9K关注 0票数 1

是否有人有验证俄罗斯税务登记号码(增值税)的代码。C#代码将是伟大的,但如果有人有其他语言,这也将是有帮助的。

格式(俄罗斯增值税编号=“税务识别号”=“Идентификационныйномерналогоплательщика”):

10位数字(法人资格)或12位数字(人),前两位数字是出生或公司登记区域(对于外国公司,在领先99之后的两位数字)国防部11-10。 第二次--检查(2004年以前,它改变了,现在仍然存在)。 对于法人使用可变的第二代码(KPP),通常前4位数字相同(99-区域规则不适用),通常和默认的XXXX01001。 KPP也是计数器(最后3个数字) KPP的数量仅限于77和50个地区(每个地区只有一个)的税务检查次数,再加上最大公司的一个代码。

来源: countries

EN

回答 3

Stack Overflow用户

发布于 2012-11-27 21:51:53

这是一个C#程序,将验证俄罗斯个人和公司的增值税号码。请考虑进行进一步的输入验证(核实已通过的增值税数字仅包含数字,是否具有所需的长度等等):

代码语言:javascript
复制
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());

        }
    }
}
票数 2
EN

Stack Overflow用户

发布于 2015-11-24 20:33:59

如果这是一个选项,您可以使用js (我的也是):

https://github.com/se-panfilov/jsvat

它支持欧盟(也包括俄罗斯)的增值税数字。

(jsvat check的增值税编号为两次-使用regexp和数学计算)

票数 0
EN

Stack Overflow用户

发布于 2022-04-19 10:35:04

您可以在https://tin-check.com/上查看russion税号,这是一个API,您还可以对100多个国家进行验证。

也许是个不错的选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13580911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档