首页 / 合并单据并开具发票的方法、装置、电子设备及介质

合并单据并开具发票的方法、装置、电子设备及介质实质审查 发明

技术领域

[0001] 本发明涉及发票技术领域,更具体地,涉及一种合并单据并开具发票的方法、装置、电子设备及介质。

相关背景技术

[0002] 目前,很多企业开具发票时,手工一张一张开具,此方式效率很低。通常,企业开具发票都是通过数据报文调用发票开具接口开具发票,或者企业将自身业务系统中的开票数据组织成符合格式要求的单据文件(比如txt、xml、excel等格式),然后导入到第三方提供的单据管理软件,由单据管理软件完成单据生成发票。在单据生成发票的过程中,并不是所有的单据都一定符合发票开具的要求,简单的单据管理软件就直接提示用户错误,让用户自行修改。更优的解决办法是,对于可以自动化解决的错误,可以自动处理,不能自动化解决的问题再提示给用户,由用户做修改,这样可以减轻用户的工作量。
[0003] 用户导入到单据管理软件的单据,可能存在很多个相同购方名称、购方税号的单据,金额都很小,如果每张单据都对应开具一张纸质发票,可能会消耗大量的纸质发票,因此,期待对单据管理软件进行优化,完善其功能。

具体实施方式

[0038] 下面将更详细地描述本发明。虽然本发明提供了优选的实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
[0039] 实施例1
[0040] 本发明一实施例提供了一种合并单据并开具发票的方法,图1示出了本实施例的一种合并单据并开具发票的方法的流程图,图2示出了单据管理软件功能图。
[0041] 请参照图1,该方法包括:
[0042] 步骤1:从金税盘获取单张发票填开的限制参数,所述限制参数包括:单张开票限额、误差标准、商品行限制行数、税率混开限制;
[0043] 步骤2:按照用户给定的条件,读取原始单据数据,所述原始单据数据包括多个购方税号以及与所述购方税号对应的商品行记录表,每条商品行记录有商品名称、数量、单价、金额、税率、税额;
[0044] 步骤3:根据购方税号对所述原始单据进行分类;将相同购方税号的单据的商品行合并到一个列表中;
[0045] 步骤4:对所述列表中的所有商品行逐行进行累加计算,将所述列表中的所有商品行合并为至少一个单张发票单据,其中每个所述单张发票单据均满足各限制参数的要求;
[0046] 步骤5:根据每个所述单张发票单据生成发票。
[0047] 参考图2,单据管理软件包括单据导入模块,单据处理模块(包括单据编辑、单据拆分、单据合并、单据还原)、生成发票模块、发票处理模块(发票查询、发票打印、发票传出)、作废模块(单据作废导入模块和作废发票模块)。将金税设备与增值税税控发票开票软件连接,将开票软件与单据管理软件连接,可执行合并单据并开具发票的步骤,具体步骤如下:
[0048] 首先,执行步骤1,获取发票填开限制参数,在本实例中:
[0049] 1、从金税盘获取对应发票种类的单张开票限额(限额按不含税金额检查),例如从金税盘获取的专用发票单张发票不含税金额的限制为不超过10000.00元。
[0050] 2、获取税局下发的误差标准:(1)金额与税率计算的税额,与传入的税额误差不能超过0.06;(2)整张发票,所有商品行的税额累计误差,不超过1.27。
[0051] 3、根据发票种类,发票的特殊类型,获取商品行限制行数。(如清单发票商品行数不能超过2000行,成品油发票商品行数不能超过8行,机动车类专用发票不能超过8行)。
[0052] 4、获取不能与其他税率混开的税率列表;(如减按1.5%税率、1.5%征收率、中外合作油气田5%税率,填开发票时不能和其他税率存在于同一张发票的商品明细中)。
[0053] 本实施例中在,步骤2之前还包括:选择发票种类(如增值税专用发票或增值税普通发票),以筛选出对应所述发票种类的原始单据。
[0054] 所述步骤2中,用户根据可供选的时间段,对所述原始单据进行筛选。用户选择发票种类,用于过滤对应发票种类的单据,如果单据数据量较大,用户也可以给定查询单据的时间段。按照用户给定的条件,从数据库中读取原始单据数据。原始单据数据包括2部分:单据数据和单据对应的商品行记录表。单据数据记录表类似于表1:
[0055] 表1
[0056] 单据编号 购方名称 购方税号 其他项djA 购方A 1000A  
djB 购方A 1000A  
djC 购方B 1000B  
djD 购方B 1000B  
djE 购方B 1000B  
[0057] 商品行记录表类似于表2
[0058] 表2
[0059]
[0060] 步骤3:根据购方税号对所述原始单据进行分类;将相同购方税号的单据的商品行合并到一个列表中。
[0061] 具体地,将检索到的原始单据,按照购方税号进行分类。例如表3至表6展示了按照税号分类的结果,其中表3和表5为两个购方(购方A、购方B)的单据数据表,表4和表6为与购方A、购方B单据数据对应的商品行记录表。
[0062] 表3
[0063] 单据编号 购方名称 购方税号 其他项djA 购方A 1000A  
djB 购方A 1000A  
[0064] 表4
[0065]
[0066]
[0067] 表5
[0068] 单据编号 购方名称 购方税号 其他项djC 购方B 1000B  
djE 购方B 1000B  
djD 购方B 1000B  
[0069] 表6
[0070]
[0071] 对已经按照购方税号分类的单据,取第一个单据的购方税号等信息作为合并后单据的购方信息(因为相同购方税号的购方单位肯定是同一个)。为了方面合并单据时扫描商品,将相同购方税号单据的商品行,合并到内存的一个列表中,便于循环遍历。
[0072] 步骤4,对所述列表中的所有商品行逐行进行累加计算,将所述列表中的所有商品行合并为至少一个单张发票单据,其中每个所述单张发票单据均满足各限制参数的要求。
[0073] 在一个实例中,对所述列表中的所有商品行逐行进行累加计算,每累加一行商品行做如下计算:
[0074] 步骤S41:获取本行商品的不含税金额,并累加不含税金额;
[0075] 步骤S42:计算本行商品的税额误差,并累加税额误差;
[0076] 步骤S43:单税率商品行进行独立计数,并累加计数;
[0077] 判断上述累加后的数据是否均满足所述限制参数的要求,若不符合,将最后一次累加的商品行剔除,并将第1行到当前行取出,作为一个单张发票单据的商品行,将已完成合并的商品行从列表中剔除,并初始化相关的累计变量的值,再扫描剩余未合并的商品行,重复执行步骤S41至步骤S43。
[0078] 在一个实例中,使所述单张发票单据均满足各限制参数的要求包括:对所述列表中的所有商品行逐行进行累加计算,并判断当前累加的不含税金额是否超过单张开票限额;判断累加税额误差是否超出所述误差标准;判断以累加的商品行位置是否达到商品行数的限制值;判断单税率商品行计数是否满足税率混开限制,以使所述单张发票单据均满足各限制参数的要求。
[0079] 具体地,遍历当前购方税号的所有商品行,每遍历一行商品做如下计算:(1)累加本行商品不含税金额;(2)计算本行商品的税额误差,并累加税额误差;(3)单税率商品行的独立计数,并累加计数,用于合并单据时,这些税率不能混开(如减按1.5%税率、1.5%征收率、中外合作油气田税率,这3种税率是不同共存于一张发票的)。遍历商品行时,若当前商品行包含折扣行,则本次遍历需要同时将折扣行金额、税额做累加。
[0080] 进一步的,对上述累加后的数据做如下检查,根据检查结果确定是否做单据合并:
[0081] 按照开票限制检查单张开票限额,若当前累加的不含税金额超过单张开票限额,则将最后一次累加的商品行(或商品行带折扣行)剔除,并将第1行到当前行取出,作为一个合并后单张发票单据的商品行。取第1行商品的单据号并拼接后缀作为合并后单据的编号,例如:“djA_n”,其中n为自然数。将已完成合并的商品行从遍历商品行列表中剔除,并初始化相关的累计变量的值,再扫描剩余未合并的商品行执行检查与商品行合并操作。
[0082] 检查误差标准规定的条件,检查累计税额误差变量是否超出1.27,若超出1.27误差范围,则将最后一次累加的商品行(或商品行带折扣行)剔除,并将第1行到当前行取出,作为一个合并后单张发票单据的商品行。取第1行商品的单据号并拼接后缀作为合并后单据的编号,例如:“djA_n”,其中n为自然数。将已完成合并的商品行从遍历商品行列表中剔除,并初始化相关的累计变量的值,再扫描剩余未合并的商品行执行检查与商品行合并操作。
[0083] 检查商品行限制行数规定的条件,若当前遍历到的商品行位置达到商品行数的限制值时,则将第1行到当前行拆出,作为一个合并后新单据的商品行。取第1行商品的单据号拼接“_n”作为合并后的新单据,例如:单据号_n,其中n为自然数。将已合并的商品行从遍历商品行列表中剔除,再次从第1行开始循环。
[0084] 检查税率混开限制规定的条件,检查单税率商品行计数,违反税率不能共存要求时,则将最后一次累加的商品行(或商品行带折扣行)剔除,并将第1行到当前行拆出,作为一个合并后单张发票单据的商品行。取第1行商品的单据号拼接“_n”作为合并后的新单据,例如:单据号_n,其中n为自然数。将已合并的商品行从遍历商品行列表中剔除,再次从第1行开始循环。
[0085] 循环结束。
[0086] 在一个实例中,在执行所述步骤4时,记录被合并的原始单据和合并后所述单张发票单据的对应关系,进而可以关联到所述原始单据对应生成发票的关系。单据合并记录表格式类似表7:
[0087] 表7
[0088]合并单据编号 原始单据编号
djA_1 djA
djA_1 djB
[0089] 在一个实例中,在执行所述步骤4时,将完成合并的所述原始单据进行保存,用于用户取消单据合并时还原所述原始单据。将完成合并单据的原有数据保存到单据合并还原表,用于用户取消单据合并时还原单据。单据合并还原表的格式类似表8和表9,其中表8为单据数据表,表9为与单据数据表对应的商品行记录表:
[0090] 表8
[0091]单据编号 购方名称 购方税号 其他项
djA 购方A 1000A  
djB 购方A 1000A  
[0092] 表9
[0093]
[0094] 步骤4执行完后,得到至少一个单张发票单据,单张发票单据包括两部分(单据数据表和与单据数据表对应的商品行记录表),的格式如表10和表11,其中表10为单据数据表,表9为与单据数据表对应的商品行记录表。
[0095] 表10
[0096]单据编号 购方名称 购方税号 其他项
djA_1 购方A 1000A  
[0097] 表11
[0098]
[0099] 最后执行步骤5,按照单张发票单据生成对应发票种类的发票。发票可以有很多种,如:专用发票、普通发票、电子专用发票、电子普通发票等。
[0100] 本实施例在单据管理软件中,提供了单据合并的功能,可以将多个单据合并为一个单张发票单据。单据合并是一个用户可选功能,由用户决定是否执行单据合并操作。用户导入原始单据后,如果决定执行单据合并,那么单据管理软件会按照给定的发票种类,以及给定的时间段扫描导入的未开发票的单据,按照购方税号进行分类,再对相同购方税号的单据,逐行扫描商品行,执行检查并做商品行合并操作,并将合并的结果返回给用户预览,用户确认后,完成最终的单据合并。本发明可以有效解决用户在使用单据生成发票时,小金额单据过多,且纸质发票量并不充足的情况下,纸质发票消耗大的问题。
[0101] 实施例2
[0102] 本公开实施例还提供了一种电子设备,该电子设备包括:
[0103] 至少一个处理器;以及,
[0104] 与至少一个处理器通信连接的存储器;其中,
[0105] 存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的合并单据并开具发票的方法。
[0106] 根据本公开实施例的电子设备包括存储器和处理器。
[0107] 该存储器用于存储非暂时性计算机可读指令。具体地,存储器可以包括一个或多个计算机程序产品,该计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。该易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。该非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
[0108] 该处理器可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制电子设备中的其它组件以执行期望的功能。在本公开的一个实施例中,该处理器用于运行该存储器中存储的该计算机可读指令。
[0109] 本领域技术人员应能理解,为了解决如何获得良好用户体验效果的技术问题,本实施例中也可以包括诸如通信总线、接口等公知的结构,这些公知的结构也应包含在本公开的保护范围之内。
[0110] 本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行上述的合并单据并开具发票的方法。
[0111] 实施例3
[0112] 本公开实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行上述的合并单据并开具发票的方法。
[0113] 根据本公开实施例的计算机可读存储介质,其上存储有非暂时性计算机可读指令。当该非暂时性计算机可读指令由处理器运行时,执行前述的本公开各实施例方法的全部或部分步骤。
[0114] 上述计算机可读存储介质包括但不限于:光存储介质(例如:CD-ROM和DVD)、磁光存储介质(例如:MO)、磁存储介质(例如:磁带或移动硬盘)、具有内置的可重写非易失性存储器的媒体(例如:存储卡)和具有内置ROM的媒体(例如:ROM盒)。
[0115] 实施例4
[0116] 本发明一实施例公开了一种合并单据并开具发票的装置,包括:
[0117] 获取模块,所述获取模块用于从金税盘获取单张发票填开的限制参数,所述限制参数包括:单张开票限额、误差标准、商品行限制行数、税率混开限制;
[0118] 读取模块,所述读取模块用于按照用户给定的条件,读取原始单据数据,所述原始单据数据包括多个购方税号以及与所述购方税号对应的商品行记录表,每条商品行记录有商品名称、数量、单价、金额、税率、税额;
[0119] 分类模块,所述分类模块用于根据购方税号对所述原始单据进行分类;将相同购方税号的单据的商品行合并到一个列表中;
[0120] 合并模块,所述合并模块用于对所述列表中的所有商品行逐行进行累加计算,将所述列表中的所有商品行合并为至少一个单张发票单据,其中每个所述单张发票单据均满足各限制参数的要求;
[0121] 发票生成模块,所述发票生成模块用于根据每个所述单张发票单据生成发票。
[0122] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。

当前第1页 第1页 第2页 第3页
相关技术
发票方法相关技术
合并单据相关技术
郭尚坤发明人的其他相关专利技术