税控开票系统及利用该税控开票系统统计商品数据的方法与流程

文档序号:12722197阅读:1863来源:国知局
税控开票系统及利用该税控开票系统统计商品数据的方法与流程
本发明涉及电子发票
技术领域
,具体地,涉及一种税控开票系统及利用该税控开票系统统计商品数据的方法。
背景技术
:目前,国家税务总局监制的增值税发票税控开票系统为全国一般纳税人企业提供了增值税发票的管理功能,包括发票数据录入、发票开具、发票查询、抄报税等功能。虽然税控开票系统提供了完整的发票流程管理,且功能简洁并满足了税务的管理需求,但是该税控开票系统的发票查询功能无法满足企业的多样化查询统计需求。技术实现要素:本发明的目的是提供一种税控开票系统及利用该税控开票系统统计商品数据的方法,其能够满足向税控开票系统中录入不含税发票数据的多开票点企业对开票商品进行多样化查询统计的需求。为了实现上述目的,本发明提供一种税控开票系统,该税控开票系统包括销项发票表、销项发票明细表和销项清单明细表,其特征在于,该税控开票系统包括:获取模块,用于从所述销项发票表中获取至少包括发票代码、发票号码、清单标识和开票机号的发票主体数据,以及依据所述清单标识相应地从所述销项发票明细表或销项清单明细表中获取包括至少一个商品明细行的发票商品明细数据,每个所述商品明细行至少包括商品名称、数量、单价、金额、税额、税率和含税标识;折扣处理模块,用于在所获取的发票商品明细数据包括折扣行且所述含税标识为不含税的情况下,依据所述折扣行的商品名称来确定折扣商品的行数N,并将该折扣行中的金额和税额分别平摊到该折扣行之前的N行商品明细行的金额和税额中;以及统计模块,用于依据折扣处理后的发票商品明细数据来统计商品数据。本发明还提供一种利用税控开票系统统计商品数据的方法,该税控开票系统包括销项发票表、销项发票明细表和销项清单明细表,其特征在于,该方法包括:从所述销项发票表中获取至少包括发票代码、发票号码、清单标识和开票机号的发票主体数据;依据所述清单标识相应地从所述销项发票明细表或销项清单明细表中获取包括至少一个商品明细行的发票商品明细数据,每个所述商品明细行至少包括商品名称、数量、单价、金额、税额、税率和含税标识;在所获取的发票商品明细数据包括折扣行且所述含税标识为不含税的情况下,依据所述折扣行的商品名称来确定折扣商品的行数N,并将该折扣行中的金额和税额分别平摊到该折扣行之前的N行商品明细行的金额和税额中;以及依据折扣处理后的发票商品明细数据来统计商品数据通过上述技术方案,由于根据本发明的税控开票系统及方法能够从销项发票表中获取发票主体数据、依据清单标识相应地从销项发票明细表或销项清单明细表中获取发票商品明细数据,并对发票商品明细数据进行折扣处理,因此其能够为税控开票系统提供强大而全面的数据分析功能,实现商品的灵活、精确查询统计,为企业财务人员提供税务信息化解决方案,提高财务人员的工作效率和商品数据统计的准确率,减少人工核对的工作量,提升企业财务的税务管理效率和办税效率。本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:图1是根据本发明一种实施方式的税控开票系统的框图;以及图2是根据本发明一种实施方式的利用税控开票系统统计商品数据的方法的流程图。具体实施方式以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。通常,可以根据企业设立的开票点的数量而将企业划分为单开票点企业和多开票点企业,这样,在税控开票系统中,会根据“销项发票表”中的“开票机号”字段的不同,而将各个开票机号所开具的发票数据存放为不同的数据库物理文件。另外,由于企业开票操作习惯的不同,在税控开票系统中存储的发票数据的物理形态、含税方式等也会有所不同,例如,若企业习惯于向税控开票系统中录入含税金额,则税控开票系统中存储的发票金额是含税的,若企业习惯于向税控开票系统中录入不含税金额,则税控开票系统中存储的发票金额是不含税的,这通过含税标识来标志。根据本发明的税控开票系统和方法适用于多开票点企业向税控开票系统中录入不含税金额的情况。本发明提供一种税控开票系统,该税控开票系统包括销项发票表、销项发票明细表和销项清单明细表,如图1所示,该税控开票系统还包括获取模块1、折扣处理模块2和统计模块3,以下对此详细描述。获取模块1用于从所述销项发票表中获取至少包括发票代码、发票号码、清单标识和开票机号的发票主体数据,以及依据所述清单标识相应地从所述销项发票明细表或销项清单明细表中获取包括至少一个商品明细行的发票商品明细数据,每个所述商品明细行至少包括商品名称、数量、单价、金额、税额、税率和含税标识。优选地,所述发票主体数据还可以包括以下至少一者:(1)购方名称和购方税号中的一者或两者;(2)发票类型;(3)发票金额;以及(4)发票税额。优选地,所述发票商品明细数据还可以包括规格型号、计量单位中的至少一者。另外,获取模块1可以利用SQL语句或其他语句来获取发票主体数据。示例性的SQL语句可以为:“SELECT发票类型,发票代码,发票号码,购方名称,购方税号,清单标识,发票金额,发票税额FROM销项发票表WHERE清单标识=‘false’AND开票机号=‘开票机号X’”。这用于获取非清单发票的发票主体数据。表1中示出了一种示例性的此类发票主体数据。表1获取发票主体数据的另一示例性SQL语句格式可以为:“SELECT发票类型,发票代码,发票号码,购方名称,购方税号,清单标识,发票金额,发票税额FROM销项发票表WHERE清单标识=‘true’AND开票机号=‘开票机号X’”。这用于获取清单发票的发票主体数据。表2中示出了一种示例性的此类发票主体数据。表2进一步地,获取模块1可以利用SQL语句或其他语句来获取发票商品明细数据。示例性的SQL语句可以为:“SELECT商品名称,规格型号,计量单位,数量,单价,金额,税额,税率FROM销项发票明细表WHERE发票代码=******and发票号码=******and含税标识=‘false’”。在税控开票系统中,根据“清单标识”的不同,会将不带清单的发票商品明细数据保存在“销项发票明细表”中以及将带清单的发票商品明细数据保存在“销项清单明细表”中。上面的SQL语句就是在发票数据不带清单的情况下从销项发票明细表中获取发票商品明细数据的示例。表3示出了从销项发票明细表中获取的发票商品明细数据的示例。表3获取发票商品明细数据的另一示例性SQL语句格式可以为:“SELECT商品名称,规格型号,计量单位,数量,单价,金额,税额,税率FROM销项清单明细表WHERE发票代码=******and发票号码=******and含税标识=‘false’”。该SQL语句是在发票数据带清单的情况下从销项清单明细表中获取发票商品明细数据的示例。表4示出了从销项清单明细表中获取的发票商品明细数据的示例。序号商品名称规格型号计量单位数量单价金额税额税率含税标识1打印机11000.001000.0017017%false2洗衣机2750.001500.0025517%false3电脑Y2300.00600.0010217%false4笔记本Y1400.00400.006817%false5扎带配件2700.001400.0023817%false6CPU4400.001600.0027217%false7风扇Y13400.005200.0088417%false8打印机500型Y3600.001800.0030617%false9折扣行数2(10%)-700.00-11917%false表4以上给出的SQL语句示例中的字段,例如获取发票主体数据时的发票类型、发票代码、发票号码、购方名称、购方税号、清单标识、发票金额、发票税额等字段以及获取发票商品明细数据时的商品名称、规格型号、计量单位、数量、单价、金额、税额、税率等字段,不是必须全部被选择,实际上,这些字段可以依据需要统计的商品数据进行选择,例如如果需要统计商品数量,则在获取发票商品明细数据时只需要选择商品名称和数量这两个字段即可。在获取模块1获取了发票主体数据和发票商品明细数据之后,折扣处理模块2就可以用于在所获取的发票商品明细数据包括折扣行且所述含税标识为不含税(例如,含税标识为false)的情况下,依据所述折扣行的商品名称来确定折扣商品的行数N,并将该折扣行中的金额和税额分别平摊到该折扣行之前的N行商品明细行的金额和税额中。这里所说的折扣行是独立于真实商品明细行以外的特殊商品明细行。由于在商品数据统计中是针对真实商品进行统计,也即在统计时是针对真实商品明细行进行查询统计,不对折扣行进行统计,所以为了获取真实准确的商品统计数据,需要将折扣行的数据平摊到对应的真实商品明细行上。通常,在税控开票系统中,如果发票商品明细数据中只包含一行折扣行,则折扣行的商品名称字段的格式为“折扣(XX.XXX%)”;如果发票商品明细数据中包含多行折扣行,则折扣行的商品名称字段的格式为“折扣行数N(XX.XXX%)”。折扣处理模块2就是基于此来确定发票商品明细数据中的折扣商品的行数。在折扣处理模块2确定了折扣商品的行数之后,折扣处理模块2就可以进行以下折扣处理:(1)在所获取的发票商品明细数据包括一行折扣行的情况下,所述折扣处理模块2采用以下公式进行平摊:平摊后金额=平摊前金额+折扣行金额平摊后税额=平摊前税额+折扣行税额平摊后单价=平摊后金额/数量表5和表6分别给出了此种情况下折扣处理前和折扣处理后的发票商品明细数据的示例。序号商品名称规格型号计量单位数量单价金额税额税率含税标识1打印机11000.001000.0017017%false2折扣(10%)-100.00-1717%false表5序号商品名称规格型号计量单位数量单价金额税额税率含税标识1打印机1900.00900.0015317%false表6(2)在所获取的发票商品明细数据包括多行折扣行(例如N行,N为大于1的整数)的情况下,所述折扣处理模块2采用以下公式进行平摊:折扣行之前的第1至N-1行商品明细行的折扣平摊计算公式为:平摊后金额=平摊前金额*(1-折扣率)平摊后税额=平摊前税额*(1-折扣率)平摊后单价=平摊后金额/数量折扣行之前的第N行商品明细行的折扣平摊计算公式为:平摊后单价=平摊后金额/数量表7和表8分别给出了此种情况下折扣处理前和折扣处理后的发票商品明细数据的示例。序号商品名称规格型号计量单位数量单价金额税额税率含税标识1打印机11000.001000.0017017%false2电脑11000.001000.0017017%false3笔记本11000.001000.0017017%false4折扣行数3(10%)-300.00-5117%false表7序号商品名称规格型号计量单位数量单价金额税额税率含税标识1打印机1900.00900.0015317%false2电脑1900.00900.0015317%false3笔记本1900.00900.0015317%false表8在折扣处理模块2进行折扣处理之后,统计模块3就可以依据折扣处理后的发票商品明细数据来统计商品数据。常见的发票商品数据统计有商品金额、税额、价税合计、商品数量等。例如,统计模块3可以采用SQL语句或其他语句来按商品名称统计销售金额,示例性的SQL语句为:“SELECT商品名称AS商品名称,1.0*SUM(金额)AS合计金额,1.0*SUM(税额)AS合计税额,1.0*SUM(金额+税额)AS价税合计FROM销项发票明细表,销项清单明细表WHERE开票日期BETWEEN'YYYY-MM-DD'AND'YYYY-MM-DD'AND发票号码BETWEEN'00000000'AND'99999999'AND开票机号=“开票机号X”GROUPBY商品名称”。这样就能够统计销项发票明细表和销项清单明细表中涉及到的某个商品的销售金额、税额等信息。需要明确指出的是,统计模块3统计商品数据时使用的销项发票明细表和销项清单明细表中的数据是经折扣处理模块2折扣处理后的数据。表9给出了示例性的商品销售金额、税额和价税合计统计结果。序号商品名称合计金额合计税额价税合计1商品1854.70145.301000.002商品21282.05217.951500.003商品31196.58203.421400.00表9本发明还提供一种利用税控开票系统统计商品数据的方法,该税控开票系统包括销项发票表、销项发票明细表和销项清单明细表。如图2所示,该方法可以包括以下步骤:步骤S1、从销项发票表中获取至少包括发票代码、发票号码、清单标识和开票机号的发票主体数据。优选地,所述发票主体数据还可以包括以下至少一者:(1)购方名称和购方税号中的一者或两者;(2)发票类型;(3)发票金额;以及(4)发票税额。例如,根据本发明的统计商品数据的方法可以利用SQL语句或其他语句来获取发票主体数据。示例性的SQL语句可以为:“SELECT发票类型,发票代码,发票号码,购方名称,购方税号,清单标识,发票金额,发票税额FROM销项发票表WHERE清单标识=‘false’AND开票机号=‘开票机号X’”。这用于获取非清单发票的发票主体数据。示例性的此类发票主体数据请参见上面的表1。获取发票主体数据的另一示例性SQL语句格式可以为:“SELECT发票类型,发票代码,发票号码,购方名称,购方税号,清单标识,发票金额,发票税额FROM销项发票表WHERE清单标识=‘true’AND开票机号=‘开票机号X’”。这用于获取清单发票的发票主体数据。示例性的此类发票主体数据请参见上面的表2。步骤S2、依据所述清单标识相应地从所述销项发票明细表或销项清单明细表中获取包括至少一个商品明细行的发票商品明细数据,每个所述商品明细行至少包括商品名称、数量、单价、金额、税额、税率和含税标识。优选地,所述发票商品明细数据还可以包括规格型号、计量单位中的至少一者。根据本发明的统计商品数据的方法可以利用SQL语句或其他语句来获取发票商品明细数据。示例性的SQL语句可以为:“SELECT商品名称,规格型号,计量单位,数量,单价,金额,税额,税率FROM销项发票明细表WHERE发票代码=******and发票号码=******and含税标识=‘false’”。在税控开票系统中,根据“清单标识”的不同,会将不带清单的发票商品明细数据保存在“销项发票明细表”中以及将带清单的发票商品明细数据保存在“销项清单明细表”中。上面的SQL语句就是在发票数据不带清单的情况下从销项发票明细表中获取发票商品明细数据的示例。从销项发票明细表中获取的发票商品明细数据的示例请参见上面的表3。获取发票商品明细数据的另一示例性SQL语句格式可以为:“SELECT商品名称,规格型号,计量单位,数量,单价,金额,税额,税率FROM销项清单明细表WHERE发票代码=******and发票号码=******and含税标识=‘false’”。该SQL语句是在发票数据带清单的情况下从销项清单明细表中获取发票商品明细数据的示例。从销项清单明细表中获取的发票商品明细数据的示例请参见上面的表4。另外,在上面的步骤S1和S2中给出的SQL语句示例中的字段,例如获取发票主体数据时的发票类型、发票代码、发票号码、购方名称、购方税号、清单标识、发票金额、发票税额等字段以及获取发票商品明细数据时的商品名称、规格型号、计量单位、数量、单价、金额、税额、税率等字段,不是必须全部被选择,实际上,这些字段可以依据需要统计的商品数据进行选择,例如如果需要统计商品数量,则在获取发票商品明细数据时只需要选择商品名称和数量这两个字段即可。步骤S3、在所获取的发票商品明细数据包括折扣行且所述含税标识为不含税(例如,含税标识为false)的情况下,依据所述折扣行的商品名称来确定折扣商品的行数N,并将该折扣行中的金额和税额分别平摊到该折扣行之前的N行商品明细行的金额和税额中。这里所说的折扣行是独立于真实商品明细行以外的特殊商品明细行。由于在商品数据统计中是针对真实商品进行统计,也即在统计时是针对真实商品明细行进行查询统计,不对折扣行进行统计,所以为了获取真实准确的商品统计数据,需要将折扣行的数据平摊到对应的真实商品明细行上。通常,在税控开票系统中,如果发票商品明细数据中只包含一行折扣行,则折扣行的商品名称字段的格式为“折扣(XX.XXX%)”;如果发票商品明细数据中包含多行折扣行,则折扣行的商品名称字段的格式为“折扣行数N(XX.XXX%)”。在步骤S3中就是基于此来确定发票商品明细数据中的折扣商品的行数。在确定了折扣商品的行数之后,根据本发明的方法可以进行以下折扣处理:(1)在所获取的发票商品明细数据包括一行折扣行的情况下,采用以下公式进行平摊:平摊后金额=平摊前金额+折扣行金额平摊后税额=平摊前税额+折扣行税额平摊后单价=平摊后金额/数量此种情况下折扣处理前和折扣处理后的发票商品明细数据的示例请参见上面的表5和表6。(2)在所获取的发票商品明细数据包括多行折扣行(例如N行,N为大于1的整数)的情况下,采用以下公式进行平摊:折扣行之前的第1至N-1行商品明细行的折扣平摊计算公式为:平摊后金额=平摊前金额*(1-折扣率)平摊后税额=平摊前税额*(1-折扣率)平摊后单价=平摊后金额/数量折扣行之前的第N行商品明细行的折扣平摊计算公式为:平摊后单价=平摊后金额/数量此种情况下折扣处理前和折扣处理后的发票商品明细数据的示例请分别参见上面的表7和表8。步骤S4、依据折扣处理后的发票商品明细数据来统计商品数据。常见的发票商品数据统计有商品金额、税额、价税合计、商品数量等。例如,可以采用SQL语句或其他语句来按商品名称统计销售金额,示例性的SQL语句为:“SELECT商品名称AS商品名称,1.0*SUM(金额)AS合计金额,1.0*SUM(税额)AS合计税额,1.0*SUM(金额+税额)AS价税合计FROM销项发票明细表,销项清单明细表WHERE开票日期BETWEEN'YYYY-MM-DD'AND'YYYY-MM-DD'AND发票号码BETWEEN'00000000'AND'99999999'AND开票机号=“开票机号X”GROUPBY商品名称”。这样就能够统计销项发票明细表和销项清单明细表中涉及到的某个商品的销售金额、税额等信息。需要明确指出的是,统计商品数据时使用的销项发票明细表和销项清单明细表中的数据是经折扣处理后的数据。示例性的商品销售金额、税额和价税合计统计结果请参见上面的表9。以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1