
概述
发票代码是税务部门给予发票的编码。在查询发票真伪的时候,需要输入发票代码。普通发票,就是通常说的手工版发票代码为12位。增值税专用发票和增值税普通发票的代码原为10位,2018年1月1日开始,我国对增值税普通发票进行调整,新版增值税普通发票(折叠票)发票代码从10位调整为12位。
那么,如何使用C#根据发票代码判断发票种类呢?
解释
public static InvoiceType GetInvoiceType(string fapdm) { // 一些例外发票代码 var someCode = new string[] { "144031539110", "131001570151", "133011501118", "111001571071" }; if (someCode.Contains(fapdm)) { //增值税电子普通发票 return InvoiceType.VatElectronicOrdinary; } if (fapdm.Length == 12) { if (fapdm.Substring(0, 1) == "0" && fapdm.Substring(10, 2) == "11") { //增值税电子普通发票 return InvoiceType.VatElectronicOrdinary; } if (fapdm.Substring(0, 1) == "0" && fapdm.Substring(10, 2) == "12") { //货物运输业增值税普通发票 return InvoiceType.VatFreightTransportOrdinary; } if (fapdm.Substring(0, 1) == "0" && (fapdm.Substring(10, 2) == "04" || fapdm.Substring(10, 2) == "05")) { //增值税普通发票 return InvoiceType.VatOrdinary; } if (fapdm.Substring(0, 1) == "0" && (fapdm.Substring(10, 2) == "06" || fapdm.Substring(10, 2) == "07")) { //卷式普通发票 return InvoiceType.VatVolumeOrdinary; } if (fapdm.Substring(0, 1) == "0" && fapdm.Substring(10, 2) == "17") { //二手车销售统一发票 return InvoiceType.VatSecondHandMotor; } if (fapdm.Substring(0, 1) != "0" && fapdm.Substring(7, 1) == "2") { //机动车销售统一发票 return InvoiceType.VatMotorSpecial; } } if (fapdm.Length == 10) { var b = fapdm.Substring(7, 1); if (b == "1" || b == "5") { //增值税专用发票 return InvoiceType.VatSpecial; } if (b == "6" || b == "3") { //增值税普通发票 return InvoiceType.VatOrdinary; } if (b == "7" || b == "2") { //货物运输业增值税专用发票 return InvoiceType.VatFreightTransportSpecial; } } //未知发票 return InvoiceType.UnKnow; }
注:以上代码中的枚举未给出,请自行添加发票种类枚举。
本文由 .Net中文网 原创发布,欢迎大家踊跃转载。
转载请注明本文地址:https://www.byteflying.com/archives/3137。