一种销项发票账表统计的方法与流程

文档序号:12826070阅读:719来源:国知局
一种销项发票账表统计的方法与流程

本发明涉及发票统计技术领域,尤其涉及一种销项发票账表统计的方法。



背景技术:

销项发票主要包括:增值税专用发票、增值税普通发票和货运发票三种。在实际应用中,需要按照不同的查询条件对本企业开出的销项发票进行统计和整合,便于用户来分析本企业的经营和销售状况。在增值税助手项目中,需要将本地存储的销项发票按照不同的字段进行统计来分析本企业当前的经营情况。

目前,还没有一种按照不同的查询条件对销项发票进行有效地分类统计和汇总的方法。



技术实现要素:

本发明的实施例提供了一种销项发票账表统计的方法,以实现对企业的销项发票账表进行有效的个性化统计。

为了实现上述目的,本发明采取了如下技术方案。

一种销项发票账表统计的方法,其特征在于,包括:

根据实际需要设定销项发票账表的各种查询统计条件,编写每种查询统计条件分别对应的sql语句;

根据查询统计条件对应的sql语句在销项发票账表的sqlite数据库中进行查询,获取所述查询统计条件对应的销项发票账表的统计结果。

进一步的,所述的各种查询统计条件包括:按照客户、商品、地区和/或时间条件进行销项发票账表的查询统计。

进一步的,所述的销项发票账表统计的信息包括无税金额、税额、价税合计及发票张数,公共的查询条件包括:红/蓝发票、作废标志、发票类型、货物及应税服务、劳务名称、费用明细,其中,费用明细行类型ilinetype字段,如果ilinetype=4,则该费用明细行为折扣行;如果ilinetype=5,则该费用明细行为红字发票清单行。

进一步的,所述销项发票包括增值税专用/普通发票和货物运输业增值税专用发票,所以当按照实际售票人或费用项目进行统计时,统计结果仅为货运发票;按照购方名称和货物及应税劳务、服务名称查询时,显示结果仅为增值税专用/普通发票,查询过滤条件sql如下:

(($equal(invline.cmatname,ref2)andinv.cinvtypein('0','2'))or($equal(invline.cmatname,ref4)andinv.cinvtype='11'))

and(($equal(inv.ccusname,ref1)andinv.cinvtypein('0','2'))or($equal(inv.ccusname,ref3)andinv.cinvtype='11'))

其中$equal()为销项发票账表的sqlite数据库中比较相等的函数,ccusname表示客户名称和实际受票人,cmatname表示商品名称和费用项目,cinvtype表示发票类型,ref+数字组合表示条件界面中相应的控件。

进一步的,当按照客户进行销项发票账表的查询统计时,编写按照销项发票的购买方名称对应的sql语句,根据所述购买方名称进行对应的sql语句在销项发票账表的sqlite数据库中进行查询,对购买方名称相同的销项发票的无税金额、税额、价税合计及发票张数信息进行汇总。

进一步的,当按照商品进行销项发票账表的查询统计时,编写按照销项发票的明细行中的商品对应的sql语句,根据所述销项发票的明细行中的商品对应的sql语句在销项发票账表的sqlite数据库中进行查询,对含有同一种商品名称的销项发票的无税金额、税额、价税合计、发票张数信息进行汇总。

进一步的,当按照地区进行销项发票账表的查询统计时,编写按照销项发票的明细行中的购买方纳税人识别号对应的sql语句,根据所述销项发票的明细行中的购买方纳税人识别号对应的sql语句在销项发票账表的sqlite数据库中进行查询,对含有同一种省或者地区的销项发票的无税金额、税额、价税合计、发票张数信息进行汇总。

进一步的,所述的按照销项发票的明细行中的购买方纳税人识别号对应的sql语句,包括:

selectinv.cguidfa,ba.cnamecareaname,

substr(inv.ccustaxno,1,{cb})ascareaid,

substr(inv.ccustaxno,1,4)ascareano,……

fromv_alloutputinvoiceinvleftjoinv_alloutputinvoice_detailinvlineon

inv.cguid=invline.cheadguidleftjoinbd_areabaonba.ccode=careaid||'00'orba.ccode=careaid

where……and$equal(careano,ref2)……

其中v_alloutputinvoice表示发票主表视图,v_alloutputinvoice_detail表示发票子表视图,bd_area表示地区信息表,购方客户的纳税人识别号的前四位表示纳税人所在的地区,如果按省进行统计,则只取购方纳税人识别号的前两位进行比较并统计;如果按市进行统计,则只取纳税人识别号的前四位进行比较并统计。

进一步的,当按照时间进行销项发票账表的查询统计时,编写按照销项发票的明细行中的发票开具日期对应的sql语句,根据所述销项发票的明细行中的发票开具日期对应的sql语句在销项发票账表的sqlite数据库中进行查询,对用户选择的按星期、按月、按季度或者按年统计的销项发票的无税金额、税额、价税合计、发票张数信息进行汇总。

进一步的,所述按照销项发票的明细行中的发票开具日期对应的sql语句包括:

strftime('%y',inv.dbilldate)iyear,/*年度*/

取开票日期的月度的sql语句如下:

strftime('%m',inv.dbilldate)imonth,

按照季度统计时,比较月度与3、6、9、12的大小;

按周统计的sql语句如下,查询出开票日期所在周的第一天:

casestrftime('%w',inv.dbilldate)when'0'thendate(inv.dbilldate,'startofday','-6days')

elsedate(inv.dbilldate,'startofday','-'||(strftime('%w',inv.dbilldate)-1)||'days')endweekfirstday,/*本周第一天*/

由上述本发明的实施例提供的技术方案可以看出,本发明实施例根据发票不同的属性来对发票信息进行统计,方便用户对自己的发票信息进行统一的管理、查询和分析,省去了用户统计数据计算的麻烦,提高了软件的易用性。

销项发票按照客户、商品、地区和时间等条件进行统计,给用户的操作提供了多样性,可以适应用户的不同需要显示出不同的统计结果,方便用户对本企业开具的销项发票进行更好的查询、统计和分析。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种按客户统计条件进行销项发票账表统计的界面示意图;

图2为本发明实施例提供的一种按商品统计条件进行销项发票账表统计的界面示意图;

图3为本发明实施例提供的一种按地区统计条件进行销项发票账表统计的界面示意图;

图4为本发明实施例提供的一种按时间统计条件进行销项发票账表统计的界面示意图。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。

本发明实施例应用在基于java语言、aos开发平台开发的增值税助手的项目中,由于增值税助手为单机版运行,所以使用sqlite轻量级数据库。

本发明实施例通过根据不同的查询条件编写不同的sql语句,由于在增值税助手项目中使用的sqlite数据库,所以sql的书写需要按照sqlite中的特定规则来写,尤其是涉及到对时间的操作的函数,需要使用sqlite特定的sql函数。

本发明实施例的方案实现根据客户(即发票的购买方)、商品、时间、地区来统计发票的无税金额、税额、价税合计、发票张数等信息,给用户的操作提供了多样性,可以适应用户的不同需要显示出不同的统计结果,方便用户对本企业开具的销项发票进行更好的查询、统计和分析。

本发明实施例的技术方案的实现主要分为以下四个方面:按客户统计、按商品统计、按地区统计和按时间统计。统计的实现主要是通过编写sql语句来实现。统计的信息有无税金额、税额、价税合计及发票张数,公共的查询条件为:红/蓝发票、作废标志、发票类型、货物及应税服务、劳务名称、费用明细。其中,费用明细行类型ilinetype字段,如果ilinetype=4,则该明细行为折扣行;如果ilinetype=5,则该明细行为红字发票清单行,如果明细行为这两种情况时,则不对其进行统计,过滤条件代码如下:

invline.ilinetypeisnullorinvline.ilinetypenotin('4','5')

由于在增值税助手中采集的销项发票有增值税专用/普通发票和货物运输业增值税专用发票(以下简称货运发票),所以当按照实际售票人或费用项目进行统计时,统计结果仅为货运发票;按照购方名称和货物及应税劳务、服务名称查询时,显示结果仅为增值税专用/普通发票。查询过滤条件sql如下:

(($equal(invline.cmatname,ref2)andinv.cinvtypein('0','2'))or($equal(invline.cmatname,ref4)andinv.cinvtype='11'))

and(($equal(inv.ccusname,ref1)andinv.cinvtypein('0','2'))or($equal(inv.ccusname,ref3)andinv.cinvtype='11'))

其中$equal()为aos平台中销项发票账表的sqlite数据库中特有的比较相等的函数,ccusname表示客户名称和实际受票人,cmatname表示商品名称和费用项目,cinvtype表示发票类型(0为增值税专用发票,2为增值税普通发票,11为货运发票),ref+数字组合表示条件界面中相应的控件。下文中如果遇到相同字段,表示意义相同,不再做多余的描述。

1)按客户统计:图1为本发明实施例提供的一种按客户统计条件进行销项发票账表统计的界面示意图。由于在增值税助手项目中,客户的名称具有唯一性,所以在按客户统计时,只需通过销项发票的购买方名称进行统计,对购买方名称相同的发票的无税金额、税额、价税合计及发票张数等信息进行汇总。

2)按商品统计:图2为本发明实施例提供的一种按商品统计条件进行销项发票账表统计的界面示意图。根据每一张销项发票的明细行中的商品进行统计,对含有同一种商品名称的发票的无税金额、税额、价税合计、发票张数等信息进行汇总。

3)按地区统计:图3为本发明实施例提供的一种按地区统计条件进行销项发票账表统计的界面示意图。每张发票的购买方纳税人识别号是根据不同的地区生成,其中前两位代表开具发票所在省,前四位代表开具发票的所在地区,根据选择按照省统计还是按照地区统计,生成不同的统计结果。统计实现的关键sql如下:

selectinv.cguidfa,ba.cnamecareaname,

substr(inv.ccustaxno,1,{cb})ascareaid,

substr(inv.ccustaxno,1,4)ascareano,……

fromv_alloutputinvoiceinvleftjoinv_alloutputinvoice_detailinvlineon

inv.cguid=invline.cheadguidleftjoinbd_areabaonba.ccode=careaid||'00'orba.ccode=careaid

where……and$equal(careano,ref2)……

其中v_alloutputinvoice表示发票主表视图,v_alloutputinvoice_detail表示发票子表视图,bd_area表示地区信息表。其中,购方客户的纳税人识别号的前四位表示纳税人所在的地区。如果按省进行统计,则只取购方纳税人识别号的前两位进行比较并统计;如果按市进行统计,则只取纳税人识别号的前四位进行比较并统计。

4)按时间统计:图4为本发明实施例提供的一种按时间统计条件进行销项发票账表统计的界面示意图。根据每张发票开具的日期及用户选择的按星期、按月、按季度或者按年统计,显示出不同的统计信息。由于增值税助手所采用的数据库为sqlite数据库,则对于时间操作的函数采用strftime()函数。取开票日期的年度sql语句如下:

strftime('%y',inv.dbilldate)iyear,/*年度*/

取开票日期的月度的sql语句如下:

strftime('%m',inv.dbilldate)imonth,

按照季度统计时,可比较月度与3、6、9、12的大小。

按周统计的sql语句如下,查询出开票日期所在周的第一天:

casestrftime('%w',inv.dbilldate)when'0'thendate(inv.dbilldate,'startofday','-6days')

elsedate(inv.dbilldate,'startofday','-'||(strftime('%w',inv.dbilldate)-1)||'days')endweekfirstday,/*本周第一天*/。

综上所述,本发明实施例根据发票不同的属性来对发票信息进行统计,方便用户对自己的发票信息进行统一的管理、查询和分析,省去了用户统计数据计算的麻烦,提高了软件的易用性。

销项发票按照客户、商品、地区和时间等条件进行统计,给用户的操作提供了多样性,可以适应用户的不同需要显示出不同的统计结果,方便用户对本企业开具的销项发票进行更好的查询、统计和分析。

本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,后台服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1