为含税额销售单开具单税率增值税发票的方法和系统与流程

文档序号:11952973阅读:287来源:国知局
为含税额销售单开具单税率增值税发票的方法和系统与流程
本发明涉及电子发票
技术领域
,具体地,涉及一种为含税额销售单开具单税率增值税发票的方法和系统。
背景技术
:国税局的增值税防伪税控系统为普通企业提供了开具增值税专用发票的功能,用户可以在该系统中逐项录入发票数据以完成发票开具,也可以将待开发票数据导入该系统接口以完成发票开具。但通过录入发票数据来开票,既增加了时间和人力成本,又可能在录入数据的时候出错。如果采用导入数据开票,则需要先准备好符合发票数据规范的待开发票数据,但是目前还没有一种比较好的方法来预先准备好符合发票数据规范的待开发票数据。技术实现要素:在企业生产经营活动中,通常先在企业的业务系统中生成销售单数据,所以可以考虑将销售单数据传给增值税防伪税控系统接口以完成发票开具。但由于企业在国税局的注册类型、生产经营范围不同,不同企业的销售单数据会有许多不同的属性,如果不做正确处理就传给防伪税控系统进行发票开具,会因各种数据校验关系不符而导致无法正常开票;或者即使开具了发票,也可能由于发票数据的金额、税额等数据项与企业销售单中计算的数据项存在差异,给企业的财务管理带来问题。本发明在充分考虑上述现状的情况下,提供了一种为含税额销售单开具单税率增值税发票的方法和系统,其既能节省时间和人力成本,又能预先准备好符合发票数据规范的待开发票数据。本发明提供一种为含税额销售单开具单税率增值税发票的方法,该方法包括:步骤S1、获取待开发票的销售单数据集和销售单明细数据集,所述销售单数据集包括销售单金额、销售单税额、销售单税率、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额;步骤S2、校验每个所述商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有所述商品明细行中的金额之和是否等于所述销售单金额;步骤S3、根据所述销售单税率、所述含税标志以及每个所述商品明细行中的单价和数量计算并在每个所述商品明细行中添加价税合计、发票金额、发票税额和发票单价,并且分别累加所有所述商品明细行的价税合计、发票金额和发票税额以在所述销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额;步骤S4、校验(明细合计发票税额-销售单税额)是否小于预定值;以及步骤S5、依据所述开票限额和所述增值税发票上的预定商品明细行数将所述销售单明细数据集拆分成多个待开发票数据集,并对所述多个待开发票数据集进行税额平衡。本发明还提供一种为含税额销售单开具单税率增值税发票的系统,该系统包括:获取模块,用于获取待开发票的销售单数据集和销售单明细数据集,所述销售单数据集包括销售单金额、销售单税额、销售单税率、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额;销售单数据校验模块,用于校验每个所述商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有所述商品明细行中的金额之和是否等于所述销售单金额;发票数据计算模块,用于根据所述销售单税率、所述含税标志以及每个所述商品明细行中的单价和数量计算并在每个所述商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有所述商品明细行的价税合计、发票金额和发票税额以在所述销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额;销售单税额校验模块,用于校验(明细合计发票税额-销售单税额)是否小于预定值;以及拆分模块,用于在所述销售单税额校验模块完成所述校验之后,依据所述开票限额和所述增值税发票上的预定商品明细行数将所述销售单明细数据集拆分成多个待开发票数据集,并对所述多个待开发票数据集进行税额平衡。通过上述技术方案,由于根据本发明的方法和系统利用了企业业务系统中的销售单数据,并对销售单数据进行处理以得到符合发票数据规范的待开发票数据,因此能够节省时间和人力成本,提高企业的发票开具效率,减少企业不规范开具发票的风险,促进企业合法规范经营和正常的发票开具,进一步加强和规范增值税发票管理,提高企业的财务管理水平。本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:图1是根据本发明一种实施方式的为含税额销售单开具单税率增值税发票的方法的流程图;以及图2是根据本发明一种实施方式的为含税额销售单开具单税率增值税发票的系统的框图。具体实施方式以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。单税率指的是在一张增值税发票上的商品明细税率只能是一种;含税额销售单是企业销售单的一种,根据财务管理的需要,企业在发票开具前就已经在销售单中计算出了本张销售单的税额。这种销售单数据的特点是在销售单主数据中标识了一种税率,同时标识了税额;但在销售单明细数据中不标识税率也没有标识税额。如图1所示,根据本发明一种实施方式的为含税额销售单开具单税率增值税发票的方法包括以下步骤:步骤S1、获取待开发票的销售单数据集和销售单明细数据集,所述销售单数据集包括销售单金额、销售单税额、销售单税率、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额。通常,在企业的业务系统中,会给销售单数据表中的销售单添加开票标志,以便于清楚地查找和处理未开具发票的销售单。因此,可以根据销售单的“开票标志”,在企业业务系统的销售单数据表中查找未开具发票的销售单主要数据,形成销售单数据集。例如,可以采用SQL语句或其他计算机程序语句来获得销售单数据集,示例性的SQL语句格式为:“SELECT销售 单号,销售单金额,销售单税额,销售单税率,含税标志,清单标志,汉字防伪企业标志,开票限额FROM销售单数据表WHERE开票标志=‘未开票’”。以上SQL语句格式仅是示例性的,在实际操作中,清单标志和汉字防伪企业标志不是必须获取的,也即在销售单数据集中不包括清单标志和汉字防伪企业标志的情况下,可以在后续对销售单明细数据集进行拆分时,将增值税发票上的预定商品明细行数限定为例如7行(这依据税务局提供的增值税发票而改变),以使得每个待开发票数据集中的商品明细行数最大不超过税务局规定的限制条件。表1给出了示例性的销售单数据集。表1另外,可以采用SQL语句或其他计算机程序语句来获得销售单明细数据集,示例性的SQL语句格式为:“SELECT序号,商品名称,被折扣标志,折扣比例,单价,数量,金额FROM销售单商品明细数据表WHERE销售单号=‘当前销售单号’”。其中,被折扣标志和折扣比例不是必须的,当企业不对商品进行打折销售时,销售单明细数据集中可以不包括被折扣标志和折扣比例。表2示出了表1的销售单XSD0001的示例性销售单明细数据集。序号商品名称被折扣标志折扣比例单价数量金额1商品11000.0011000.002商品2750.0021500.003打折商品1Y20%300.002600.004打折商品2Y20%400.001400.005商品3700.0021400.006商品4400.0041600.007打折商品3Y20%400.00135200.008打折商品4Y20%600.0031800.009商品5500.0052500.00表2步骤S2、校验每个商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有商品明细行中的金额之和是否等于销售单金额。例如,在校验每个商品明细行中单价与数量的乘积是否等于该商品明细行中的金额时,可以在销售单明细数据集中,从首条到末条数据循环,逐条获取每条商品明细行的行号、金额、数量和单价这几个数据项,并计算“单价*数量”,判断计算结果与本条商品明细行中的金额是否相等,如果不相等,则提示例如“行号为‘当前行号’的销售单明细数据集中,单价*数量与金额不相等”,并结束算法流程;若相等,则继续后续步骤。在校验所有商品明细行中的金额之和是否等于销售单金额时,可以在销售单明细数据集中,从首条到末条数据循环,逐条获取每条商品明细行的金额数据项,累计相加计算生成明细合计金额,并判断该明细合计金额与销售单金额是否相等,如果不相等,则提示例如“∑销售单明细金额与销售单金额不相等”后,结束算法流程;若相等,则继续后续步骤。步骤S3、根据销售单税率、含税标志以及每个商品明细行中的单价和数量计算并在每个商品明细行中添加价税合计、发票金额、发票税额和发票单价,并且分别累加所有商品明细行的价税合计、发票金额和发票税额以在销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额。其中,在含税标志表示含税(例如,用字母Y表示含税)的情况下(也即商品明细行中的单价是含税单价),采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:价税合计=单价*数量;发票金额=价税合计/(1+销售单税率);发票税额=价税合计-发票金额;发票单价=单价/(1+销售单税率);在含税标志表示不含税(例如,用字母N表示含税)的情况下(也即商品明细行中的单价是不含税单价),采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:发票金额=单价*数量;发票税额=发票金额*销售单税率;价税合计=发票金额+发票税额。计算了每个商品明细行的价税合计、发票金额、发票税额和发票单价以及明细合计价税合计、明细合计发票金额和明细合计发票税额之后的示例性销售单明细数据集请见下文中的表4。步骤S4、校验(明细合计发票税额-销售单税额)是否小于预定值。通常,企业实际开票的税额如果小于销售单中企业自己计算的税额,也即企业少缴了税,那么企业是允许开票的。但是,如果企业实际开票的税额大于销售单中企业自己计算的税额,但其差值又在误差允许的范围内,则需要平衡税额误差,目的是要按照销售单税额来开票,不能多缴税。该步骤就是基于这样的实际场景而进行的。因此,如果税额误差=(明细合计发票税额-销售单税额)大于预定值,则该税额误差超出了误差允许的范围,提示“∑发票税额与销售单税额的差值超出误差允许范围,不能开票”后,结束算法流程,如果该税额误差小于预定值,则继续后续步骤。优选地,所述预定值为1.27,其是根据税务部门规定的可允许税额误差来设置的。当然,选择比1.27小的值作为预定值也是可行的。步骤S5、依据开票限额和增值税发票上的预定商品明细行数将销售单明细数据集拆分成多个待开发票数据集,并对多个待开发票数据集进行税额 平衡。开票限额是对开票金额的限制,例如一万元的增值税专用发票,最高开票金额是一万元。增值税发票上的预定商品明细行数是企业能够在增值税发票上列出的最大商品明细行数。也即,最终得到的各个待开发票数据集的明细合计发票金额不能大于开票限额,其商品明细行数不能超过增值税发票上的预定商品明细行数。拆分得到的示例性待开发票数据集请见下文中的表5和表6。至此,就完成了销售单数据的处理,所生成的每个待开发票数据集就是一个待开发票的主要数据,将这些主要数据与销售单中开发票需要的其它数据要素(例如销货单位名称、购货单位名称等)合并后即可组成完整的发票数据,将该完整的发票数据发送给防伪税控提供的接口就可以完成发票的开具。优选地,销售单数据集中还可以包括清单标志和汉字防伪企业标志,汉字防伪企业标志限定了增值税发票上的预定商品明细行数。其中,清单标志用于表示是否需要开具带清单的增值税发票,例如可以用清单标志Y表示开具带清单的增值税发票,用清单标志N表示开具不带清单的增值税发票。汉字防伪企业标志表示了企业在国税局的注册类型,例如可以用汉字防伪企业标志Y表示该企业是汉字防伪企业,用汉字防伪企业标志N表示该企业是非汉字防伪企业。按照现有的国税局增值税发票开具规定,非汉字防伪企业在增值税发票上开具的商品明细行数不能超过8条,汉字防伪企业在增值税发票上开具的商品明细行数不能超过7条。这样,在前述的步骤S5中:(1)在清单标志表示开具带清单的增值税发票的情况下,依据开票限额将销售单明细数据集拆分成多个待开发票数据集,其中每个待开发票数据集的明细合计发票金额小于等于开票限额。由于是开具带清单的增值税发票,所以可以不考虑汉字防伪企业标志。例如,该步骤可以如下进行:首先, 判断销售单明细数据集中的明细合计发票金额是否小于等于开票限额,若小于等于,则不对销售单明细数据集进行拆分;若大于,则需要对销售单明细数据集进行拆分,则从待拆分销售单明细数据集中,依次从首条商品明细行到末条商品明细行循环,取每条商品明细行中的发票金额并累加计算其合计金额,当累加计算到某条商品明细行时所得到的合计金额大于开票限额时,将该条商品明细行之前的全部商品明细行拆分到一张待开发票数据集中,依此类推,将销售单明细数据集拆分成多张待开发票数据集,使得每个待开发票数据集中的明细合计发票金额不大于发票限额。(2)在清单标志表示开具不带清单的增值税发票的情况下,依据开票限额和汉字防伪企业标志将销售单明细数据集拆分成多个待开发票数据集,其中每个待开发票数据集的明细合计发票金额小于等于开票限额且每个待开发票数据集的商品明细行数不大于增值税发票上的预定商品明细行数。也即,非汉字防伪企业在增值税发票上最多只能开具8条商品明细行数,汉字防伪企业在增值税发票上最多只能开具7条商品明细行数。另外,当企业对其商品打折销售时,就会在企业的销售单明细数据表中有被折扣标志和折扣比例这两个数据项,以表明哪些商品是打折商品,打折比例是多少,从而便于企业的财务管理。因此,优选地,销售单明细数据集的每个商品明细行中还包括被折扣标志和折扣比例,且销售单金额为折扣后金额,销售单税额也为考虑了折扣之后的税额,每个商品明细行中的金额为折扣前金额,这样:在前述的步骤S2中,就需要利用折扣后金额=折扣前金额*(1-折扣比例)来计算包含折扣商品的商品明细行的折扣后金额并校验该折扣后金额与不包含折扣商品的其他商品明细行中的金额之和是否等于销售单金额。也即在企业的销售单明细数据表中有打折商品时,需要先计算出该商品明细行的折扣后金额然后再进行累加。而且,在前述的步骤S3中,在计算每个商品明细行的价税合计、发票金额、发票税额和发票单价之前,还需要根据折扣比例重新排列各个商品明细行,计算具有相同折扣比例的商品明细行的总行数及其总折扣金额,并在具有相同折扣比例的商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称中体现了具有相同折扣比例的商品明细行的总行数以及折扣比例,该折扣行的金额为所述总折扣金额*(-1)。例如,可以将相同折扣比例的商品明细行分在一组,并按组依次排列,折扣比例为空的一组表示该组商品明细行中的商品是非打折商品,可以将该组商品明细行排列在最前面(当然,排在销售单明细数据集的最后面也是可行的);对折扣比例不为空的各组商品明细行,需要分别累计各组商品明细行的总行数,计算各组商品明细行的总折扣金额,其中总折扣金额=∑该组商品明细行中的金额*折扣比例,并在各组商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称可以为“折扣行数Y(X.XXX%)”,其中“Y”为计算生成的各组具有相同折扣比例的商品明细行的总行数,“X”为折扣比例,或者该折扣行的商品名称也可以是其他能够体现该组具有相同折扣比例的商品明细行的总行数和折扣比例的其他名称,该折扣行的金额为计算生成的总折扣金额*(-1)以表示商品被打折。表3给出了按折扣比例重新排列表2中的商品明细行并插入折扣行之后的示例性销售单明细数据集。表3表4给出了在表3的基础上计算了每个商品明细行的价税合计、发票金额、发票税额和发票单价以及明细合计价税合计、明细合计发票金额和明细合计发票税额之后的示例性销售单明细数据集。表4而且,当销售单明细数据集中包括被折扣标志和折扣比例时,在步骤S5中,在清单标志表示开具不带清单的增值税发票的情况下,还需要对折扣行进行处理,也即若待开发票数据集中具有相同折扣比例的一行或多行商品明细行的最后一行商品明细行之后没有折扣行则在该最后一行商品明细行之后插入一条折扣行(其中,插入折扣行的操作与之前所述的插入折扣行的操作相同,此处不再赘述),若在所述最后一行商品明细行之后具有折扣行则更新该折扣行(其中,更新折扣行的操作与之前所述的插入折扣行的操 作相同,此处也不再赘述),以及更新该待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。这样就能够对每张待开发票数据集中的折扣数据进行重新处理,以使得每张待开发票数据集中的数据更为准确,避免出现依据该待开发票数据集所开具的发票上的金额、税额等数据项与企业的销售单中所计算的数据项存在差异的情况,提高了企业的财务管理水平。以表4的销售单明细数据集为例,在利用该步骤进行拆分之后得到两张待开发票数据集,请见表5和表6所示。表5表6另外,按照现有的实际销售单数据统计结果来看,在开具带清单的增值税发票的情况下,通常销售单明细数据集中的明细合计发票金额是小于开票限额的,因此在销售单明细数据集中也包括打折商品时,在步骤S5的拆分 过程中可以不对折扣数据进行处理。如果销售单明细数据集中的明细合计发票金额大于开票限额,则在步骤S5的拆分过程中,可以依据上述开具不带清单的增值税发票情况下的拆分过程中对折扣数据的处理过程来处理将在开票时被列在清单上的折扣数据。优选地,步骤S5中的对多个待开发票数据集进行税额平衡包括以下步骤:步骤S51、计算待平衡总误差,其中,待平衡总误差=所有待开发票数据集的明细合计发票税额之和-销售单税额;步骤S52、计算第i个待开发票数据集的可平衡发票税额误差,其中,可平衡发票税额误差=1.27-(明细合计发票金额*销售单税率-明细合计发票税额);步骤S53、若第i个待开发票数据集的可平衡发票税额误差>待平衡总误差,则将第i个待开发票数据集的明细合计发票税额修改为第i个待开发票数据集的明细合计发票税额+待平衡总误差,并结束税额平衡;步骤S54、若第i个待开发票数据集的可平衡发票税额误差<待平衡总误差,则将第i个待开发票数据集的明细合计发票税额修改为第i个待开发票数据集的明细合计发票税额+第i个待开发票数据集的可平衡发票税额误差,并返回步骤S51以继续第i+1个待开发票数据集的税额平衡,其中,i=1,2,…N,N为正整数。其中,在对第i+1个待开发票数据集进行税额平衡时,可以采用待平衡总误差=待平衡总误差–第i个待开发票数据集的可平衡发票税额误差来重新计算待平衡总误差,也可以采用步骤S51中的计算公式来重新计算待平衡总误差。这样,通过步骤S51至S54进行税额平衡之后,就能够使全部待开发票数据集中的明细合计发票税额之和与销售单税额相等。本领域技术人员应当理解的是,进行税额平衡的算法并不局限于步骤 S51-S54所示的算法,其他的税额平衡算法也是可行的。例如,可以将待平衡总误差平均分配到每个待开发票数据集的明细合计发票税额中。根据本发明的一种实施方式,本发明还提供一种为含税额销售单开具单税率增值税发票的系统,该系统包括获取模块21、销售单数据校验模块22、发票数据计算模块23、销售单税额校验模块24和拆分模块25。其中,获取模块21,用于获取待开发票的销售单数据集和销售单明细数据集,销售单数据集包括销售单金额、销售单税额、销售单税率、含税标志和开票限额,销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额。例如,获取模块21可以根据销售单的“开票标志”,在企业业务系统的销售单数据表中查找未开具发票的销售单主要数据,形成销售单数据集和销售单明细数据集,例如,获取模块21可以采用SQL语句或其他计算机程序语句来获得销售单数据集,示例性的SQL语句格式为:“SELECT销售单号,销售单金额,销售单税额,销售单税率,含税标志,开票限额FROM销售单数据表WHERE开票标志=‘未开票’”,以及获得销售单明细数据集,示例性的SQL语句格式为:“SELECT序号,商品名称,单价,数量,金额FROM销售单商品明细数据表WHERE销售单号=‘当前销售单号’”。销售单数据校验模块22,用于校验每个商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有商品明细行中的金额之和是否等于销售单金额。销售单数据校验模块22的操作类似于上述根据本发明的方法中步骤S2的操作,此处不再赘述发票数据计算模块23,用于根据销售单税率、含税标志以及每个商品明细行中的单价和数量计算并在每个商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有商品明细行的价税合计、发票金额和发票税额以在销售单明细数据集中添加明细合计价税合计、明细合计发票金 额和明细合计发票税额。其中,在含税标志表示含税(例如,用字母Y表示含税)的情况下(也即商品明细行中的单价是含税单价),发票数据计算模块23采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:价税合计=单价*数量;发票金额=价税合计/(1+销售单税率);发票税额=价税合计-发票金额;发票单价=单价/(1+销售单税率);在含税标志表示不含税(例如,用字母N表示含税)的情况下(也即商品明细行中的单价是不含税单价),发票数据计算模块23采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:发票金额=单价*数量;发票税额=发票金额*销售单税率;价税合计=发票金额+发票税额。销售单税额校验模块24用于校验(明细合计发票税额-销售单税额)是否小于预定值。销售单税额校验模块24的操作与上述根据本发明的方法中步骤S4的操作相类似,此处不再赘述。拆分模块25,用于在销售单税额校验模块24完成所述校验之后,依据开票限额和增值税发票上的预定商品明细行数将销售单明细数据集拆分成多个待开发票数据集,并对多个待开发票数据集进行税额平衡。也即,最终得到的各个待开发票数据集的明细合计发票金额不能大于开票限额,其商品明细行数不能超过增值税发票上的预定商品明细行数。在拆分模块25进行拆分之后,所生成的每个待开发票数据集就是一个待开发票的主要数据,将这些主要数据与销售单中开发票需要的其它数据要素合并后即可组成完整的发票数据,将该完整的发票数据发送给防伪税控提 供的接口就可以完成发票的开具。优选地,获取模块21所获取的销售单数据集中还可以包括清单标志和汉字防伪企业标志,汉字防伪企业标志限定了增值税发票上的预定商品明细行数,拆分模块25还用于:在清单标志表示开具带清单的增值税发票的情况下,依据开票限额将销售单明细数据集拆分成多个待开发票数据集,其中每个待开发票数据集的明细合计发票金额小于等于开票限额;在清单标志表示开具不带清单的增值税发票的情况下,依据开票限额和汉字防伪企业标志将销售单明细数据集拆分成多个待开发票数据集,其中每个待开发票数据集的明细合计发票金额小于等于开票限额且每个待开发票数据集的商品明细行数不大于增值税发票上的预定商品明细行数。拆分模块25所执行的该操作可以类似于上述根据本发明的方法中步骤S5中所描述的操作,因此此处不再赘述。优选地,获取模块21所获取的每个商品明细行中还可以包括被折扣标志和折扣比例,且销售单金额为折扣后金额,每个商品明细行中的金额为折扣前金额。在这种情况下,销售单数据校验模块22还用于:利用折扣后金额=折扣前金额*(1-折扣比例)来计算包含折扣商品的商品明细行的折扣后金额并校验该折扣后金额与不包含折扣商品的其他商品明细行中的金额之和是否等于销售单金额。也即在企业的销售单明细数据表中有打折商品时,销售单数据校验模块22需要先计算出该商品明细行的折扣后金额然后再进行累加。发票数据计算模块23还用于在计算每个商品明细行的价税合计、发票金额、发票税额和发票单价之前,根据折扣比例重新排列各个商品明细行,计算具有相同折扣比例的商品明细行的总行数及其总折扣金额,并在具有相同折扣比例的商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称中体现了具有相同折扣比例的商品明细行的总行数以及折扣比例,该折扣行的金额为所述总折扣金额*(-1)。发票数据计算模块 23所执行的操作可以类似于存在被折扣标志和折扣比例这两个数据项时前述步骤S3中所描述的操作,此处不再赘述。而且,在拆分模块25完成拆分之后,在清单标志表示开具不带清单的增值税发票的情况下,发票数据计算模块23还用于:若待开发票数据集中具有相同折扣比例的一行或多行商品明细行的最后一行商品明细行之后没有折扣行则在该最后一行商品明细行之后插入一条折扣行,若在所述最后一行商品明细行之后具有折扣行则更新该折扣行,以及更新该待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。这样就能够对每张待开发票数据集中的折扣数据进行重新处理,以使得每张待开发票数据集中的数据更为准确,避免出现依据该待开发票数据集所开具的发票上的金额、税额等数据项与企业的销售单中所计算的数据项存在差异的情况,提高了企业的财务管理水平。插入与更新折扣行的操作与之前根据本发明的方法中所描述的操作类似,此处不再赘述。另外,按照现有的实际销售单数据统计结果来看,在开具带清单的增值税发票的情况下,通常销售单明细数据集中的明细合计发票金额是小于开票限额的,因此在销售单明细数据集中也包括打折商品时,在拆分模块25进行拆分之后发票数据计算模块23可以不对折扣数据进行再处理。如果销售单明细数据集中的明细合计发票金额大于开票限额,则在拆分模块25进行拆分之后,发票数据计算模块23也可以对折扣数据进行与上述类似的操作,即插入和更新折扣行并更新待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。优选地,拆分模块25对多个待开发票数据集进行税额平衡包括:计算待平衡总误差,其中,待平衡总误差=所有待开发票数据集的明细合计发票税额之和-销售单税额;计算第i个待开发票数据集的可平衡发票税额误差,其中,可平衡发票税额误差=1.27-(明细合计发票金额*销售单税率-明细合 计发票税额);若第i个待开发票数据集的可平衡发票税额误差>待平衡总误差,则将第i个待开发票数据集的明细合计发票税额修改为第i个待开发票数据集的明细合计发票税额+待平衡总误差,并结束税额平衡;若第i个待开发票数据集的可平衡发票税额误差<待平衡总误差,则将第i个待开发票数据集的明细合计发票税额修改为第i个待开发票数据集的明细合计发票税额+第i个待开发票数据集的可平衡发票税额误差,然后更新待平衡总误差并将更新后的待平衡总误差向第i+1个待开发票数据集平衡,其中,i=1,2,…N,N为正整数。这样,就能够使全部待开发票数据集中的明细合计发票税额之和与销售单税额相等。其中,在对第i+1个待开发票数据集进行税额平衡时,拆分模块25可以采用待平衡总误差=待平衡总误差–第i个待开发票数据集的可平衡发票税额误差来重新计算待平衡总误差,也可以采用“待平衡总误差=所有待开发票数据集的明细合计发票税额之和-销售单税额”来重新计算待平衡总误差。本领域技术人员应当理解的是,进行税额平衡的算法并不局限于上面所示的算法,其他的税额平衡算法也是可行的。例如,拆分模块25可以将待平衡总误差平均分配到每个待开发票数据集的明细合计发票税额中。以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1