CN106204179A - 为不含税额销售单开具单税率增值税发票的方法和系统 - Google Patents

为不含税额销售单开具单税率增值税发票的方法和系统 Download PDF

Info

Publication number
CN106204179A
CN106204179A CN201510232367.0A CN201510232367A CN106204179A CN 106204179 A CN106204179 A CN 106204179A CN 201510232367 A CN201510232367 A CN 201510232367A CN 106204179 A CN106204179 A CN 106204179A
Authority
CN
China
Prior art keywords
invoice
amount
tax
commodity
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
Application number
CN201510232367.0A
Other languages
English (en)
Inventor
耿立家
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisino Corp
Original Assignee
Aisino Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aisino Corp filed Critical Aisino Corp
Priority to CN201510232367.0A priority Critical patent/CN106204179A/zh
Publication of CN106204179A publication Critical patent/CN106204179A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Cash Registers Or Receiving Machines (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种为不含税额销售单开具单税率增值税发票的方法和系统,包括:获取营改增业务商品字典表、销售单金额、销售单税率、含税标志、开票限额和包括多个商品明细行的销售单明细数据集,每个商品明细行包括商品名称、单价、数量和金额;校验单价与数量之积是否等于金额、金额之和是否等于销售单金额;校验商品名称与营改增业务商品字典表中的商品名称的相似度值是否大于预定值,若大于则在商品明细行中增加营改增标识;根据销售单税率、含税标志、单价和数量计算价税合计、发票金额、发票税额和发票单价;依据开票限额、营改增标识和预定商品明细行数拆分销售单明细数据集。这节省了时间和人力成本。

Description

为不含税额销售单开具单税率增值税发票的方法和系统
技术领域
本发明涉及电子发票技术领域,具体地,涉及一种为不含税额销售单开具单税率增值税发票的方法和系统。
背景技术
随着营业税改征增值税的推广,一些集团企业的分支机构除了在属地纳税申报以外,还需要将营改增业务的销售额、销项税额等数据上报到总机构,由总机构进行汇总申报。为了财务管理的需要,这部分营改增业务数据开具的发票应该与其它业务数据开具的发票分别开具。
在企业生产经营活动中,业务系统中生成的销售单数据在同一张销售单上既有营改增业务数据,也会有非营改增业务数据;同时由于企业在国税局的注册类型、生产经营范围不同,不同企业的销售单数据还会有是否包含税额,是单税率开票还是多税率开票等多种属性,如果不对上述属性做正确处理就传给防伪税控系统开具发票,就会因各种数据校验关系不符,无法正常开票;或者即使开具了发票,也可能由于发票数据的金额、税额等数据项与企业销售单中计算的数据项存在差异,给企业的财务管理带来问题。
发明内容
本发明提供一种为不含税额销售单开具单税率增值税发票的方法和系统,其既能节省时间和人力成本,又能为营改增总分机构企业预先准备好符合发票数据规范的待开发票数据,帮助营改增总分机构企业顺利开具发票。
本发明提供一种为不含税额销售单开具单税率增值税发票的方法,该方法包括:
步骤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 商品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
10 商品6 300.00 2 600.00
11 商品7 200.00 2 400.00
表2
另外,营改增业务商品字典表可以预先建立,并且随着营改增总分机构企业业务的发展以及属于营改增业务的商品种类的增加而不断进行更新和维护。表3给出了一种示例性的营改增业务商品字典表。
商品编码 商品名称 备注
SP0001 商品1
SP0002 商品2
表3
步骤S2、校验每个商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有商品明细行中的金额之和是否等于销售单金额。
例如,在校验每个商品明细行中单价与数量的乘积是否等于该商品明细行中的金额时,可以在销售单明细数据集中,从首条到末条数据循环,逐条获取每条商品明细行的行号、金额、数量和单价这几个数据项,并计算“单价*数量”,判断计算结果与本条商品明细行中的金额是否相等,如果不相等,则提示例如“行号为‘当前行号’的销售单明细数据集中,单价*数量与金额不相等”,并结束算法流程;若相等,则继续后续步骤。
在校验所有商品明细行中的金额之和是否等于销售单金额时,可以在销售单明细数据集中,从首条到末条数据循环,逐条获取每条商品明细行的金额数据项,累计相加计算生成明细合计金额,并判断该明细合计金额与销售单金额是否相等,如果不相等,则提示例如“∑销售单明细金额与销售单金额不相等”后,结束算法流程;若相等,则继续后续步骤。
步骤S3、依次计算各个商品明细行中的商品名称与营改增业务商品字典表中的商品名称的相似度值,若所计算的相似度值大于预定值,则在相应的商品明细行中增加营改增标识。
其中,相似度是指两个名称的相似程度,是运用模糊综合评判原理,将两个待评定内容进行运算得出的数值。两个完全一样的内容,相似度值为1,如:“笔记本电脑”与“笔记本电脑”的相似度计算的结果值为1,说明两个比较的内容完全相同。两个完全不一样的内容,相似度值为0,如:“笔记本电脑”与“硬盘”的相似度值为0,说明两个比较的内容完全没有相同的内容。部分相同内容的相似度值介于(0,1)之间,如:“黄大金属物资回收器峨眉山市”与“峨眉山市慌大金属物资回收器”相似度计算结果为0.35,说明两个比较的内容中,有一部分是相同的内容。
在计算相似度值时,可以从销售单明细数据集中的首条商品明细行向末条商品明细行循环,依次计算每条商品明细行中的商品名称与营改增业务商品字典表中的商品名称的相似度值。相似度值的计算可以运用模糊综合评判原理来完成,例如可以将商品明细行中的商品名称和营改增业务商品字典表中的商品名称这两个数据项代入ORACLE数据库中提供的方法utl_match.edit_distance_similarity中来计算商品名称的相似度值。
优选地,步骤S3可以通过以下过程来实现:依次计算各个商品明细行中的商品名称与营改增业务商品字典表中的商品名称的相似度值;若所计算的同一商品明细行中的商品名称的相似度值大于所述预定值,则停止计算该商品明细行中的商品名称与营改增业务商品字典表中的剩余商品名称的相似度值;以及在相应的商品明细行中增加营改增标识。以表2所示的销售单明细数据集为例,首先计算商品1与营改增业务商品字典表中的商品名称的相似度值,若商品1与营改增业务商品字典表中的某商品名称的相似度值大于预定值,则停止计算商品1与营改增业务商品字典表中的剩余商品名称的相似度值,并在表2的第一行商品明细行中添加营改增标识Y以表示商品1是营改增商品;依此类推,直至完成最后一行商品明细行中的商品7的相似度值的计算为止,从而得到表4所示的示例性销售单明细数据集。这样就不必计算同一商品明细行中的商品名称与营改增业务商品字典表中的全部商品名称的相似度值,从而节省了计算时间,提高了根据本发明的方法的数据处理效率。
优选地,步骤S3也可以通过以下过程来实现:依次计算各个商品明细行中的商品名称与营改增业务商品字典表中的全部商品名称的相似度值;将同一商品明细行中的商品名称与营改增业务商品字典表中的全部商品名称的相似度值中的最大相似度值添加到相应的商品明细行中,若该最大相似度值大于所述预定值,则在该相应的商品明细行中增加营改增标识。还是以表2的销售单明细数据集为例。首先计算商品1与营改增业务商品字典表中的全部商品名称的相似度值,将所计算的最大相似度值1添加到第1条商品明细行中,并将该条商品明细行中的营改增标识设置为Y,也即认为这个商品为营改增业务的商品;然后计算商品2与营改增业务商品字典表中的全部商品名称的相似度值,将所计算的最大相似度值1添加到第2条商品明细行中,并将该条商品明细行中的营改增标识设置为Y;以此类推,直至完成最后一行商品明细行中的商品7与营改增业务商品字典表中的全部商品名称的相似度值的计算为止,从而得到表4所示的示例性销售单明细数据集。当然,在执行该过程时,营改增标识的设置也可以在完成所有商品明细行中的商品名称的相似度值计算之后执行。还是以表2的销售单明细数据集为例:首先计算商品1与营改增业务商品字典表中的全部商品名称的相似度值并将所计算的最大相似度值1添加到第1条商品明细行中,然后计算商品2与营改增业务商品字典表中的全部商品名称的相似度值并将所计算的最大相似度值1添加到第2条商品明细行中,依此类推,直至完成最后一行商品明细行中的商品7与营改增业务商品字典表中的全部商品名称的相似度值的计算为止,从而得到表4所示的示例性销售单明细数据集;然后依次读取表4中每条商品明细行中的相似度值并将其与所述预定值进行比较,若该相似度值大于所述预定值,就将该条商品明细行中的营改增标识设置为Y。
表4
在完成营改增标识的设置之后,可以依次检查(例如,人工检查)是否有营改增标识错误的情况并进行更正。优选地,所述预定值可以是例如0.5或者其他合适的值。
步骤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中给出的清单标志是N,汉字防伪企业标志是N,所以所拆分的每个待开发票数据集的商品明细行数均不超过非汉字防伪企业所能开具的最大8条商品明细行数;而且,在拆分之后,由于表6中的打折商品2之后原本是没有折扣行的,所以在表8中需要在折扣商品2之后插入一行折扣行,以使得表8中所有商品明细行中的发票金额之和等于明细合计发票金额;另外,由于表6中的打折商品4之后原本是有折扣行的,所以在拆分之后还需要对表9中的折扣行进行更新。
表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也可以对折扣数据进行与上述类似的操作,即插入和更新折扣行并更新待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。而且,本发明的方法流程中的步骤顺序可以改变,例如营改增标识步骤和发票数据计算步骤的顺序可以调换,即可以先计算发票数据然后再标识营改增商品。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

Claims (16)

1.一种为不含税额销售单开具单税率增值税发票的方法,该方法包括:
步骤S1、获取营改增业务商品字典表和待开发票的销售单数据集和销售单明细数据集,所述营改增业务商品字典表中包括属于营改增业务的商品的商品名称,所述销售单数据集包括销售单金额、销售单税率、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额;
步骤S2、校验每个所述商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有所述商品明细行中的金额之和是否等于所述销售单金额;
步骤S3、依次计算各个所述商品明细行中的商品名称与所述营改增业务商品字典表中的商品名称的相似度值,若所计算的相似度值大于预定值,则在相应的商品明细行中增加营改增标识;
步骤S4、根据所述销售单税率、所述含税标志以及每个所述商品明细行中的单价和数量计算并在每个所述商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有所述商品明细行中的价税合计、发票金额和发票税额以在所述销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额;以及
步骤S5、依据所述开票限额、所述营改增标识和所述增值税发票上的预定商品明细行数,将所述销售单明细数据集拆分成多个待开发票数据集。
2.根据权利要求1所述的方法,其中,在步骤S4中,
在所述含税标志表示含税的情况下,采用以下公式计算每个所述商品明细行的价税合计、发票金额、发票税额和发票单价:
价税合计=单价*数量;
发票金额=价税合计/(1+销售单税率);
发票税额=价税合计-发票金额;
发票单价=单价/(1+销售单税率);
在所述含税标志表示不含税的情况下,采用以下公式计算每个所述商品明细行的价税合计、发票金额、发票税额和发票单价:
发票金额=单价*数量;
发票税额=发票金额*销售单税率;
价税合计=发票金额+发票税额。
3.根据权利要求1所述的方法,其中,所述销售单数据集还包括清单标志和汉字防伪企业标志,所述汉字防伪企业标志限定了所述增值税发票上的预定商品明细行数,则所述步骤S5包括以下步骤:
步骤S51、在所述清单标志表示开具带清单的增值税发票的情况下,依据所述开票限额和所述营改增标识将所述销售单明细数据集拆分成多个待开发票数据集,其中同一待开发票数据集中所有商品明细行的营改增标识均相同且每个待开发票数据集的明细合计发票金额均小于等于所述开票限额;
步骤S52、在所述清单标志表示开具不带清单的增值税发票的情况下,依据所述开票限额、所述营改增标识和所述汉字防伪企业标志将所述销售单明细数据集拆分成多个待开发票数据集,其中同一待开发票数据集中所有商品明细行的营改增标识均相同,每个待开发票数据集的明细合计发票金额均小于等于所述开票限额且每个待开发票数据集的商品明细行数不大于所述增值税发票上的预定商品明细行数。
4.根据权利要求3所述的方法,其中,每个所述商品明细行中还包括被折扣标志和折扣比例,且所述销售单金额为折扣后金额,每个所述商品明细行中的金额为折扣前金额,则:
在步骤S2中,利用折扣后金额=折扣前金额*(1-折扣比例)来计算包含折扣商品的商品明细行的折扣后金额并校验该折扣后金额与不包含折扣商品的其他商品明细行中的金额之和是否等于所述销售单金额;
在步骤S4中,在计算每个所述商品明细行中的价税合计、发票金额、发票税额和发票单价之前,还根据所述折扣比例重新排列各个所述商品明细行,计算具有相同折扣比例的商品明细行的总行数及其总折扣金额,并在具有相同折扣比例的商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称中体现了具有相同折扣比例的商品明细行的总行数以及折扣比例,该折扣行的金额为所述总折扣金额*(-1);以及
在步骤S52中,若所述待开发票数据集中具有相同折扣比例的一行或多行商品明细行的最后一行商品明细行之后没有折扣行则在该最后一行商品明细行之后插入一条折扣行,若在所述最后一行商品明细行之后具有折扣行则更新该折扣行,以及更新该待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。
5.根据权利要求1至4中任一权利要求所述的方法,其中,在步骤S3中,利用ORACLE数据库中的utl_match.edit_distance_similarity来计算所述相似度值。
6.根据权利要求1至4中任一权利要求所述的方法,其中,步骤S3包括:
依次计算各个所述商品明细行中的商品名称与所述营改增业务商品字典表中的商品名称的相似度值;
若所计算的同一商品明细行中的商品名称的相似度值大于所述预定值,则停止计算该商品明细行中的商品名称与所述营改增业务商品字典表中的剩余商品名称的相似度值;以及
在相应的商品明细行中增加营改增标识。
7.根据权利要求1至4中任一权利要求所述的方法,其中,步骤S3包括:
依次计算各个所述商品明细行中的商品名称与所述营改增业务商品字典表中的全部商品名称的相似度值;
将同一商品明细行中的商品名称与所述营改增业务商品字典表中的全部商品名称的相似度值中的最大相似度值添加到相应的商品明细行中,若该最大相似度值大于所述预定值,则在该相应的商品明细行中增加营改增标识。
8.根据权利要求1所述的方法,其中,所述预定值为0.5。
9.一种为不含税额销售单开具单税率增值税发票的系统,该系统包括:
获取模块,用于获取营改增业务商品字典表以及待开发票的销售单数据集和销售单明细数据集,所述销售单数据集包括销售单金额、销售单税率、含税标志和开票限额,所述销售单明细数据集包括多个商品明细行,每个商品明细行包括商品名称、单价、数量和金额,所述营改增业务商品字典表中包括属于营改增业务的商品的商品名称;
销售单数据校验模块,用于校验每个所述商品明细行中单价与数量的乘积是否等于该商品明细行中的金额,并校验所有所述商品明细行中的金额之和是否等于所述销售单金额;
营改增识别模块,用于依次计算各个所述商品明细行中的商品名称与所述营改增业务商品字典表中的商品名称的相似度值,若所计算的相似度值大于预定值,则在相应的商品明细行中增加营改增标识;
发票数据计算模块,用于根据所述销售单税率、所述含税标志以及每个所述商品明细行中的单价和数量计算并在每个所述商品明细行中添加价税合计、发票金额、发票税额和发票单价,并分别累加所有所述商品明细行中的价税合计、发票金额和发票税额以在所述销售单明细数据集中添加明细合计价税合计、明细合计发票金额和明细合计发票税额;以及
拆分模块,用于在所述发票数据计算模块完成所述计算和累加之后,依据所述开票限额、所述营改增标识和所述增值税发票上的预定商品明细行数,将所述销售单明细数据集拆分成多个待开发票数据集。
10.根据权利要求9所述的系统,其中,所述发票数据计算模块用于:
在所述含税标志表示含税的情况下,采用以下公式计算每个所述商品明细行的价税合计、发票金额、发票税额和发票单价:
价税合计=含税单价*数量;
发票金额=价税合计/(1+销售单税率);
发票税额=价税合计-发票金额;
发票单价=含税单价/(1+销售单税率);
在所述含税标志表示不含税的情况下,采用以下公式计算每个所述商品明细行的价税合计、发票金额、发票税额和发票单价:
发票金额=不含税单价*数量;
发票税额=发票金额*销售单税率;
价税合计=发票金额+发票税额。
11.根据权利要求9所述的系统,其中,所述销售单数据集还包括清单标志和汉字防伪企业标志,所述汉字防伪企业标志限定了所述增值税发票上的预定商品明细行数,所述拆分模块用于:
在所述清单标志表示开具带清单的增值税发票的情况下,依据所述开票限额和所述营改增标识将所述销售单明细数据集拆分成多个待开发票数据集,其中同一待开发票数据集中所有商品明细行的营改增标识均相同且每个待开发票数据集的明细合计发票金额均小于等于所述开票限额;
在所述清单标志表示开具不带清单的增值税发票的情况下,依据所述开票限额、所述营改增标识和所述汉字防伪企业标志将所述销售单明细数据集拆分成多个待开发票数据集,其中同一待开发票数据集中所有商品明细行的营改增标识均相同,每个待开发票数据集的明细合计发票金额均小于等于所述开票限额且每个待开发票数据集的商品明细行数不大于所述增值税发票上的预定商品明细行数。
12.根据权利要求11所述的系统,其中,每个所述商品明细行中还包括被折扣标志和折扣比例,且所述销售单金额为折扣后金额,每个所述商品明细行中的金额为折扣前金额,则:
所述销售单数据校验模块还用于:利用折扣后金额=折扣前金额*(1-折扣比例)来计算包含折扣商品的商品明细行的折扣后金额并校验该折扣后金额与不包含折扣商品的其他商品明细行中的金额之和是否等于所述销售单金额;
所述发票数据计算模块还用于在计算每个所述商品明细行中的价税合计、发票金额、发票税额和发票单价之前,根据所述折扣比例重新排列各个所述商品明细行,计算具有相同折扣比例的商品明细行的总行数及其总折扣金额,并在具有相同折扣比例的商品明细行的最后一行商品明细行之后插入一条折扣行,该折扣行的商品名称中体现了具有相同折扣比例的商品明细行的总行数以及折扣比例,该折扣行的金额为所述总折扣金额*(-1);以及
在所述拆分模块完成所述拆分之后,在所述清单标志表示开具不带清单的增值税发票的情况下,所述发票数据计算模块还用于:若所述待开发票数据集中具有相同折扣比例的一行或多行商品明细行的最后一行商品明细行之后没有折扣行则在该最后一行商品明细行之后插入一条折扣行,若在所述最后一行商品明细行之后具有折扣行则更新该折扣行,以及更新该待开发票数据集中的明细合计价税合计、明细合计发票金额和明细合计发票税额。
13.根据权利要求9至12中任一权利要求所述的系统,其中,所述营改增识别模块利用ORACLE数据库中的utl_match.edit_distance_similarity来计算所述相似度值。
14.根据权利要求9至12中任一权利要求所述的系统,其中,所述营改增识别模块用于:
依次计算各个所述商品明细行中的商品名称与所述营改增业务商品字典表中的商品名称的相似度值;
若所计算的同一商品明细行中的商品名称的相似度值大于所述预定值,则停止计算该商品明细行中的商品名称与所述营改增业务商品字典表中的剩余商品名称的相似度值;以及
在相应的商品明细行中增加营改增标识。
15.根据权利要求9至12中任一权利要求所述的系统,其中,所述营改增识别模块用于:
依次计算各个所述商品明细行中的商品名称与所述营改增业务商品字典表中的全部商品名称的相似度值;
将同一商品明细行中的商品名称与所述营改增业务商品字典表中的全部商品名称的相似度值中的最大相似度值添加到相应的商品明细行中,若该最大相似度值大于所述预定值,则在该相应的商品明细行中增加营改增标识。
16.根据权利要求9所述的系统,其中,所述预定值为0.5。
CN201510232367.0A 2015-05-08 2015-05-08 为不含税额销售单开具单税率增值税发票的方法和系统 Pending CN106204179A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510232367.0A CN106204179A (zh) 2015-05-08 2015-05-08 为不含税额销售单开具单税率增值税发票的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510232367.0A CN106204179A (zh) 2015-05-08 2015-05-08 为不含税额销售单开具单税率增值税发票的方法和系统

Publications (1)

Publication Number Publication Date
CN106204179A true CN106204179A (zh) 2016-12-07

Family

ID=57459243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510232367.0A Pending CN106204179A (zh) 2015-05-08 2015-05-08 为不含税额销售单开具单税率增值税发票的方法和系统

Country Status (1)

Country Link
CN (1) CN106204179A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829001A (zh) * 2017-11-22 2019-05-31 航天信息股份有限公司 用于生成发票数据的方法及装置
CN111369308A (zh) * 2020-02-04 2020-07-03 浙江知夫子信息科技有限公司 基于收费通知单的发票开具方法、系统、存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109829001A (zh) * 2017-11-22 2019-05-31 航天信息股份有限公司 用于生成发票数据的方法及装置
CN111369308A (zh) * 2020-02-04 2020-07-03 浙江知夫子信息科技有限公司 基于收费通知单的发票开具方法、系统、存储介质

Similar Documents

Publication Publication Date Title
Christy et al. RFM ranking–An effective approach to customer segmentation
US20130325880A1 (en) Methods, Systems, and Computer Program Products for Generating Data Quality Indicators for Relationships in a Database
CN106204171A (zh) 为含税额销售单开具单税率增值税发票的方法和系统
US11062132B2 (en) System and method for identification of missing data elements in electronic documents
US9875486B2 (en) Extracting product purchase information from electronic messages
CN107798515A (zh) 一种数据库自动生成会计凭证的方法
CN106204175A (zh) 为不含税额销售单开具多税率增值税发票的方法和系统
CN110751361B (zh) 一种银行需求条目级管理方法及系统
US11138372B2 (en) System and method for reporting based on electronic documents
US20160275595A1 (en) Methods and systems for recommending a travel itinerary
CN107274291A (zh) 跨平台的估值表解析方法、存储介质及应用服务器
US20230297552A1 (en) System, Method, and Computer Program Product for Monitoring and Improving Data Quality
CN112182207A (zh) 基于关键词提取和快速文本分类的发票虚抵风险评估方法
US7577653B2 (en) Registration system and duplicate entry detection algorithm
CN106934006B (zh) 基于多叉树模型的页面推荐方法及装置
US20180053204A1 (en) Auto-population of discount information into an e-invoice
CN106204172A (zh) 为含税额销售单开具单税率增值税发票的方法和系统
CN106204179A (zh) 为不含税额销售单开具单税率增值税发票的方法和系统
CN106204173A (zh) 为不含税额销售单开具多税率增值税发票的方法和系统
CN103885998A (zh) Xbrl要素的统一注册应用的方法
CN102722808A (zh) 支付系统
CN106204178A (zh) 为含税额销售单开具多税率增值税发票的方法和系统
CN106204177A (zh) 为不含税额销售单开具单税率增值税发票的方法和系统
Jácome et al. Contextual Analysis of Comments in B2C Facebook Fan Pages Based on the Levenshtein Algorithm
Cherednichenko et al. Information technology for intellectual analysis of item descriptions in e-commerce

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