CN106204177A - 为不含税额销售单开具单税率增值税发票的方法和系统 - Google Patents
为不含税额销售单开具单税率增值税发票的方法和系统 Download PDFInfo
- Publication number
- CN106204177A CN106204177A CN201510232333.1A CN201510232333A CN106204177A CN 106204177 A CN106204177 A CN 106204177A CN 201510232333 A CN201510232333 A CN 201510232333A CN 106204177 A CN106204177 A CN 106204177A
- Authority
- CN
- China
- Prior art keywords
- amount
- invoice
- tax
- discount
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Cash Registers Or Receiving Machines (AREA)
Abstract
本发明公开了一种为不含税额销售单开具单税率增值税发票的方法和系统,包括:获取包括销售单金额、销售单税率、含税标志和开票限额的销售单数据集和包括多个商品明细行的销售单明细数据集,每个商品明细行包括商品名称、单价、数量和金额;判断单价与数量之积是否等于金额、各个金额之和是否等于销售单金额;根据销售单税率、含税标志和单价与数量计算价税合计、发票金额、发票税额和发票单价,分别累加各个价税合计、发票金额和发票税额以得到明细合计价税合计、明细合计发票金额和明细合计发票税额;依据开票限额和预定商品明细行数拆分销售单明细数据集。其节省了时间和人力成本,又预先准备好符合发票数据规范的待开发票数据。
Description
技术领域
本发明涉及电子发票技术领域,具体地,涉及一种为不含税额销售单开具单税率增值税发票的方法和系统。
背景技术
国税局的增值税防伪税控系统为普通企业提供了开具增值税专用发票的功能,用户可以在该系统中逐项录入发票数据以完成发票开具,也可以将待开发票数据导入该系统接口以完成发票开具。但通过录入发票数据来开票,既增加了时间和人力成本,又可能在录入数据的时候出错。如果采用导入数据开票,则需要先准备好符合发票数据规范的待开发票数据,但是目前还没有一种比较好的方法来预先准备好符合发票数据规范的待开发票数据。
发明内容
在企业生产经营活动中,通常先在企业的业务系统中生成销售单数据,所以可以考虑将销售单数据传给增值税防伪税控系统接口以完成发票开具。但由于企业在国税局的注册类型、生产经营范围不同,不同企业的销售单数据会有许多不同的属性,如果不做正确处理就传给防伪税控系统进行发票开具,会因各种数据校验关系不符而导致无法正常开票;或者即使开具了发票,也可能由于发票数据的金额、税额等数据项与企业销售单中计算的数据项存在差异,给企业的财务管理带来问题。
本发明在充分考虑上述现状的情况下,提供了一种为不含税额销售单开具单税率增值税发票的方法和系统,其既能节省时间和人力成本,又能预先准备好符合发票数据规范的待开发票数据。
本发明提供一种为不含税额销售单开具单税率增值税发票的方法,该方法包括:
步骤S1、获取待开发票的销售单数据集和销售单明细数据集,所述销售单数据集包括销售单金额、销售单税率、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额;
步骤S2、计算每个所述商品明细行中单价与数量的乘积并判断该乘积是否等于该商品明细行中的金额,若相等,则转至步骤S3;
步骤S3、将各个所述商品明细行中的金额进行累加得到明细合计金额,判断该明细合计金额是否等于所述销售单金额,若相等,则转至步骤S4;
步骤S4、根据所述销售单税率、所述含税标志以及每个所述商品明细行中的单价和数量计算并在每个所述商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有所述商品明细行的价税合计、发票金额和发票税额以在所述销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额;以及
步骤S5、依据所述开票限额和所述增值税发票上的预定商品明细行数,将所述销售单明细数据集拆分成多个待开发票数据集。
本发明还提供一种为不含税额销售单开具单税率增值税发票的系统,该系统包括:
获取模块,用于获取待开发票的销售单数据集和销售单明细数据集,所述销售单数据集包括销售单金额、销售单税率、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额;
明细金额校验模块,用于计算每个所述商品明细行中单价与数量的乘积并判断该乘积是否等于该商品明细行中的金额;
销售单金额校验模块,用于将各个所述商品明细行中的金额进行累加得到明细合计金额,判断该明细合计金额是否等于所述销售单金额;
发票数据计算模块,用于根据所述销售单税率、所述含税标志以及每个所述商品明细行中的单价和数量计算并在每个所述商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有所述商品明细行的价税合计、发票金额和发票税额以在所述销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额;以及
拆分模块,用于在所述发票数据计算模块完成所述计算和累加之后,依据所述开票限额和所述增值税发票上的预定商品明细行数,将所述销售单明细数据集拆分成多个待开发票数据集。
通过上述技术方案,由于根据本发明的方法和系统利用了企业业务系统中的销售单数据,并对销售单数据进行处理以得到符合发票数据规范的待开发票数据,因此能够节省时间和人力成本,提高企业的发票开具效率,减少企业不规范开具发票的风险,促进企业合法规范经营和正常的发票开具,进一步加强和规范增值税发票管理,提高企业的财务管理水平。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是根据本发明一种实施方式的为不含税额销售单开具单税率增值税发票的方法的流程图;以及
图2是根据本发明一种实施方式的为不含税额销售单开具单税率增值税发票的系统的框图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
单税率指的是在一张增值税发票上的商品明细税率只能是一种;不含税额销售单是企业销售单的一种,在财务管理上采用实际开具的发票税额,企业不需要在发票开具之前就在销售单中计算出税额。这种不含税额销售单数据的特点是在销售单主数据中标识了一种税率,但不标识税额;在销售单明细数据中既不标识税率也不标识税额。
如图1所示,根据本发明一种实施方式的为不含税额销售单开具单税率增值税发票的方法包括以下步骤:
步骤S1、获取待开发票的销售单数据集和销售单明细数据集,销售单数据集包括销售单金额、销售单税率、含税标志和开票限额,销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额。
通常,在企业的业务系统中,会给销售单数据表中的销售单添加开票标志,以便于清楚地查找和处理未开具发票的销售单。因此,可以根据销售单的“开票标志”,在企业业务系统的销售单数据表中查找未开具发票的销售单主要数据,形成销售单数据集。例如,可以采用SQL语句或其他计算机程序语句来获得销售单数据集,示例性的SQL语句格式为:“SELECT销售单号,销售单金额,销售单税率,含税标志,清单标志,汉字防伪企业标志,开票限额FROM销售单数据表WHERE开票标志=‘未开票’”。以上SQL语句格式仅是示例性的,在实际操作中,清单标志和汉字防伪企业标志不是必须获取的,也即在销售单数据集中不包括清单标志和汉字防伪企业标志的情况下,可以在后续对销售单明细数据集进行拆分时,将增值税发票上的预定商品明细行数限定为例如7行(这依据税务局提供的增值税发票而改变),以使得每个待开发票数据集中的商品明细行数最大不超过税务局规定的限制条件。表1给出了示例性的销售单数据集。
表1
另外,可以采用SQL语句或其他计算机程序语句来获得销售单明细数据集,示例性的SQL语句格式为:“SELECT序号,商品名称,被折扣标志,折扣比例,单价,数量,金额FROM销售单商品明细数据表WHERE销售单号=‘当前销售单号’”。其中,被折扣标志和折扣比例不是必须的,当企业不对商品进行打折销售时,销售单明细数据集中可以不包括被折扣标志和折扣比例。表2示出了示例性的销售单明细数据集。
序号 | 商品名称 | 被折扣标志 | 折扣比例 | 单价 | 数量 | 金额 |
1 | 商品1 | 1000.00 | 1 | 1000.00 | ||
2 | 商品2 | 750.00 | 2 | 1500.00 | ||
3 | 打折商品1 | Y | 20% | 300.00 | 2 | 600.00 |
4 | 打折商品2 | Y | 20% | 400.00 | 1 | 400.00 |
5 | 商品3 | 700.00 | 2 | 1400.00 | ||
6 | 商品4 | 400.00 | 4 | 1600.00 | ||
7 | 打折商品3 | Y | 20% | 400.00 | 13 | 5200.00 |
8 | 打折商品4 | Y | 20% | 600.00 | 3 | 1800.00 |
9 | 商品5 | 500.00 | 5 | 2500.00 |
表2
步骤S2、计算每个商品明细行中单价与数量的乘积并判断该乘积是否等于该商品明细行中的金额,若相等,则转至步骤S3。
例如,在步骤S2的执行过程中,可以在销售单明细数据集中,从首条到末条数据循环,逐条获取每条商品明细行的行号、金额、数量和单价这几个数据项,并计算“单价*数量”,判断计算结果与本条商品明细行中的金额是否相等,如果不相等,则提示例如“行号为‘当前行号’的销售单明细数据集中,单价*数量与金额不相等”,并结束算法流程;若相等,则转至步骤S3。
步骤S3、将各个商品明细行中的金额进行累加得到明细合计金额,判断该明细合计金额是否等于销售单金额,若相等,则转至步骤S4。
例如,在步骤S3的执行过程中,可以在销售单明细数据集中,从首条到末条数据循环,逐条获取每条商品明细行的金额数据项,累计相加计算生成明细合计金额,并判断该明细合计金额与销售单金额是否相等,如果不相等,则提示例如“∑销售单明细金额与销售单金额不相等”后,结束算法流程;若相等,则转至步骤S4。
步骤S4、根据销售单税率、含税标志以及每个商品明细行中的单价和数量计算并在每个商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有商品明细行的价税合计、发票金额和发票税额以在销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额。
其中,在含税标志表示含税(例如,用字母Y表示含税)的情况下(也即商品明细行中的单价是含税单价),采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:
价税合计=单价*数量;
发票金额=价税合计/(1+销售单税率);
发票税额=价税合计-发票金额;
发票单价=单价/(1+销售单税率);
在含税标志表示不含税(例如,用字母N表示含税)的情况下(也即商品明细行中的单价是不含税单价),采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:
发票金额=单价*数量;
发票税额=发票金额*销售单税率;
价税合计=发票金额+发票税额。
计算了每个商品明细行的价税合计、发票金额、发票税额和发票单价以及明细合计价税合计、明细合计发票金额和明细合计发票税额之后的示例性销售单明细数据集请见下文中的表4。
步骤S5、依据开票限额和增值税发票上的预定商品明细行数,将销售单明细数据集拆分成多个待开发票数据集。
开票限额是对开票金额的限制,例如一万元的增值税专用发票,最高开票金额是一万元。增值税发票上的预定商品明细行数是企业能够在增值税发票上列出的最大商品明细行数。也即,最终得到的各个待开发票数据集的明细合计发票金额不能大于开票限额,其商品明细行数不能超过增值税发票上的预定商品明细行数。拆分得到的示例性待开发票数据集请见下文中的表5和表6。
至此,就完成了销售单数据的处理,所生成的每个待开发票数据集就是一个待开发票的主要数据,将这些主要数据与销售单中开发票需要的其它数据要素(例如,购货单位名称、销货单位名称等)合并后即可组成完整的发票数据,将该完整的发票数据发送给防伪税控提供的接口就可以完成发票的开具。
优选地,销售单数据集中还可以包括清单标志和汉字防伪企业标志,汉字防伪企业标志限定了增值税发票上的预定商品明细行数。其中,清单标志用于表示是否需要开具带清单的增值税发票,例如可以用清单标志Y表示开具带清单的增值税发票,用清单标志N表示开具不带清单的增值税发票。汉字防伪企业标志表示了企业在国税局的注册类型,例如可以用汉字防伪企业标志Y表示该企业是汉字防伪企业,用汉字防伪企业标志N表示该企业是非汉字防伪企业。按照现有的国税局增值税发票开具规定,非汉字防伪企业在增值税发票上开具的商品明细行数不能超过8条,汉字防伪企业在增值税发票上开具的商品明细行数不能超过7条。这样,前述的步骤S5可以包括以下步骤:
步骤S51、在清单标志表示开具带清单的增值税发票的情况下,依据开票限额将销售单明细数据集拆分成多个待开发票数据集,其中每个待开发票数据集的明细合计发票金额小于等于开票限额。由于是开具带清单的增值税发票,所以可以不考虑汉字防伪企业标志。例如,该步骤可以如下进行:首先,判断销售单明细数据集中的明细合计发票金额是否小于等于开票限额,若小于等于,则不对销售单明细数据集进行拆分;若大于,则需要对销售单明细数据集进行拆分,则从待拆分销售单明细数据集中,依次从首条商品明细行到末条商品明细行循环,取每条商品明细行中的发票金额并累加计算其合计金额,当累加计算到某条商品明细行时所得到的合计金额大于开票限额时,将该条商品明细行之前的全部商品明细行拆分到一张待开发票数据集中,依此类推,将销售单明细数据集拆分成多张待开发票数据集,使得每个待开发票数据集中的明细合计发票金额不大于发票限额。
步骤S52、在清单标志表示开具不带清单的增值税发票的情况下,依据开票限额和汉字防伪企业标志将销售单明细数据集拆分成多个待开发票数据集,其中每个待开发票数据集的明细合计发票金额小于等于开票限额且每个待开发票数据集的商品明细行数不大于增值税发票上的预定商品明细行数。也即,非汉字防伪企业在增值税发票上最多只能开具8条商品明细行数,汉字防伪企业在增值税发票上最多只能开具7条商品明细行数。
另外,当企业对其商品打折销售时,就会在企业的销售单明细数据表中有被折扣标志和折扣比例这两个数据项,以表明哪些商品是打折商品,打折比例是多少,从而便于企业的财务管理。因此,优选地,每个商品明细行中还包括被折扣标志和折扣比例,且销售单金额为折扣后金额,每个商品明细行中的金额为折扣前金额,这样:
在前述的步骤S3中,就需要利用折扣后金额=折扣前金额*(1-折扣比例)来计算包含折扣商品的商品明细行的折扣后金额,将该折扣后金额与不包含折扣商品的其他商品明细行中的金额进行累加得到明细合计金额,并判断明细合计金额是否等于销售单金额。也即在企业的销售单明细数据表中有打折商品时,需要先计算出该商品明细行的折扣后金额然后再进行累加。
而且,在前述的步骤S4中,在计算每个商品明细行的价税合计、发票金额、发票税额和发票单价之前,还需要根据所述折扣比例重新排列各个商品明细行,计算具有相同折扣比例的商品明细行的总行数及其总折扣金额,并在具有相同折扣比例的商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称中体现了具有相同折扣比例的商品明细行的总行数以及折扣比例,该折扣行的金额为所述总折扣金额*(-1)。例如,可以将相同折扣比例的商品明细行分在一组,并按组依次排列,折扣比例为空的一组表示该组商品明细行中的商品是非打折商品,可以将该组商品明细行排列在最前面(当然,排列在销售单明细数据集的最后也是可行的);对折扣比例不为空的各组商品明细行,需要分别累计各组商品明细行的总行数,计算各组商品明细行的总折扣金额,其中总折扣金额=∑该组商品明细行中的金额*折扣比例,并在各组商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称可以为“折扣行数Y(X.XXX%)”,其中“Y”为计算生成的各组具有相同折扣比例的商品明细行的总行数,“X”为折扣比例,或者该折扣行的商品名称也可以是其他能够体现该组具有相同折扣比例的商品明细行的总行数和折扣比例的其他名称,该折扣行的金额为计算生成的总折扣金额*(-1)以表示商品被打折。表3给出了按折扣比例重新排列商品明细行并插入折扣行之后的示例性销售单明细数据集。
表3
表4给出了在表3的基础上计算了每个商品明细行的价税合计、发票金额、发票税额和发票单价以及明细合计价税合计、明细合计发票金额和明细合计发票税额之后的示例性销售单明细数据集。
表4
而且,当销售单明细数据集中包括被折扣标志和折扣比例时,在步骤S52中还需要对折扣行进行处理,也即若待开发票数据集中具有相同折扣比例的一行或多行商品明细行的最后一行商品明细行之后没有折扣行则在该最后一行商品明细行之后插入一条折扣行(其中,插入折扣行的操作与之前所述的插入折扣行的操作相同,此处不再赘述),若在所述最后一行商品明细行之后具有折扣行则更新该折扣行(其中,更新折扣行的操作与之前所述的插入折扣行的操作相同,此处也不再赘述),以及更新该待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。这样就能够对每张待开发票数据集中的折扣数据进行重新处理,以使得每张待开发票数据集中的数据更为准确,避免出现依据该待开发票数据集所开具的发票上的金额、税额等数据项与企业的销售单中所计算的数据项存在差异的情况,提高了企业的财务管理水平。以表4的销售单明细数据集为例,在利用该步骤进行拆分之后得到两张待开发票数据集,请见表5和表6所示。
表5
表6
另外,按照现有的实际销售单数据统计结果来看,在开具带清单的增值税发票的情况下,通常销售单明细数据集中的明细合计发票金额是小于开票限额的,因此在销售单明细数据集中也包括打折商品时,在步骤S51的拆分过程中可以不对折扣数据进行处理。如果销售单明细数据集中的明细合计发票金额大于开票限额,则在步骤S51的拆分过程中,可以依据上述步骤S52的拆分过程中对折扣数据的处理过程来处理将在开票时被列在清单上的折扣数据(即可以将步骤S52中的插入折扣行和更新折扣行的处理类似地应用于步骤S51)。
根据本发明的一种实施方式,本发明还提供一种为不含税额销售单开具单税率增值税发票的系统,该系统包括获取模块21、明细金额校验模块22、销售单金额校验模块23、发票数据计算模块24和拆分模块25。
其中,获取模块21用于获取待开发票的销售单数据集和销售单明细数据集,销售单数据集包括销售单金额、销售单税率、含税标志和开票限额,销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额。例如,获取模块21可以根据销售单的“开票标志”,在企业业务系统的销售单数据表中查找未开具发票的销售单主要数据,形成销售单数据集和销售单明细数据集,例如,获取模块21可以采用SQL语句或其他计算机程序语句来获得销售单数据集,示例性的SQL语句格式为:“SELECT销售单号,销售单金额,销售单税率,含税标志,开票限额FROM销售单数据表WHERE开票标志=‘未开票’”,以及获得销售单明细数据集,示例性的SQL语句格式为:“SELECT序号,商品名称,单价,数量,金额FROM销售单商品明细数据表WHERE销售单号=‘当前销售单号’”。
明细金额校验模块22,用于计算每个商品明细行中单价与数量的乘积并判断该乘积是否等于该商品明细行中的金额。例如,明细金额校验模块22可以在销售单明细数据集中,从首条到末条数据循环,逐条获取每条商品明细行的行号、金额、数量和单价这几个数据项,并计算“单价*数量”,判断计算结果与本条商品明细行中的金额是否相等,如果不相等,则提示例如“行号为‘当前行号’的销售单明细数据集中,单价*数量与金额不相等”,并结束算法流程;若相等,则提示销售单金额校验模块23进行销售单金额的校验。
销售单金额校验模块23,用于将各个商品明细行中的金额进行累加得到明细合计金额,判断该明细合计金额是否等于销售单金额。例如,销售单金额校验模块23可以在销售单明细数据集中,从首条到末条数据循环,逐条获取每条商品明细行的金额数据项,累计相加计算生成明细合计金额,并判断该明细合计金额与销售单金额是否相等,如果不相等,则提示例如“∑销售单明细金额与销售单金额不相等”后,结束算法流程;若相等,则提示发票数据计算模块24进行发票数据的计算。
发票数据计算模块24,用于根据销售单税率、含税标志以及每个商品明细行中的单价和数量计算并在每个商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有商品明细行的价税合计、发票金额和发票税额以在销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额。其中,在含税标志表示含税(例如,用字母Y表示含税)的情况下(也即商品明细行中的单价是含税单价),发票数据计算模块24采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:
价税合计=单价*数量;
发票金额=价税合计/(1+销售单税率);
发票税额=价税合计-发票金额;
发票单价=单价/(1+销售单税率);
在含税标志表示不含税(例如,用字母N表示含税)的情况下(也即商品明细行中的单价是不含税单价),发票数据计算模块24采用以下公式计算每个商品明细行的价税合计、发票金额、发票税额和发票单价:
发票金额=单价*数量;
发票税额=发票金额*销售单税率;
价税合计=发票金额+发票税额。
拆分模块25,用于在发票数据计算模块24完成所述计算和累加之后,依据开票限额和增值税发票上的预定商品明细行数,将销售单明细数据集拆分成多个待开发票数据集。也即,最终得到的各个待开发票数据集的明细合计发票金额不能大于开票限额,其商品明细行数不能超过增值税发票上的预定商品明细行数。
在拆分模块25进行拆分之后,所生成的每个待开发票数据集就是一个待开发票的主要数据,将这些主要数据与销售单中开发票需要的其它数据要素(例如,购货单位名称、销货单位名称等)合并后即可组成完整的发票数据,将该完整的发票数据发送给防伪税控提供的接口就可以完成发票的开具。
优选地,获取模块21所获取的销售单数据集中还可以包括清单标志和汉字防伪企业标志,汉字防伪企业标志限定了增值税发票上的预定商品明细行数,拆分模块25还用于:在清单标志表示开具带清单的增值税发票的情况下,依据开票限额将销售单明细数据集拆分成多个待开发票数据集,其中每个待开发票数据集的明细合计发票金额小于等于开票限额;在清单标志表示开具不带清单的增值税发票的情况下,依据开票限额和汉字防伪企业标志将销售单明细数据集拆分成多个待开发票数据集,其中每个待开发票数据集的明细合计发票金额小于等于开票限额且每个待开发票数据集的商品明细行数不大于增值税发票上的预定商品明细行数。拆分模块25所执行的该操作可以类似于上述步骤S51和步骤S52中所描述的操作,此处不再赘述。
优选地,获取模块21所获取的销售单明细数据集的每个所述商品明细行中还可以包括被折扣标志和折扣比例,且销售单金额为折扣后金额,每个商品明细行中的金额为折扣前金额。在这种情况下,销售单金额校验模块23还用于:利用折扣后金额=折扣前金额*(1-折扣比例)来计算包含折扣商品的商品明细行的折扣后金额,将该折扣后金额与不包含折扣商品的其他商品明细行中的金额进行累加得到所述明细合计金额,并判断所述明细合计金额是否等于销售单金额。也即在企业的销售单明细数据表中有打折商品时,销售单金额校验模块23需要先计算出该商品明细行的折扣后金额然后再进行累加。发票数据计算模块24还用于在计算每个商品明细行的价税合计、发票金额、发票税额和发票单价之前,根据折扣比例重新排列各个商品明细行,计算具有相同折扣比例的商品明细行的总行数及其总折扣金额,并在具有相同折扣比例的商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称中体现了具有相同折扣比例的商品明细行的总行数以及折扣比例,该折扣行的金额为所述总折扣金额*(-1)。发票数据计算模块24所执行的操作可以类似于存在被折扣标志和折扣比例这两个数据项时前述步骤S4中所描述的操作,此处不再赘述。而且,在拆分模块25完成所述拆分之后,在清单标志表示开具不带清单的增值税发票的情况下,发票数据计算模块24还用于:若待开发票数据集中具有相同折扣比例的一行或多行商品明细行的最后一行商品明细行之后没有折扣行则在该最后一行商品明细行之后插入一条折扣行,若在所述最后一行商品明细行之后具有折扣行则更新该折扣行,以及更新该待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。这样就能够对每张待开发票数据集中的折扣数据进行重新处理,以使得每张待开发票数据集中的数据更为准确,避免出现依据该待开发票数据集所开具的发票上的金额、税额等数据项与企业的销售单中所计算的数据项存在差异的情况,提高了企业的财务管理水平。插入与更新折扣行的操作与之前根据本发明的方法中所描述的操作类似,此处不再赘述。
另外,按照现有的实际销售单数据统计结果来看,在开具带清单的增值税发票的情况下,通常销售单明细数据集中的明细合计发票金额是小于开票限额的,因此在销售单明细数据集中也包括打折商品时,在拆分模块25进行拆分之后发票数据计算模块24可以不对折扣数据进行再处理。如果销售单明细数据集中的明细合计发票金额大于开票限额,则在拆分模块25进行拆分之后,发票数据计算模块24也可以对折扣数据进行与上述类似的操作,即插入和更新折扣行并更新待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (8)
1.一种为不含税额销售单开具单税率增值税发票的方法,该方法包括:
步骤S1、获取待开发票的销售单数据集和销售单明细数据集,所述销售单数据集包括销售单金额、销售单税率、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额;
步骤S2、计算每个所述商品明细行中单价与数量的乘积并判断该乘积是否等于该商品明细行中的金额,若相等,则转至步骤S3;
步骤S3、将各个所述商品明细行中的金额进行累加得到明细合计金额,判断该明细合计金额是否等于所述销售单金额,若相等,则转至步骤S4;
步骤S4、根据所述销售单税率、所述含税标志以及每个所述商品明细行中的单价和数量计算并在每个所述商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有所述商品明细行中的价税合计、发票金额和发票税额以在所述销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额;以及
步骤S5、依据所述开票限额和所述增值税发票上的预定商品明细行数,将所述销售单明细数据集拆分成多个待开发票数据集。
2.根据权利要求1所述的方法,其中,在步骤S4中,
在所述含税标志表示含税的情况下,采用以下公式计算每个所述商品明细行的价税合计、发票金额、发票税额和发票单价:
价税合计=单价*数量;
发票金额=价税合计/(1+销售单税率);
发票税额=价税合计-发票金额;
发票单价=单价/(1+销售单税率);
在所述含税标志表示不含税的情况下,采用以下公式计算每个所述商品明细行的价税合计、发票金额、发票税额和发票单价:
发票金额=单价*数量;
发票税额=发票金额*销售单税率;
价税合计=发票金额+发票税额。
3.根据权利要求1所述的方法,其中,所述销售单数据集还包括清单标志和汉字防伪企业标志,所述汉字防伪企业标志限定了所述增值税发票上的预定商品明细行数,则所述步骤S5包括以下步骤:
步骤S51、在所述清单标志表示开具带清单的增值税发票的情况下,依据所述开票限额将所述销售单明细数据集拆分成多个待开发票数据集,其中每个所述待开发票数据集的明细合计发票金额小于等于所述开票限额;
步骤S52、在所述清单标志表示开具不带清单的增值税发票的情况下,依据所述开票限额和所述汉字防伪企业标志将所述销售单明细数据集拆分成多个待开发票数据集,其中每个所述待开发票数据集的明细合计发票金额小于等于所述开票限额且每个所述待开发票数据集的商品明细行数不大于所述增值税发票上的预定商品明细行数。
4.根据权利要求3所述的方法,其中,每个所述商品明细行中还包括被折扣标志和折扣比例,且所述销售单金额为折扣后金额,每个所述商品明细行中的金额为折扣前金额,则:
在步骤S3中,利用折扣后金额=折扣前金额*(1-折扣比例)来计算包含折扣商品的商品明细行的折扣后金额,将该折扣后金额与不包含折扣商品的其他商品明细行中的金额进行累加得到所述明细合计金额,并判断所述明细合计金额是否等于所述销售单金额,若相等,则转至步骤S4;
在步骤S4中,在计算每个所述商品明细行的价税合计、发票金额、发票税额和发票单价之前,还根据所述折扣比例重新排列各个所述商品明细行,计算具有相同折扣比例的商品明细行的总行数及其总折扣金额,并在具有相同折扣比例的商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称中体现了具有相同折扣比例的商品明细行的总行数以及折扣比例,该折扣行的金额为所述总折扣金额*(-1);以及
在步骤S52中,若所述待开发票数据集中具有相同折扣比例的一行或多行商品明细行的最后一行商品明细行之后没有折扣行则在该最后一行商品明细行之后插入一条折扣行,若在所述最后一行商品明细行之后具有折扣行则更新该折扣行,以及更新该待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。
5.一种为不含税额销售单开具单税率增值税发票的系统,该系统包括:
获取模块,用于获取待开发票的销售单数据集和销售单明细数据集,所述销售单数据集包括销售单金额、销售单税率、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额;
明细金额校验模块,用于计算每个所述商品明细行中单价与数量的乘积,判断该乘积是否等于该商品明细行中的金额;
销售单金额校验模块,用于将各个所述商品明细行中的金额进行累加得到明细合计金额,判断该明细合计金额是否等于所述销售单金额;
发票数据计算模块,用于根据所述销售单税率、所述含税标志以及每个所述商品明细行中的单价和数量计算并在每个所述商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有所述商品明细行的价税合计、发票金额和发票税额以在所述销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额;以及
拆分模块,用于在所述发票数据计算模块完成所述计算和累加之后,依据所述开票限额和所述增值税发票上的预定商品明细行数,将所述销售单明细数据集拆分成多个待开发票数据集。
6.根据权利要求5所述的系统,其中,所述发票数据计算模块用于:
在所述含税标志表示含税的情况下,采用以下公式计算所述每个所述商品明细行的价税合计、发票金额、发票税额和发票单价:
价税合计=单价*数量;
发票金额=价税合计/(1+销售单税率);
发票税额=价税合计-发票金额;
发票单价=单价/(1+销售单税率);
在所述含税标志表示不含税的情况下,采用以下公式计算每个所述商品明细行的价税合计、发票金额、发票税额和发票单价:
发票金额=单价*数量;
发票税额=发票金额*销售单税率;
价税合计=发票金额+发票税额。
7.根据权利要求5所述的系统,其中,所述销售单数据集还包括清单标志和汉字防伪企业标志,所述汉字防伪企业标志限定了所述增值税发票上的预定商品明细行数,所述拆分模块用于:
在所述清单标志表示开具带清单的增值税发票的情况下,依据所述开票限额将所述销售单明细数据集拆分成多个待开发票数据集,其中每个所述待开发票数据集的明细合计发票金额小于等于所述开票限额;
在所述清单标志表示开具不带清单的增值税发票的情况下,依据所述开票限额和所述汉字防伪企业标志将所述销售单明细数据集拆分成多个待开发票数据集,其中每个所述待开发票数据集的明细合计发票金额小于等于所述开票限额且每个所述待开发票数据集的商品明细行数不大于所述增值税发票上的预定商品明细行数。
8.根据权利要求7所述的系统,其中,所述销售单明细数据集的每个所述商品明细行中还包括被折扣标志和折扣比例,且所述销售单金额为折扣后金额,每个所述商品明细行中的金额为折扣前金额:
所述销售单金额校验模块还用于:利用折扣后金额=折扣前金额*(1-折扣比例)来计算包含折扣商品的商品明细行的折扣后金额,将该折扣后金额与不包含折扣商品的其他商品明细行中的金额进行累加得到所述明细合计金额,并判断所述明细合计金额是否等于所述销售单金额;
所述发票数据计算模块还用于在计算每个所述商品明细行的价税合计、发票金额、发票税额和发票单价之前,根据所述折扣比例重新排列各个所述商品明细行,计算具有相同折扣比例的商品明细行的总行数及其总折扣金额,并在具有相同折扣比例的商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称中体现了具有相同折扣比例的商品明细行的总行数以及折扣比例,该折扣行的金额为所述总折扣金额*(-1);以及
在所述拆分模块完成所述拆分之后,在所述清单标志表示开具不带清单的增值税发票的情况下,所述发票数据计算模块还用于:若所述待开发票数据集中具有相同折扣比例的一行或多行商品明细行的最后一行商品明细行之后没有折扣行则在该最后一行商品明细行之后插入一条折扣行,若在所述最后一行商品明细行之后具有折扣行则更新该折扣行,以及更新该待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510232333.1A CN106204177A (zh) | 2015-05-08 | 2015-05-08 | 为不含税额销售单开具单税率增值税发票的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510232333.1A CN106204177A (zh) | 2015-05-08 | 2015-05-08 | 为不含税额销售单开具单税率增值税发票的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106204177A true CN106204177A (zh) | 2016-12-07 |
Family
ID=57459886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510232333.1A Pending CN106204177A (zh) | 2015-05-08 | 2015-05-08 | 为不含税额销售单开具单税率增值税发票的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106204177A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829001A (zh) * | 2017-11-22 | 2019-05-31 | 航天信息股份有限公司 | 用于生成发票数据的方法及装置 |
WO2021000773A1 (zh) * | 2019-07-01 | 2021-01-07 | 苏宁云计算有限公司 | 超限额发票的拆分方法、装置、计算机设备和存储介质 |
-
2015
- 2015-05-08 CN CN201510232333.1A patent/CN106204177A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109829001A (zh) * | 2017-11-22 | 2019-05-31 | 航天信息股份有限公司 | 用于生成发票数据的方法及装置 |
WO2021000773A1 (zh) * | 2019-07-01 | 2021-01-07 | 苏宁云计算有限公司 | 超限额发票的拆分方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106204175A (zh) | 为不含税额销售单开具多税率增值税发票的方法和系统 | |
CN106204171A (zh) | 为含税额销售单开具单税率增值税发票的方法和系统 | |
Sheng et al. | Expanding export variety: The role of institutional reforms in developing countries | |
US7177822B2 (en) | Common database system for sales and marketing process | |
US20160110762A1 (en) | Extracting product purchase information from electronic messages | |
CN104463732A (zh) | 房源管理系统及其房源数据处理方法 | |
CN109829001A (zh) | 用于生成发票数据的方法及装置 | |
CN109255703A (zh) | 交易数据处理方法及装置 | |
CN106920136A (zh) | 货运专票开具的方法 | |
CN102521713B (zh) | 数据处理装置和数据处理方法 | |
CN108648005A (zh) | 数据处理方法及系统 | |
CN105809523A (zh) | 平衡税额开具发票的方法和系统 | |
US20180053204A1 (en) | Auto-population of discount information into an e-invoice | |
CN106204177A (zh) | 为不含税额销售单开具单税率增值税发票的方法和系统 | |
US20140379417A1 (en) | System and Method for Data Quality Business Impact Analysis | |
CN112256943B (zh) | 门店基于自然语言处理结合知识图谱的画像提取方法 | |
CN106204172A (zh) | 为含税额销售单开具单税率增值税发票的方法和系统 | |
CN106204173A (zh) | 为不含税额销售单开具多税率增值税发票的方法和系统 | |
CN102722808A (zh) | 支付系统 | |
CN106204179A (zh) | 为不含税额销售单开具单税率增值税发票的方法和系统 | |
CN111931475A (zh) | 动态认购书生成方法、系统、计算机设备及存储介质 | |
CN106204178A (zh) | 为含税额销售单开具多税率增值税发票的方法和系统 | |
CN106204176A (zh) | 为含税额销售单开具多税率增值税发票的方法和系统 | |
JP2010510570A (ja) | 顧客対応報告書を作成するためのシステム及び方法 | |
CN112734543A (zh) | 核算处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161207 |