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

文档序号:11952975阅读:185来源:国知局
为不含税额销售单开具多税率增值税发票的方法和系统与流程
本发明涉及电子发票
技术领域
,具体地,涉及一种为不含税额销售单开具多税率增值税发票的方法和系统。
背景技术
:随着营业税改征增值税的推广,一些集团企业的分支机构除了在属地纳税申报以外,还需要将营改增业务的销售额、销项税额等数据上报到总机构,由总机构进行汇总申报。为了财务管理的需要,这部分营改增业务数据开具的发票应该与其它业务数据开具的发票分别开具。在企业生产经营活动中,业务系统中生成的销售单数据在同一张销售单上既有营改增业务数据,也会有非营改增业务数据;同时由于企业在国税局的注册类型、生产经营范围不同,不同企业的销售单数据还会有是否包含税额,是单税率开票还是多税率开票等多种属性,如果不对上述属性做正确处理就传给防伪税控系统开具发票,就会因各种数据校验关系不符,无法正常开票;或者即使开具了发票,也可能由于发票数据的金额、税额等数据项与企业销售单中计算的数据项存在差异,给企业的财务管理带来问题。技术实现要素:本发明提供一种为不含税额销售单开具多税率增值税发票的方法和系统,其既能节省时间和人力成本,又能为营改增总分机构企业预先准备好符合发票数据规范的待开发票数据,帮助营改增总分机构企业顺利开具发票。本发明提供一种为不含税额销售单开具多税率增值税发票的方法,该方法包括:步骤S1、获取营改增业务商品字典表和待开发票的销售单数据集和销售单明细数据集,所述销售单数据集包括销售单金额、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量、金额和税率,所述营改增业务商品字典表中包括属于营改增业务的商品的商品名称和税率;步骤S2、校验每个所述商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有所述商品明细行中的金额之和是否等于所述销售单金额;步骤S3、依据所述营改增业务商品字典表中的商品名称来识别所述销售单明细数据集中为营改增业务的商品并在该商品所在的商品明细行中增加营改增标识,并依据所述营改增业务商品字典中的税率来校验该商品明细行中的税率是否准确;步骤S4、根据所述含税标志、每个所述商品明细行中的单价、数量和税率计算并在每个所述商品明细行中添加价税合计、发票金额、发票税额和发票单价,并且将所有所述商品明细行中的价税合计、发票金额和发票税额分别累加以在所述销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额;以及步骤S5、依据所述开票限额、所述营改增标识和所述增值税发票上的预定商品明细行数,将所述销售单明细数据集拆分成多个待开发票数据集。本发明还提供一种为不含税额销售单开具多税率增值税发票的系统,该系统包括:获取模块,用于获取营改增业务商品字典表以及待开发票的销售单数据集和销售单明细数据集,所述销售单数据集包括销售单金额、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量、金额和税率,所述营改增业务商品字典表中包括属 于营改增业务的商品的商品名称和税率;销售单数据校验模块,用于校验每个所述商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有所述商品明细行中的金额之和是否等于所述销售单金额;营改增识别模块,用于依据所述营改增业务商品字典表中的商品名称来识别所述销售单明细数据集中为营改增业务的商品并在该商品所在的商品明细行中增加营改增标识,并依据所述营改增业务商品字典中的税率来校验该商品明细行中的税率是否准确;发票数据计算模块,用于根据所述含税标志、每个所述商品明细行中的单价、数量和税率计算并在每个所述商品明细行中添加价税合计、发票金额、发票税额和发票单价,并且将所有所述商品明细行中的价税合计、发票金额和发票税额分别累加以在所述销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额;以及拆分模块,用于在所述发票数据计算模块完成所述计算和累加之后,依据所述开票限额、所述营改增标识和所述增值税发票上的预定商品明细行数,将所述销售单明细数据集拆分成多个待开发票数据集。通过上述技术方案,由于根据本发明的方法和系统利用了营改增总分机构企业业务系统中的销售单数据,并对销售单数据进行处理以得到符合发票数据规范的待开发票数据,因此能够节省时间和人力成本,提高营改增总分机构企业的发票开具效率,减少营改增总分机构企业不规范开具发票的风险,促进营改增总分机构企业合法规范经营和正常的发票开具,进一步加强和规范增值税发票管理,提高营改增总分机构企业的财务管理水平。本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:图1是根据本发明一种实施方式的为不含税额销售单开具多税率增值税发票的方法的流程图;以及图2是根据本发明一种实施方式的为不含税额销售单开具多税率增值税发票的系统的框图。具体实施方式以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。多税率指的是在一张增值税发票上的商品明细税率可以是多种;不含税额销售单是企业销售单的一种,财务管理上采用实际开具的发票税额,企业不需要在发票开具前就在销售单中计算出税额。这种销售单数据的特点是在销售单主数据中既不标识税率,也不标识税额;在销售单明细数据中标识了不同的税率,但不标识税额。如图1所示,根据本发明一种实施方式的为不含税额销售单开具多税率增值税发票的方法包括以下步骤:步骤S1、获取营改增业务商品字典表和待开发票的销售单数据集和销售单明细数据集,销售单数据集包括销售单金额、含税标志和开票限额,销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量、金额和税率,营改增业务商品字典表中包括属于营改增业务的商品的商品名称和税率。通常,在营改增总分机构企业的业务系统中,会给销售单数据表中的销 售单添加开票标志,以便于清楚地查找和处理未开具发票的销售单。因此,可以根据销售单的“开票标志”,在营改增总分机构企业业务系统的销售单数据表中查找未开具发票的销售单主要数据,形成销售单数据集。例如,可以采用SQL语句或其他计算机程序语句来获得销售单数据集,示例性的SQL语句格式为:“SELECT销售单号,销售单金额,含税标志,清单标志,汉字防伪企业标志,开票限额FROM销售单数据表WHERE开票标志=‘未开票’”。以上SQL语句格式仅是示例性的,在实际操作中,清单标志和汉字防伪企业标志不是必须获取的,也即在销售单数据集中不包括清单标志和汉字防伪企业标志的情况下,可以在后续对销售单明细数据集进行拆分时,将增值税发票上的预定商品明细行数限定为例如7行(这依据税务局提供的增值税发票而改变),以使得每个待开发票数据集中的商品明细行数最大不超过税务局规定的限制条件。表1给出了示例性的销售单数据集。销售单号销售单金额含税标志清单标志汉字防伪企业标志开票限额XSD000115400.00YYY10000.00表1另外,可以采用SQL语句或其他计算机程序语句来获得销售单明细数据集,示例性的SQL语句格式为:“SELECT序号,商品名称,被折扣标志,折扣比例,单价,数量,金额,税率FROM销售单商品明细数据表WHERE销售单号=‘当前销售单号’”。其中,被折扣标志和折扣比例不是必须的,当营改增总分机构企业不对商品进行打折销售时,销售单明细数据集中可以不包括被折扣标志和折扣比例。表2示出了表1的销售单XSD0001的示例性销售单明细数据集。序号商品名称单价数量金额税率被折扣标志折扣比例1商品11000.0011000.0011%2商品2750.0021500.006%3打折商品1300.002600.0011%Y20%4打折商品2400.001400.0011%Y20%5商品3700.0021400.0011%6商品4400.0041600.006%7打折商品3400.00135200.006%Y20%8打折商品4600.0031800.006%Y20%9商品5500.0052500.0011%10商品6300.002600.0011%11商品7200.002400.006%表2另外,营改增业务商品字典表可以预先建立,并且随着营改增总分机构企业业务的发展以及属于营改增业务的商品种类的增加而不断进行更新和维护。表3给出了一种示例性的营改增业务商品字典表。商品编码商品名称税率备注SP0001商品111%SP0002商品26%……表3步骤S2、校验每个商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有商品明细行中的金额之和是否等于销售单金额。例如,在校验每个商品明细行中单价与数量的乘积是否等于该商品明细行中的金额时,可以在销售单明细数据集中,从首条到末条数据循环,逐条获取每条商品明细行的行号、金额、数量和单价这几个数据项,并计算“单价*数量”,判断计算结果与本条商品明细行中的金额是否相等,如果不相等,则提示例如“行号为‘当前行号’的销售单明细数据集中,单价*数量与金额不相等”,并结束算法流程;若相等,则继续后续步骤。在校验所有商品明细行中的金额之和是否等于销售单金额时,可以在销售单明细数据集中,从首条到末条数据循环,逐条获取每条商品明细行的金额数据项,累计相加计算生成明细合计金额,并判断该明细合计金额与销售单金额是否相等,如果不相等,则提示例如“∑销售单明细金额与销售单金额不相等”后,结束算法流程;若相等,则继续后续步骤。步骤S3、依据营改增业务商品字典表中的商品名称来识别销售单明细数据集中为营改增业务的商品并在该商品所在的商品明细行中增加营改增标识,并依据营改增业务商品字典中的税率来校验该商品明细行中的税率是否准确。优选地,该步骤可以通过以下过程来实现:依次计算各个商品明细行中的商品名称与营改增业务商品字典表中的全部商品名称的相似度值;若同一商品明细行中的商品名称与营改增业务商品字典表中的全部商品名称的相似度值中的最大相似度值大于预定值,则在该行商品明细行中增加营改增标识,并校验该行商品明细行中的税率是否等于营改增业务商品字典表中与该行商品明细行中的商品名称具有最大相似度值的商品名称所对应的税率。以表2的销售单明细数据集为例。首先计算商品1与营改增业务商品字典表中的全部商品名称的相似度值,若商品1与营改增业务商品字典表中的商品名称A具有最大相似度值且该最大相似度值大于预定值,则将商品1所在的第1行商品明细行中的营改增标识设置为Y,也即认为商品1为营改增业务的商品,之后校验商品1的税率是否等于商品名称A所对应的税率,若不相等,则提示“营改增商品的税率与销售单明细数据集中的税率不符”并结束算法流程,若相等则继续后续的过程;以此类推,直至完成最后一行商品明细行中的商品7与营改增业务商品字典表中的全部商品名称的相似度值的计算为止,从而得到表4所示的示例性销售单明细数据集。当然,在执行该过程时,还可以先将各个最大相似度值添加到销售单明细数据集中,然后通过将销售 单明细数据集中的相似度值与预定值进行比较来设置营改增标识。其中,相似度是指两个名称的相似程度,是运用模糊综合评判原理,将两个待评定内容进行运算得出的数值。两个完全一样的内容,相似度值为1,如:“笔记本电脑”与“笔记本电脑”的相似度计算的结果值为1,说明两个比较的内容完全相同。两个完全不一样的内容,相似度值为0,如:“笔记本电脑”与“硬盘”的相似度值为0,说明两个比较的内容完全没有相同的内容。部分相同内容的相似度值介于(0,1)之间,如:“黄大金属物资回收器峨眉山市”与“峨眉山市慌大金属物资回收器”相似度计算结果为0.35,说明两个比较的内容中,有一部分是相同的内容。相似度值的计算可以运用模糊综合评判原理来完成,例如可以将商品明细行中的商品名称和营改增业务商品字典表中的商品名称这两个数据项代入ORACLE数据库中提供的方法utl_match.edit_distance_similarity中来计算商品名称的相似度值。在完成营改增标识的设置之后,可以依次检查(例如,人工检查)是否有营改增标识错误的情况并进行更正。优选地,所述预定值可以是例如0.5或者其他合适的值。表4步骤S4、根据含税标志、每个商品明细行中的单价、数量和税率计算并在每个商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有商品明细行中的价税合计、发票金额和发票税额以在销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额。其中,在含税标志表示含税(例如,用字母Y表示含税)的情况下(也即商品明细行中的单价是含税单价),采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:价税合计=单价*数量;发票金额=价税合计/(1+税率);发票税额=价税合计-发票金额;发票单价=单价/(1+税率);在含税标志表示不含税(例如,用字母N表示含税)的情况下(也即商品明细行中的单价是不含税单价),采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:发票金额=单价*数量;发票税额=发票金额*税率;价税合计=发票金额+发票税额。计算了每个商品明细行的价税合计、发票金额、发票税额和发票单价以及明细合计价税合计、明细合计发票金额和明细合计发票税额之后的示例性 销售单明细数据集请见下文中的表6。步骤S5、依据开票限额、营改增标识和增值税发票上的预定商品明细行数,将销售单明细数据集拆分成多个待开发票数据集。开票限额是对开票金额的限制,例如一万元的增值税专用发票,最高开票金额是一万元。增值税发票上的预定商品明细行数是营改增总分机构企业能够在增值税发票上列出的最大商品明细行数。也即,最终得到的各个待开发票数据集的明细合计发票金额不能大于开票限额,其商品明细行数不能超过营改增总分机构企业能够在增值税发票上开具的预定商品明细行数,营改增和非营改增业务的商品不能开在同一张增值税发票上。拆分得到的示例性待开发票数据集请见下文中的表7至表9。至此,就完成了销售单数据的处理,所生成的每个待开发票数据集就是一个待开发票的主要数据,将这些主要数据与销售单中开发票需要的其它数据要素(例如,销货单位名称、购货单位名称等)合并后即可组成完整的发票数据,将该完整的发票数据发送给防伪税控提供的接口就可以完成发票的开具。优选地,销售单数据集中还可以包括清单标志和汉字防伪企业标志,汉字防伪企业标志限定了增值税发票上的预定商品明细行数。其中,清单标志用于表示是否需要开具带清单的增值税发票,例如可以用清单标志Y表示开具带清单的增值税发票,用清单标志N表示开具不带清单的增值税发票。汉字防伪企业标志表示了企业在国税局的注册类型,例如可以用汉字防伪企业标志Y表示该企业是汉字防伪企业,用汉字防伪企业标志N表示该企业是非汉字防伪企业。按照目前的税务局增值税发票开具规定,非汉字防伪企业在增值税发票上开具的商品明细行数不能超过8条,汉字防伪企业在增值税发票上开具的商品明细行数不能超过7条。这样,前述的步骤S5可以包括以下步骤:步骤S51、在清单标志表示开具带清单的增值税发票的情况下,依据开票限额和营改增标识将销售单明细数据集拆分成多个待开发票数据集,其中同一待开发票数据集中所有商品明细行的营改增标识均相同且每个待开发票数据集的明细合计发票金额均小于等于开票限额。由于是开具带清单的增值税发票,所以可以不考虑汉字防伪企业标志。例如,该步骤可以如下进行:首先,根据营改增标识将销售单明细数据集分成营改增标识组和非营改增标识组,即通过例如SQL语句“SELECT*FROM销售单明细数据集WHERE营改增标识=“Y””或其他适当的计算机程序语句将销售单明细数据集中营改增标识为Y的商品明细行划分到营改增标识组中,通过例如SQL语句“SELECT*FROM销售单明细数据集WHERE营改增标识!=“Y””或其他适当的计算机程序语句将销售单明细数据集中营改增标识不为Y的商品明细行划分到非营改增标识组中,这样就使得营改增业务的商品和非营改增业务的商品被开具到不同的增值税发票上;然后对于营改增标识组和非营改增标识组,分别依次从首条商品明细行到末条商品明细行循环,取每条商品明细行中的发票金额并累加计算其合计金额,当累加计算到某条商品明细行时所得到的合计金额大于开票限额时,将该条商品明细行之前的全部商品明细行拆分到一张待开发票数据集中,依此类推,就将营改增标识组和非营改增标识组中的商品明细行分别拆分到了多张待开发票数据集中,使得每个待开发票数据集中的明细合计发票金额不大于发票限额,且同一待开发票数据集中的商品明细行中的营改增标识相同。步骤S52、在清单标志表示开具不带清单的增值税发票的情况下,依据开票限额、营改增标识和汉字防伪企业标志将销售单明细数据集拆分成多个待开发票数据集,其中同一待开发票数据集中所有商品明细行的营改增标识均相同,每个待开发票数据集的明细合计发票金额均小于等于开票限额且每个待开发票数据集的商品明细行数不大于增值税发票上的预定商品明细行 数。也即,依据现税务局规定,非汉字防伪企业在增值税发票上最多只能开具8条商品明细行数,汉字防伪企业在增值税发票上最多只能开具7条商品明细行数。另外,当营改增总分机构企业对其商品打折销售时,就会在营改增总分机构企业的销售单明细数据表中有被折扣标志和折扣比例这两个数据项,以表明哪些商品是打折商品,打折比例是多少,从而便于营改增总分机构企业的财务管理。因此,优选地,每个商品明细行中还包括被折扣标志和折扣比例,且销售单金额为折扣后金额,每个商品明细行中的金额为折扣前金额,这样:在前述的步骤S2中,就需要利用折扣后金额=折扣前金额*(1-折扣比例)来计算包含折扣商品的商品明细行的折扣后金额并校验该折扣后金额与不包含折扣商品的其他商品明细行中的金额之和是否等于销售单金额。也即在营改增总分机构企业的销售单明细数据表中有打折商品时,需要先计算出该商品明细行的折扣后金额然后再进行累加。而且,在前述的步骤S4中,在计算每个商品明细行的价税合计、发票金额、发票税额和发票单价之前,还需要根据每个商品明细行中的折扣比例和税率重新排列各个商品明细行,计算具有相同折扣比例和相同税率的商品明细行的总行数及其总折扣金额,并在具有相同折扣比例和相同税率的商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称中体现了具有相同折扣比例和相同税率的商品明细行的总行数以及折扣比例,该折扣行的金额为总折扣金额*(-1)。例如,可以将相同折扣比例和相同税率的商品明细行分在一组,并按组依次排列,折扣比例为空的一组表示该组商品明细行中的商品是非打折商品,可以将该组商品明细行排列在最前面(当然,排列在销售单明细数据集的最后面也是可行的);对折扣比例不为空的各组商品明细行,需要分别累计各组商品明细行的总行数,计算各组商 品明细行的总折扣金额,其中总折扣金额=∑该组商品明细行中的金额*折扣比例,并在各组商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称可以为“折扣行数Y(X.XXX%)”,其中“Y”为计算生成的各组具有相同折扣比例和相同税率的商品明细行的总行数,“X”为折扣比例,或者该折扣行的商品名称也可以是其他能够体现该组具有相同折扣比例和相同税率的商品明细行的总行数和折扣比例的其他名称,该折扣行的金额为计算生成的总折扣金额*(-1)以表示商品被打折。表5给出了按折扣比例和税率重新排列商品明细行并插入折扣行之后的示例性销售单明细数据集。表5表6表6给出了在表5的基础上计算了每个商品明细行的价税合计、发票金额、发票税额和发票单价以及明细合计价税合计、明细合计发票金额和明细合计发票税额之后的示例性销售单明细数据集。而且,当销售单明细数据集中包括被折扣标志和折扣比例时,在步骤S52中还需要对折扣行进行处理,也即若待开发票数据集中具有相同折扣比例和相同税率的一行或多行商品明细行的最后一行商品明细行之后没有折扣行则在该最后一行商品明细行之后插入一条折扣行(其中,插入折扣行的操作与之前步骤S4中所述的插入折扣行的操作相同,此处不再赘述),若在所述最后一行商品明细行之后具有折扣行则更新该折扣行(其中,更新折扣行的操作与之前步骤S4所述的插入折扣行的操作相同,此处也不再赘述), 以及更新该待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。这样就能够对每张待开发票数据集中的折扣数据进行重新处理,以使得每张待开发票数据集中的数据更为准确,避免出现依据该待开发票数据集所开具的发票上的金额、税额等数据项与营改增总分机构企业的销售单中所计算的数据项存在差异的情况,提高了营改增总分机构企业的财务管理水平。以表6的销售单明细数据集为例,在利用该步骤进行拆分之后得到三张待开发票数据集,请见表7至表9所示。从表7至表9可以看出,营改增业务的商品和非营改增业务的商品被拆分到了不同的待开发票数据集中,每个待开发票数据集的明细合计发票金额均小于开票限额(即表1中给出的10000元的限额);由于表1中给出的清单标志是Y,也即开具带清单的增值税发票,所以在拆分时只考虑营改增标识和开票限额这两个因素而不必考虑汉字防伪企业标志。表7表8表9另外,按照现有的实际销售单数据统计结果来看,在开具带清单的增值税发票的情况下,通常销售单明细数据集中的明细合计发票金额是小于开票限额的,因此在销售单明细数据集中也包括打折商品时,在步骤S51的拆分过程中可以不对折扣数据进行处理。如果销售单明细数据集中的明细合计发票金额大于开票限额,则在步骤S51的拆分过程中,可以依据上述步骤S52的拆分过程中对折扣数据的处理过程来处理将在开票时被列在清单上的折扣数据(即可以将步骤S52中的插入折扣行和更新折扣行的处理类似地应用于步骤S51)。根据本发明的一种实施方式,本发明还提供一种为不含税额销售单开具多税率增值税发票的系统,该系统包括获取模块21、销售单数据校验模块22、营改增识别模块23、发票数据计算模块24和拆分模块25。其中,获取模块21,用于获取营改增业务商品字典表以及待开发票的销售单数据集和销售单明细数据集,销售单数据集包括销售单金额、含税标志和开票限额,销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量、金额和税率,营改增业务商品字典表中包括属于营改增业务的商品的商品名称和税率。例如,获取模块21可以根据销售单的 “开票标志”,在营改增总分机构企业业务系统的销售单数据表中查找未开具发票的销售单主要数据,形成销售单数据集和销售单明细数据集。例如,获取模块21可以采用SQL语句或其他计算机程序语句来获得销售单数据集,示例性的SQL语句格式为:“SELECT销售单号,销售单金额,含税标志,开票限额FROM销售单数据表WHERE开票标志=‘未开票’”,以及获得销售单明细数据集的示例性SQL语句格式可以为:“SELECT序号,商品名称,单价,数量,金额,税率FROM销售单商品明细数据表WHERE销售单号=‘当前销售单号’”。另外,上面已经对营改增业务商品字典表进行了描述,此处不再赘述。销售单数据校验模块22,用于校验每个商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有商品明细行中的金额之和是否等于销售单金额。销售单数据校验模块22所执行的操作与根据本发明的方法中步骤S2的操作类似,此处不再赘述。营改增识别模块23,用于依据营改增业务商品字典表中的商品名称来识别销售单明细数据集中为营改增业务的商品并在该商品所在的商品明细行中增加营改增标识,并依据营改增业务商品字典中的税率来校验该商品明细行中的税率是否准确。营改增识别模块23可以采用上面结合根据本发明的方法中步骤S3所描述的操作来识别营改增业务的商品,此处不再赘述。发票数据计算模块24,用于根据含税标志、每个商品明细行中的单价、数量和税率计算并在每个商品明细行中添加价税合计、发票金额、发票税额和发票单价,并且将所有商品明细行中的价税合计、发票金额和发票税额分别累加以在销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额。其中,在含税标志表示含税(例如,用字母Y表示含税)的情况下(也即商品明细行中的单价是含税单价),发票数据计算模块24采用以下公式计 算每个商品明细行的价税合计、发票金额、发票税额和发票单价:价税合计=单价*数量;发票金额=价税合计/(1+税率);发票税额=价税合计-发票金额;发票单价=单价/(1+税率);在含税标志表示不含税(例如,用字母N表示含税)的情况下(也即商品明细行中的单价是不含税单价),发票数据计算模块24采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:发票金额=单价*数量;发票税额=发票金额*税率;价税合计=发票金额+发票税额。拆分模块25,用于在发票数据计算模块24完成所述计算和累加之后,依据开票限额、营改增标识和增值税发票上的预定商品明细行数,将销售单明细数据集拆分成多个待开发票数据集。也即,最终得到的各个待开发票数据集的明细合计发票金额不能大于开票限额,其商品明细行数不能超过增值税发票上的预定商品明细行数,营改增和非营改增业务的商品不能开在同一张增值税发票上。在拆分模块25进行拆分之后,所生成的每个待开发票数据集就是一个待开发票的主要数据,将这些主要数据与销售单中开发票需要的其它数据要素合并后即可组成完整的发票数据,将该完整的发票数据发送给防伪税控提供的接口就可以完成发票的开具。优选地,获取模块21所获取的销售单数据集中还可以包括清单标志和汉字防伪企业标志,汉字防伪企业标志限定了增值税发票上的预定商品明细行数,拆分模块25还用于:在清单标志表示开具带清单的增值税发票的情况下,依据开票限额和营改增标识将销售单明细数据集拆分成多个待开发票 数据集,其中同一待开发票数据集中所有商品明细行的营改增标识均相同且每个待开发票数据集的明细合计发票金额均小于等于所述开票限额;在清单标志表示开具不带清单的增值税发票的情况下,依据开票限额、营改增标识和汉字防伪企业标志将销售单明细数据集拆分成多个待开发票数据集,其中同一待开发票数据集中所有商品明细行的营改增标识均相同,每个待开发票数据集的明细合计发票金额均小于等于开票限额且每个待开发票数据集的商品明细行数不大于增值税发票上的预定商品明细行数。拆分模块25所执行的该操作可以类似于上述步骤S51和步骤S52中所描述的操作,此处不再赘述。优选地,获取模块21所获取的销售单明细数据集的每个商品明细行中还可以包括被折扣标志和折扣比例,且所述销售单金额为折扣后金额,每个所述商品明细行中的金额为折扣前金额。在这种情况下,销售单数据校验模块22还用于:利用折扣后金额=折扣前金额*(1-折扣比例)来计算包含折扣商品的商品明细行的折扣后金额并校验该折扣后金额与不包含折扣商品的其他商品明细行中的金额之和是否等于销售单金额。也即在企业的销售单明细数据表中有打折商品时,销售单数据校验模块22需要先计算出该商品明细行的折扣后金额然后再进行累加。发票数据计算模块24还用于在计算每个商品明细行的价税合计、发票金额、发票税额和发票单价之前,根据每个商品明细行中的折扣比例和税率重新排列各个商品明细行,计算具有相同折扣比例和相同税率的商品明细行的总行数及其总折扣金额,并在具有相同折扣比例和相同税率的商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称中体现了具有相同折扣比例和相同税率的商品明细行的总行数以及折扣比例,该折扣行的金额为总折扣金额*(-1)。发票数据计算模块24所执行的操作可以类似于存在被折扣标志和折扣比例这两个数据项时前述步骤S4中所描述的操作,此处不再赘述。而且,在拆分模块 25完成所述拆分之后,在清单标志表示开具不带清单的增值税发票的情况下,发票数据计算模块24还用于:若待开发票数据集中具有相同折扣比例和相同税率的一行或多行商品明细行的最后一行商品明细行之后没有折扣行则在该最后一行商品明细行之后插入一条折扣行,若在所述最后一行商品明细行之后具有折扣行则更新该折扣行,以及更新该待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。这样就能够对每张待开发票数据集中的折扣数据进行重新处理,以使得每张待开发票数据集中的数据更为准确,避免出现依据该待开发票数据集所开具的发票上的金额、税额等数据项与营改增总分机构企业的销售单中所计算的数据项存在差异的情况,提高了营改增总分机构企业的财务管理水平。此处发票数据计算模块24所执行的插入与更新折扣行的操作与之前根据本发明的方法中所描述的操作类似,此处不再赘述。另外,按照现有的实际销售单数据统计结果来看,在开具带清单的增值税发票的情况下,通常销售单明细数据集中的明细合计发票金额是小于开票限额的,因此在销售单明细数据集中也包括打折商品时,在拆分模块25进行拆分之后发票数据计算模块24可以不对折扣数据进行再处理。如果销售单明细数据集中的明细合计发票金额大于开票限额,则在拆分模块25进行拆分之后,发票数据计算模块24也可以对折扣数据进行与上述类似的操作,即插入和更新折扣行并更新待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1