开票校验方法、装置、可读介质及电子设备与流程

文档序号:24487913发布日期:2021-03-30 21:12阅读:260来源:国知局
开票校验方法、装置、可读介质及电子设备与流程

本公开涉及电子发票技术领域,具体地,涉及一种开票校验方法、装置、可读介质及电子设备。



背景技术:

随着社会的发展,发票在我国社会经济活动中的意义和作用越来越明显,也越来越受到广大纳税人的关注,开票量呈现倍数增加。同时,发票的票面数据极其重要,只有发票数据格式符合税务政策规则才能认为是有效发票,进行报销和报账。因此,如何在开票量大和不同开票场景的情况下,高效快速的保证开票数据的合规性校验显得尤为重要,传统的发票数据校验对这些方面认知不足,难以满足当前复杂条件下开票数据校验要求。并且,传统的发票数据校验,是在开具的发票时,根据不同的发票的类型调用不同的校验模板或者接口,完成合规性校验,造成校验不够集中,可移植性差。



技术实现要素:

本公开的目的是提供一种多个票种通用的对发票数据进行整体校验的开票校验方法、装置、可读介质及电子设备,以满足当前复杂条件下开票数据校验要求。

为了实现上述目的,本公开提供一种开票校验方法,所述方法包括:

根据待开发票的票种调用与所述票种对应的预设特殊字符库对所述待开发票的必填项进行校验;

根据所述待开发票的税号的长度调用与所述长度对应的预设税号规则对所述待开发票的税号进行校验;

根据所述待开发票的票种调用与所述票种对应的预设数据项长度规则对所述待开发票的数据项的长度进行校验;

根据所述待开发票的票种调用与所述票种对应的预设数据项格式规则对所述待开发票的数据项的格式进行校验;

根据所述待开发票的票种调用与所述票种对应的预设备注校验规则对所述待开发票的备注进行校验;

对所述待开发票进行金额误差校验、税额误差校验和发票总体误差校验。

可选地,所述根据待开发票的票种调用与所述票种对应的预设特殊字符库对所述待开发票的必填项进行校验包括:

在判断所述待开发票的票种为专票时,调用第一特殊字符库对所述待开发票的必填项进行校验,在所述必填项中出现所述第一特殊字符库中的特殊字符时,校验得到所述待开发票不合规,并将出现的特殊字符在所述必填项中标记出来,所述第一特殊字符库包括换行符;

在判断所述待开发票的票种为非专票时,调用第二特殊字符库对所述待开发票的必填项进行校验,在所述必填项中出现所述第二特殊字符库中的特殊字符时,校验得到所述待开发票不合规,并将出现的特殊字符在所述必填项中标记出来,所述第二特殊字符库不包括换行符。

可选地,所述根据所述待开发票的税号的长度调用与所述长度对应的预设税号规则对所述待开发票的税号进行校验包括:

在判断所述待开发票的税号的长度为6至15位时,判断所述待开发票的税号是否满足第一税号规则,在所述待开发票的税号不满足所述第一税号规则时,校验得到所述待开发票不合规,所述第一税号规则为6至15位任意数字字母组合;

在判断所述待开发票的税号的长度为16至18位时,判断所述待开发票的税号是否满足第二税号规则、第三税号规则和第四税号规则,在所述待开发票的税号不满足所述第二税号规则、第三税号规则和第四税号规则中的任意一个时,校验得到所述待开发票不合规,所述第二税号规则为6位数字加最多12位任意数字字母组合,所述第三税号规则为1位字母加6位数字加最多11位任意数字字母组合,所述第四税号规则为2位字母加6位数字加最多10位任意数字字母组合;

在判断所述待开发票的税号的长度为19至20位时,判断所述待开发票的税号是否满足第五税号规则、第六税号规则、第七税号规则、第八税号规则和第九税号规则,在所述待开发票的税号不满足所述第五税号规则、第六税号规则、第七税号规则、第八税号规则和第九税号规则中的任意一个时,校验得到所述待开发票不合规,所述第五税号规则为15位身份证号加最多5位任意数字字母组合,所述第六税号规则为18位身份证号加最多2位任意数字字母组合,所述第七税号规则为1位字母加15位身份证号加最多4位任意数字字母组合,所述第八税号规则为1位字母加18位身份证号加最多1位任意数字字母组合,所述第九税号规则为6位数字加最多14位任意数字和非oisz的字母组合。

可选地,所述根据所述待开发票的票种调用与所述票种对应的预设数据项长度规则对所述待开发票的数据项的长度进行校验包括:

在判断所述待开发票的票种为专票时,判断所述待开发票的购方税号是否为空,在所述待开发票的购方税号为空时,校验得到所述待开发票不合规;

在判断所述待开发票的票种为卷票时,判断所述待开发票的商品名称的长度是否为40个字节,在所述待开发票的商品名称的长度不是40个字节时,校验得到所述待开发票不合规。

可选地,所述根据所述待开发票的票种调用与所述票种对应的预设数据项格式规则对所述待开发票的数据项的格式进行校验包括:

在判断所述待开发票的票种为蓝字发票时,判断所述待开发票的数据项是否满足第一数据项格式规则,在所述待开发票的数据项不满足所述第一数据项格式规则时,校验得到所述待开发票不合规,所述第一数据项格式规则包括:合计金额大于0;且,金额为负的商品行,其上一商品行的金额为正;

在判断所述待开发票的票种为红字发票时,判断所述待开发票的数据项是否满足第二数据项格式规则,在所述待开发票的数据项不满足所述第二数据项格式规则时,校验得到所述待开发票不合规,所述第二数据项格式规则包括:合计金额小于0,为未冲红发票,为有效发票。

可选地,所述根据所述待开发票的票种调用与所述票种对应的预设备注校验规则对所述待开发票的备注进行校验包括:

在判断所述待开发票的票种为专票红字发票时,判断所述待开发票的备注是否包含第一内容,在所述待开发票的备注不包含第一内容时,校验得到所述待开发票不合规,所述第一内容为:开具红字增值税专用发票信息表编号;

在判断所述待开发票的票种为普通红字发票时,判断所述待开发票的备注是否包含第二内容,在所述待开发票的备注不包含第二内容时,校验得到所述待开发票不合规,所述第二内容为:对应正数发票代码和对应正数发票号码;

在判断所述待开发票的票种为代开发票时,判断所述待开发票的备注是否包含第三内容,在所述待开发票的备注不包含第三内容时,校验得到所述待开发票不合规,所述第三内容为:代开发票备注注明代开企业税号与代开企业名称,实际填写为;

在判断所述待开发票的票种为差额征税蓝票时,判断所述待开发票的备注是否包含第四内容,在所述待开发票的备注不包含第四内容时,校验得到所述待开发票不合规,所述第四内容为:差额征税蓝票需在备注开始注明;

在判断所述待开发票的票种为差额征税红票时,判断所述待开发票的备注是否包含第五内容,在所述待开发票的备注不包含第五内容时,校验得到所述待开发票不合规,所述第五内容为:差额征税红票需在备注开始注明。

可选地,所述方法还包括:

在所述待开发票为含税模式时,根据预设价税分离算法将所述待开发票转换为不含税模式。

本公开还提供一种开票校验装置,包括:

特殊字符校验模块,用于根据待开发票的票种调用与所述票种对应的预设特殊字符库对所述待开发票的必填项进行校验;

税号校验模块,用于根据所述待开发票的税号的长度调用与所述长度对应的预设税号规则对所述待开发票的税号进行校验;

数据项长度校验模块,用于根据所述待开发票的票种调用与所述票种对应的预设数据项长度规则对所述待开发票的数据项的长度进行校验;

数据项格式校验模块,用于根据所述待开发票的票种调用与所述票种对应的预设数据项格式规则对所述待开发票的数据项的格式进行校验;

备注校验模块,用于根据所述待开发票的票种调用与所述票种对应的预设备注校验规则对所述待开发票的备注进行校验;

误差校验模块,用于对所述待开发票进行金额误差校验、税额误差校验和发票总体误差校验。

本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

本公开还提供一种电子设备,其特征在于,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现上述方法的步骤。

本公开提供的技术方案包括:对待开发票进行特殊字符、税号、数据项长度、数据项格式、备注、金额误差、税额误差、总体误差进行校验,完成了对待开发票进行整体校验,满足当前复杂条件下开票数据校验要求。并且,本方案可以针对各票种进行合规性校验,其是在校验的各步骤分票种进行校验。即本方案针对各票种调用同一模板(发票校验模板)完成合规性校验。因此,相对于传统的发票数据校验是在开具的发票时,根据不同的发票的类型调用不同的校验模板(例如,增值税普通发票模板、增值税专用发票模板)或者不同接口完成合规性校验,本方案校验更集中,可移植性更好。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是本公开实施例提供的一种开票校验方法的流程图。

图2是本公开实施例提供的一种开票校验装置的框图。

图3是本公开实施例提供的一种电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

本公开实施例提供一种开票校验方法。图1示出了所述开票校验方法的流程图。如图1所示,所述方法包括:

步骤s11,根据待开发票的票种调用与所述票种对应的预设特殊字符库对所述待开发票的必填项进行校验。

其中,预存有至少一个预设特殊字符库,每个预设特殊字符库对应至少一种票种。根据税务政策对各票种必填项中不允许出现的特殊字符的要求,对各票种进行分类,每一类对应同一预设特殊字符库。通过此步骤,针对各票种调用与各票种对应的预设特殊字符库对各票种的必填项进行特殊字符校验,以将不符合规定的、不能出现在发票票面上的特殊字符进行统一过滤和拦截。

步骤s12,根据所述待开发票的税号的长度调用与所述长度对应的预设税号规则对所述待开发票的税号进行校验。

由于税务政策中对税号的格式的要求特别高,需要单独对税号的格式、长度、大小写等方面进行校验以确保开票税号合法。通过此步骤,根据税务政策对税号的要求,基于税号的长度设定不同预设税号规则,根据待开发票的税号的长度调用与所述长度对应的预设税号规则对所述待开发票的税号进行校验,以完成对发票信息中的购方税号和销方税号进行合规性校验。

步骤s13,根据所述待开发票的票种调用与所述票种对应的预设数据项长度规则对所述待开发票的数据项的长度进行校验。

由于不同票种之间各个数据项的长度要求并不是一样的。根据税务政策对各票种各数据项长度的要求,对各票种设定各预设数据项长度规则。各预设数据项长度规则可以全部不同,则对待开发票的数据项的长度进行校验可以是:先分票种处理各个票种各个字段长度的差异,走特殊的逻辑校验分支,即实现步骤s13;然后走通用数据项长度校验规则,也就是各个票种都统一执行相同的数据项长度规则校验(即本方法还包括对待开发票进行一通用数据项长度规则校验)。同理,各预设数据项长度规则可以部分相同部分不同,不同部分即前述的各个票种各个字段长度的差异,相同部分即前述的通用数据项长度校验规则,对待开发票的数据项的长度进行校验可以是:根据待开发票的票种调用与所述票种对应的预设数据项长度规则对所述待开发票的数据项的长度进行校验(即本方法对待开发票的数据项的长度进行校验仅包括步骤s13)。

步骤s14,根据所述待开发票的票种调用与所述票种对应的预设数据项格式规则对所述待开发票的数据项的格式进行校验。

由于不同票种之间各个数据项的格式要求并不是一样的。根据税务政策对各票种各数据项格式的要求,对各票种设定各预设数据项格式规则。通过此步骤,实现了分票种对发票的数据项的格式进行校验。

步骤s15,根据所述待开发票的票种调用与所述票种对应的预设备注校验规则对所述待开发票的备注进行校验。

根据税务政策,针对特殊发票如红票、代开发票、差额征税发票等的备注要求不同,因而需要校验。通过此步骤,根据待开发票的票种调用与所述票种对应的预设备注校验规则对所述待开发票的备注进行校验,可以实现对特殊发票如红票、代开发票、差额征税发票等进行备注校验。

步骤s16,对所述待开发票进行金额误差校验、税额误差校验和发票总体误差校验。

通过此步骤,根据税务政策允许的误差范围对各票种进行金额误差校验、税额误差校验和发票总体误差校验。

本公开提供的技术方案包括:对待开发票进行特殊字符、税号、数据项长度、数据项格式、备注、金额误差、税额误差、总体误差进行校验,完成了对待开发票进行整体校验,满足当前复杂条件下开票数据校验要求。并且,本方案可以针对各票种进行合规性校验,其是在校验的各步骤分票种进行校验。即本方案针对各票种调用同一模板(发票校验模板)完成合规性校验。因此,相对于传统的发票数据校验是在开具的发票时,根据不同的发票的类型调用不同的校验模板(例如,增值税普通发票模板、增值税专用发票模板)或者不同接口完成合规性校验,本方案校验更集中,可移植性更好。

可选地,步骤s11包括:

在判断所述待开发票的票种为专票时,调用第一特殊字符库对所述待开发票的必填项进行校验,在所述必填项中出现所述第一特殊字符库中的特殊字符时,校验得到所述待开发票不合规,并将出现的特殊字符在所述必填项中标记出来,所述第一特殊字符库包括换行符。

其中,专票为增值税专用发票,其必填项包括销售方地址电话、购买方地址电话、销售方开户行及账号、购买方开户行及账号等。

在判断所述待开发票的票种为非专票时,调用第二特殊字符库对所述待开发票的必填项进行校验,在所述必填项中出现所述第二特殊字符库中的特殊字符时,校验得到所述待开发票不合规,并将出现的特殊字符在所述必填项中标记出来,所述第二特殊字符库不包括换行符。

其中,非专票的必填项例如是开票员、收款员、发票流水、规格型号等。

可选地,步骤s12包括:

在判断所述待开发票的税号的长度为6至15位时,判断所述待开发票的税号是否满足第一税号规则,在所述待开发票的税号不满足所述第一税号规则时,校验得到所述待开发票不合规,所述第一税号规则为6至15位任意数字字母组合。

在判断所述待开发票的税号的长度为16至18位时,判断所述待开发票的税号是否满足第二税号规则、第三税号规则和第四税号规则,在所述待开发票的税号不满足所述第二税号规则、第三税号规则和第四税号规则中的任意一个时,校验得到所述待开发票不合规,所述第二税号规则为6位数字加最多12位任意数字字母组合,所述第三税号规则为1位字母加6位数字加最多11位任意数字字母组合,所述第四税号规则为2位字母加6位数字加最多10位任意数字字母组合。

在判断所述待开发票的税号的长度为19至20位时,判断所述待开发票的税号是否满足第五税号规则、第六税号规则、第七税号规则、第八税号规则和第九税号规则,在所述待开发票的税号不满足所述第五税号规则、第六税号规则、第七税号规则、第八税号规则和第九税号规则中的任意一个时,校验得到所述待开发票不合规,所述第五税号规则为15位身份证号加最多5位任意数字字母组合,所述第六税号规则为18位身份证号加最多2位任意数字字母组合,所述第七税号规则为1位字母加15位身份证号加最多4位任意数字字母组合,所述第八税号规则为1位字母加18位身份证号加最多1位任意数字字母组合,所述第九税号规则为6位数字加最多14位任意数字和非oisz的字母组合。

上述技术方案可以如下表所示:

可选地,步骤s13包括:

在判断所述待开发票的票种为专票时,判断所述待开发票的购方税号是否为空,在所述待开发票的购方税号为空时,校验得到所述待开发票不合规。

根据税务政策,专票的购方税号不能为空,而其他发票的购方税号可以为空。所以在开具专票的时候,用户可能受开具其他发票习惯的影响而使购方税号为空,导致出现错误,通过此步骤可以避免此错误。

在判断所述待开发票的票种为卷票时,判断所述待开发票的商品名称的长度是否为40个字节,在所述待开发票的商品名称的长度不是40个字节时,校验得到所述待开发票不合规。

根据税务政策,卷票的商品名称的长度为40个字节,其他发票的商品名称的长度为90个字节。所以在开具卷票的时候,用户可能受开具其他发票习惯的影响而使商品名称长度为90个字节,导致出现错误,通过此步骤可以避免此错误。

可选地,步骤s14包括:

在判断所述待开发票的票种为蓝字发票时,判断所述待开发票的数据项是否满足第一数据项格式规则,在所述待开发票的数据项不满足所述第一数据项格式规则时,校验得到所述待开发票不合规,所述第一数据项格式规则包括:合计金额大于0;且,金额为负的商品行,其上一商品行的金额为正。

在判断所述待开发票的票种为红字发票时,判断所述待开发票的数据项是否满足第二数据项格式规则,在所述待开发票的数据项不满足所述第二数据项格式规则时,校验得到所述待开发票不合规,所述第二数据项格式规则包括:合计金额小于0,为未冲红发票,为有效发票。

蓝字发票即正数发票,红字发票即负数发票,数据项格式规则可以包括如下表所示:

可选地,步骤s15包括:

在判断所述待开发票的票种为专票红字发票时,判断所述待开发票的备注是否包含第一内容,在所述待开发票的备注不包含第一内容时,校验得到所述待开发票不合规,所述第一内容为:开具红字增值税专用发票信息表编号。

在判断所述待开发票的票种为普通红字发票时,判断所述待开发票的备注是否包含第二内容,在所述待开发票的备注不包含第二内容时,校验得到所述待开发票不合规,所述第二内容为:对应正数发票代码和对应正数发票号码。

在判断所述待开发票的票种为代开发票时,判断所述待开发票的备注是否包含第三内容,在所述待开发票的备注不包含第三内容时,校验得到所述待开发票不合规,所述第三内容为:代开发票备注注明代开企业税号与代开企业名称,实际填写为。

在判断所述待开发票的票种为差额征税蓝票时,判断所述待开发票的备注是否包含第四内容,在所述待开发票的备注不包含第四内容时,校验得到所述待开发票不合规,所述第四内容为:差额征税蓝票需在备注开始注明。

在判断所述待开发票的票种为差额征税红票时,判断所述待开发票的备注是否包含第五内容,在所述待开发票的备注不包含第五内容时,校验得到所述待开发票不合规,所述第五内容为:差额征税红票需在备注开始注明。

上述技术方案,即:对于专票红字发票,备注必须包含“开具红字增值税专用发票信息表编号”等内容,对于普通的红字发票,备注必须包含“对应正数发票代码”和“对应正数发票号码”;对于代开发票,备注必须包含“代开发票备注注明代开企业税号与代开企业名称,实际填写为”;对于差额征税蓝票,备注必须包含“差额征税蓝票需在备注开始注明”,如果是差额征税红票,备注必须包含“差额征税红票需在备注开始注明”。当一张发票又是红票(专票红字发票或普通的红字发票)又是差额征税发票时,备注校验规则要重叠。

由于用户在开具发票时,可能是含税模式,因此需要转换为不含税模式。可选地,所述方法还包括:

在所述待开发票为含税模式时,根据预设价税分离算法将所述待开发票转换为不含税模式。

其中预设价税分离算法如下所示(单价数量保留8位小数,金额税额保留2位小数):

对于非折扣票:不含税金额=含税金额/(1+税率);不含税单价=不含税金额/数量(项目数量不为空且单价为空);不含税单价=含税单价/(1+税率)(项目数量为空且单价不为空);数量=不含税金额/不含税单价;不含税单价=含税单价/(1+税率)(数量单价都不为空,依照单价算单价);税额=含税金额-不含税金额。

对于折扣票:差额=含税金额-扣除额;不含税差额=差额/(1+税率);不含税金额=不含税差额+扣除额;不含税单价=不含税金额/数量(项目数量不为空且单价为空);不含税单价=含税单价/(1+税率)(项目数量为空且单价不为空);数量=不含税金额/不含税单价;不含税单价=不含税金额/数量(数量单价都不为空,依据数量算单价);税额=含税金额-不含税金额。

可选地,步骤s16包括:

对所述待开发票进行金额误差校验。

具体校验规则可以为:各个明细行在含税和不含税两种模式下,金额与数量和单价的乘积之间的误差不能超过0.01。也就是说在含税时,含税金额-含税单价*商品数量必须小于0.01;在不含税时,不含税金额-不含税单价*商品数量必须小于0.01,否则校验得到所述待开发票不合规。

对所述待开发票进行税额误差校验。

具体校验规则可以为:各个明细行的含税金额和不含税金额之差,与税额之间的误差,不能超过0.06;发票总计合计含税金额和总计不含税金额之差,与合计税额之间的误差,不能超过1.27。这个有个特殊处理,对于清单红票,由于多明细合并成了一行明细,故明细行的含税金额和不含税金额之差,与税额之间的误差,也是按照不能超过1.27来计算。

对所述待开发票进行发票总体误差校验。

具体校验规则可以为:各个明细行的含税金额之和,必须要等于发票总计合计含税金额;各个明细行的不含税金额之和,必须要等于发票总计不含税金额;各个明细行的税额之和,必须要等于发票合计税额。

在实施上述技术方案时,可以通过设置发票种类代码来识别判断待开发票的票种属于增值税专用发票、或属于增值税普通发票、或属于增值税电子普通发票、或属于卷票等;可以通过设置开票类型来识别判断待开发票的票种属于蓝字发票或属于红字发票;可以根据编码表版本号不为空且发票明细中第一行明细中的扣除额不为空,来识别待开发票的票种是属于差额征税发票。

基于上述发明构思,本公开实施例还提供一种开票校验装置10。如图2所示,所述开票校验装置10包括:

特殊字符校验模块11,用于根据待开发票的票种调用与所述票种对应的预设特殊字符库对所述待开发票的必填项进行校验;

税号校验模块12,用于根据所述待开发票的税号的长度调用与所述长度对应的预设税号规则对所述待开发票的税号进行校验;

数据项长度校验模块13,用于根据所述待开发票的票种调用与所述票种对应的预设数据项长度规则对所述待开发票的数据项的长度进行校验;

数据项格式校验模块14,用于根据所述待开发票的票种调用与所述票种对应的预设数据项格式规则对所述待开发票的数据项的格式进行校验;

备注校验模块15,用于根据所述待开发票的票种调用与所述票种对应的预设备注校验规则对所述待开发票的备注进行校验;

误差校验模块16,用于对所述待开发票进行金额误差校验、税额误差校验和发票总体误差校验。

本公开提供的技术方案包括:对待开发票进行特殊字符、税号、数据项长度、数据项格式、备注、金额误差、税额误差、总体误差进行校验,完成了对待开发票进行整体校验,满足当前复杂条件下开票数据校验要求。并且,本方案可以针对各票种进行合规性校验,其是在校验的各步骤分票种进行校验。即本方案针对各票种调用同一模板(发票校验模板)完成合规性校验。因此,相对于传统的发票数据校验是在开具的发票时,根据不同的发票的类型调用不同的校验模板(例如,增值税普通发票模板、增值税专用发票模板)或者不同接口完成合规性校验,本方案校验更集中,可移植性更好。

可选地,特殊字符校验模块11包括:

专票特殊字符校验子模块,用于在判断所述待开发票的票种为专票时,调用第一特殊字符库对所述待开发票的必填项进行校验,在所述必填项中出现所述第一特殊字符库中的特殊字符时,校验得到所述待开发票不合规,并将出现的特殊字符在所述必填项中标记出来,所述第一特殊字符库包括换行符。

其中,专票为增值税专用发票,其必填项包括销售方地址电话、购买方地址电话、销售方开户行及账号、购买方开户行及账号等。

非专票特殊字符校验子模块,用于在判断所述待开发票的票种为非专票时,调用第二特殊字符库对所述待开发票的必填项进行校验,在所述必填项中出现所述第二特殊字符库中的特殊字符时,校验得到所述待开发票不合规,并将出现的特殊字符在所述必填项中标记出来,所述第二特殊字符库不包括换行符。

其中,非专票的必填项例如是开票员、收款员、发票流水、规格型号等。

可选地,税号校验模块12包括:

第一税号长度子模块,用于在判断所述待开发票的税号的长度为6至15位时,判断所述待开发票的税号是否满足第一税号规则,在所述待开发票的税号不满足所述第一税号规则时,校验得到所述待开发票不合规,所述第一税号规则为6至15位任意数字字母组合。

第二税号长度子模块,用于在判断所述待开发票的税号的长度为16至18位时,判断所述待开发票的税号是否满足第二税号规则、第三税号规则和第四税号规则,在所述待开发票的税号不满足所述第二税号规则、第三税号规则和第四税号规则中的任意一个时,校验得到所述待开发票不合规,所述第二税号规则为6位数字加最多12位任意数字字母组合,所述第三税号规则为1位字母加6位数字加最多11位任意数字字母组合,所述第四税号规则为2位字母加6位数字加最多10位任意数字字母组合。

第三税号长度子模块,用于在判断所述待开发票的税号的长度为19至20位时,判断所述待开发票的税号是否满足第五税号规则、第六税号规则、第七税号规则、第八税号规则和第九税号规则,在所述待开发票的税号不满足所述第五税号规则、第六税号规则、第七税号规则、第八税号规则和第九税号规则中的任意一个时,校验得到所述待开发票不合规,所述第五税号规则为15位身份证号加最多5位任意数字字母组合,所述第六税号规则为18位身份证号加最多2位任意数字字母组合,所述第七税号规则为1位字母加15位身份证号加最多4位任意数字字母组合,所述第八税号规则为1位字母加18位身份证号加最多1位任意数字字母组合,所述第九税号规则为6位数字加最多14位任意数字和非oisz的字母组合。

可选地,所述数据项长度校验模块13包括:

专票数据项长度校验子模块,用于在判断所述待开发票的票种为专票时,判断所述待开发票的购方税号是否为空,在所述待开发票的购方税号为空时,校验得到所述待开发票不合规。

卷票数据项长度校验子模块,用于在判断所述待开发票的票种为卷票时,判断所述待开发票的商品名称的长度是否为40个字节,在所述待开发票的商品名称的长度不是40个字节时,校验得到所述待开发票不合规。

可选地,数据项格式校验模块14包括:

蓝字发票数据项格式校验子模块,用于在判断所述待开发票的票种为蓝字发票时,判断所述待开发票的数据项是否满足第一数据项格式规则,在所述待开发票的数据项不满足所述第一数据项格式规则时,校验得到所述待开发票不合规,所述第一数据项格式规则包括:合计金额大于0;且,金额为负的商品行,其上一商品行的金额为正。

红字发票数据项格式校验子模块,用于在判断所述待开发票的票种为红字发票时,判断所述待开发票的数据项是否满足第二数据项格式规则,在所述待开发票的数据项不满足所述第二数据项格式规则时,校验得到所述待开发票不合规,所述第二数据项格式规则包括:合计金额小于0,为未冲红发票,为有效发票。

蓝字发票即正数发票,红字发票即负数发票,数据项格式规则可以包括如下表所示:

可选地,备注校验模块15包括:

专票红字发票备注校验子模块,用于在判断所述待开发票的票种为专票红字发票时,判断所述待开发票的备注是否包含第一内容,在所述待开发票的备注不包含第一内容时,校验得到所述待开发票不合规,所述第一内容为:开具红字增值税专用发票信息表编号。

普通红字发票备注校验子模块,用于在判断所述待开发票的票种为普通红字发票时,判断所述待开发票的备注是否包含第二内容,在所述待开发票的备注不包含第二内容时,校验得到所述待开发票不合规,所述第二内容为:对应正数发票代码和对应正数发票号码。

代开发票备注校验子模块,用于在判断所述待开发票的票种为代开发票时,判断所述待开发票的备注是否包含第三内容,在所述待开发票的备注不包含第三内容时,校验得到所述待开发票不合规,所述第三内容为:代开发票备注注明代开企业税号与代开企业名称,实际填写为。

差额征税蓝票备注校验子模块,用于在判断所述待开发票的票种为差额征税蓝票时,判断所述待开发票的备注是否包含第四内容,在所述待开发票的备注不包含第四内容时,校验得到所述待开发票不合规,所述第四内容为:差额征税蓝票需在备注开始注明。

差额征税红票备注校验子模块,用于在判断所述待开发票的票种为差额征税红票时,判断所述待开发票的备注是否包含第五内容,在所述待开发票的备注不包含第五内容时,校验得到所述待开发票不合规,所述第五内容为:差额征税红票需在备注开始注明。

上述技术方案,即:对于专票红字发票,备注必须包含“开具红字增值税专用发票信息表编号”等内容,对于普通的红字发票,备注必须包含“对应正数发票代码”和“对应正数发票号码”;对于代开发票,备注必须包含“代开发票备注注明代开企业税号与代开企业名称,实际填写为”;对于差额征税蓝票,备注必须包含“差额征税蓝票需在备注开始注明”,如果是差额征税红票,备注必须包含“差额征税红票需在备注开始注明”。当一张发票又是红票(专票红字发票或普通的红字发票)又是差额征税发票时,备注校验规则要重叠。

由于用户在开具发票时,可能是含税模式,因此需要转换为不含税模式。可选地,所述开票校验装置10还包括:

价税分离模块,用于在所述待开发票为含税模式时,根据预设价税分离算法将所述待开发票转换为不含税模式。

其中预设价税分离算法如下所示(单价数量保留8位小数,金额税额保留2位小数):

对于非折扣票:不含税金额=含税金额/(1+税率);不含税单价=不含税金额/数量(项目数量不为空且单价为空);不含税单价=含税单价/(1+税率)(项目数量为空且单价不为空);数量=不含税金额/不含税单价;不含税单价=含税单价/(1+税率)(数量单价都不为空,依照单价算单价);税额=含税金额-不含税金额。

对于折扣票:差额=含税金额-扣除额;不含税差额=差额/(1+税率);不含税金额=不含税差额+扣除额;不含税单价=不含税金额/数量(项目数量不为空且单价为空);不含税单价=含税单价/(1+税率)(项目数量为空且单价不为空);数量=不含税金额/不含税单价;不含税单价=不含税金额/数量(数量单价都不为空,依据数量算单价);税额=含税金额-不含税金额。

可选地,误差校验模块16包括:

金额误差校验子模块,用于对所述待开发票进行金额误差校验。

具体校验规则可以为:各个明细行在含税和不含税两种模式下,金额与数量和单价的乘积之间的误差不能超过0.01。也就是说在含税时,含税金额-含税单价*商品数量必须小于0.01;在不含税时,不含税金额-不含税单价*商品数量必须小于0.01,否则校验得到所述待开发票不合规。

税额误差校验子模块,用于对所述待开发票进行税额误差校验。

具体校验规则可以为:各个明细行的含税金额和不含税金额之差,与税额之间的误差,不能超过0.06;发票总计合计含税金额和总计不含税金额之差,与合计税额之间的误差,不能超过1.27。这个有个特殊处理,对于清单红票,由于多明细合并成了一行明细,故明细行的含税金额和不含税金额之差,与税额之间的误差,也是按照不能超过1.27来计算。

发票总体误差校验子模块,用于对所述待开发票进行发票总体误差校验。

具体校验规则可以为:各个明细行的含税金额之和,必须要等于发票总计合计含税金额;各个明细行的不含税金额之和,必须要等于发票总计不含税金额;各个明细行的税额之和,必须要等于发票合计税额。

在实施上述技术方案时,可以通过设置发票种类代码来识别判断待开发票的票种属于增值税专用发票、或属于增值税普通发票、或属于增值税电子普通发票、或属于卷票等;可以通过设置开票类型来识别判断待开发票的票种属于蓝字发票或属于红字发票;可以根据编码表版本号不为空且发票明细中第一行明细中的扣除额不为空,来识别待开发票的票种是属于差额征税发票。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

基于上述发明构思,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述开票校验方法的步骤。

基于上述发明构思,本公开实施例还提供一种电子设备。图3是根据一示例性实施例示出的一种电子设备700的框图。如图3所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(i/o)接口704,以及通信组件705中的一者或多者。

其中,处理器701用于控制该电子设备700的整体操作,以完成上述的开票校验方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g、4g、nb-iot、emtc、或其他5g等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:wi-fi模块,蓝牙模块,nfc模块等等。

在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的开票校验方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的开票校验方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的开票校验方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1