本发明涉及发票开具,更具体地,涉及一种用于销项系统退货自动开具红票的方法及系统。
背景技术:
1、在销项系统开具蓝字发票时,有些情形必须对销售订单进行拆分,比如:1)大额单张订单超出发票的开票限额,或者企业一定时间之内累计的开票金额即将超出限额,需要按额度将订单拆分后再开票。2)一张销售订单中同时包含不同开票属性的商品,比如用户在加油站加油,并在油站的便利店购买了其它商品。开票时,成品油发票和非油发票需要分别开具。此时也涉及原始销售订单的拆分。
2、当发生销售退货时,退货负数订单总是对应了原销售订单的。严格来讲,负数订单开具的红票,应该与原销售订单开具的蓝票对应。当原始销售订单因拆分开具了多张蓝票后,发生全额退货,负数订单开具红票,必然需要对应多张蓝票,开具多张红票。发生部分退货,负数订单开具红票,有可能需要对应多张蓝票,开具多张红票,也有可能只需对应一张蓝票,开具一张红票。
3、现有技术,申请号cn202110360375.9,提供一种红冲发票的生成方法,包括:获取待开账单数据并基于开票数据要求对待开账单数据进行数据清洗;对符合开票数据要求的待开账单数据中的负数账单红票数据进行汇总并对汇总后的红票数据匹配蓝票;将匹配成功后的红票数据发送至百望云申请开具红字表单;接收百望云返回的红字表单的红字信息编码,并基于红字信息编码进行红票开具;对开具好的红票进行销项,将销项后的红票推送至对应的关联账单。现有技术提供的一种红冲发票的生成方法,是针对待开账单数据中的负数账单进行红票数据汇总,并匹配汇总后对应的蓝票,也即一张负数账单或多张负数账单只能对应一张蓝票开具一张红票。现有技术无法解决,销售正数订单由于某种原因,已经被拆分,并开具了多张蓝票。退货交易对应的一张负数订单需要匹配原销售交易对应的多张蓝票,开具多张红票。
4、因此,需要一种技术,销项系统退货自动开具红票。
技术实现思路
1、本发明技术方案提供一种用于销项系统退货自动开具红票的方法及系统,以解决销项系统退货红票自动开具的问题。
2、为了解决上述问题,本发明提供了一种用于销项系统退货自动开具红票的方法,所述方法包括:
3、获取退货负数订单,以及所述退货负数订单的红票开具请求;所述退货负数订单包括退货订单号、负数金额,以及与退货订单号相对应的原始订单号;
4、基于所述原始订单号匹配与所述退货负数订单相对应的原始销售订单,当与所述退货负数订单相对应的原始销售订单匹配成功后,确定所述原始销售订单的蓝票;
5、对确定的所述蓝票的开票状态、可红冲金额进行校验;当所述蓝票的开票状态、可红冲金额通过校验后,基于蓝票的可红冲金额,对所述退货负数订单的负数金额进行拆分,基于拆分结果确定红票的开具张数以及每张红票的开票负数金额;
6、基于确定的红票开具张数以及每张红票的开票负数金额进行红票开具。
7、优选地,所述基于所述原始订单号匹配与所述退货负数订单相对应的原始销售订单,包括:
8、比对所述退货负数订单与所述原始销售订单的发票属性是否一致,所述发票属性包括:发票类型、销方税号、销方名称、含税税率标识、特殊票种标识。
9、优选地,对确定的所述蓝票的开票状态、可红冲金额进行校验,包括:
10、校验所述蓝票的开票状态是否为开票成功,当开票状态为开票成功时,则开票状态通过校验;
11、校验所述蓝票的可红冲金额是否大于所述负数金额,当可红冲金额大于所述负数金额时,所述可红冲金额通过校验。
12、优选地,所述基于所述可红冲金额,对所述退货负数订单的负数金额进行拆分,基于拆分结果确定红票的开具张数以及每张红票的开票负数金额,包括:
13、对所述可红冲金额对应的蓝票,按照剩余可红冲的金额从大到小进行排序,建立蓝票列表;
14、依次选取蓝票列表中的蓝票,直到选取的蓝票中的可红冲金额大于所述负数金额;
15、基于选取的蓝票中的可红冲金额,拆分所述负数金额,基于拆分结果,确定红票的开具张数以每张红票的开票负数金额。
16、优选地,所述基于确定的红票开具张数以及每张红票的开票负数金额进行红票开具,还包括:
17、当红票的类型为普通发票时,将拆分后一张或多张红票进行提交,开具一张或多张红票。
18、优选地,所述基于确定的红票开具张数以及每张红票的开票负数金额进行红票开具,还包括:
19、当红票的类型为专用发票时并且只开具一张红票时,按确定的所述原始销售订单的蓝票自动生成红票的发票信息表,基于所述发票信息表开具一张红票。
20、优选地,所述基于确定的红票开具张数以及每张红票的开票负数金额进行红票开具,还包括:
21、当红票的类型为专用发票时并且开具多张红票时,确定拆分的每张红票对应蓝票,基于对应的蓝票自动生成每张红票的发票信息表,基于多张发票信息表开具多张红票。
22、基于本发明的另一方面,本发明提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于执行上述任一项的一种用于销项系统退货自动开具红票的方法。
23、基于本发明的另一方面,本发明提供一种电子设备,其特征在于,所述电子设备包括:处理器和存储器;其中,
24、所述存储器,用于存储所述处理器可执行指令的存储器;
25、所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一项的一种用于销项系统退货自动开具红票的方法。
26、基于本发明的另一方面,本发明提供一种用于销项系统退货自动开具红票的系统,所述系统包括:
27、初始单元,用于获取退货负数订单,以及所述退货负数订单的红票开具请求;所述退货负数订单包括退货订单号、负数金额,以及与退货订单号相对应的原始订单号;
28、确定单元,用于基于所述原始订单号匹配与所述退货负数订单相对应的原始销售订单,当与所述退货负数订单相对应的原始销售订单匹配成功后,确定所述原始销售订单的蓝票;
29、执行单元,用于对确定的所述蓝票的开票状态、可红冲金额进行校验;当所述蓝票的开票状态、可红冲金额通过校验后,基于蓝票的可红冲金额,对所述退货负数订单的负数金额进行拆分,基于拆分结果确定红票的开具张数以及每张红票的开票负数金额;
30、结果单元,用于基于确定的红票开具张数以及每张红票的开票负数金额进行红票开具。
31、优选地,所述初始单元,用于基于所述原始订单号匹配与所述退货负数订单相对应的原始销售订单,包括:
32、比对所述退货负数订单与所述原始销售订单的发票属性是否一致,所述发票属性包括:发票类型、销方税号、销方名称、含税税率标识、特殊票种标识。
33、优选地,所述执行单元,用于对确定的所述蓝票的开票状态、可红冲金额进行校验,包括:
34、校验所述蓝票的开票状态是否为开票成功,当开票状态为开票成功时,则开票状态通过校验;
35、校验所述蓝票的可红冲金额是否大于所述负数金额,当可红冲金额大于所述负数金额时,所述可红冲金额通过校验。
36、优选地,所述执行单元,用于基于所述可红冲金额,对所述退货负数订单的负数金额进行拆分,基于拆分结果确定红票的开具张数以及每张红票的开票负数金额,包括:
37、对所述可红冲金额对应的蓝票,按照剩余可红冲的金额从大到小进行排序,建立蓝票列表;
38、依次选取蓝票列表中的蓝票,直到选取的蓝票中的可红冲金额大于所述负数金额;
39、基于选取的蓝票中的可红冲金额,拆分所述负数金额,基于拆分结果,确定红票的开具张数以每张红票的开票负数金额。
40、优选地,所述结果单元,用于基于确定的红票开具张数以及每张红票的开票负数金额进行红票开具,还包括:
41、当红票的类型为普通发票时,将拆分后一张或多张红票进行提交,开具一张或多张红票。
42、优选地,所述结果单元,用于基于确定的红票开具张数以及每张红票的开票负数金额进行红票开具,还包括:
43、当红票的类型为专用发票时并且只开具一张红票时,按确定的所述原始销售订单的蓝票自动生成红票的发票信息表,基于所述发票信息表开具一张红票。
44、优选地,所述结果单元,用于基于确定的红票开具张数以及每张红票的开票负数金额进行红票开具,还包括:
45、当红票的类型为专用发票时并且开具多张红票时,确定拆分的每张红票对应蓝票,基于对应的蓝票自动生成每张红票的发票信息表,基于多张发票信息表开具多张红票。
46、本发明技术方案提供一种用于销项系统退货自动开具红票的方法及系统,其中方法包括:获取退货负数订单,以及退货负数订单的红票开具请求;退货负数订单包括退货订单号、负数金额,以及与退货订单号相对应的原始订单号;基于原始订单号匹配与退货负数订单相对应的原始销售订单,当与退货负数订单相对应的原始销售订单匹配成功后,确定原始销售订单的蓝票;对确定的蓝票的开票状态、可红冲金额进行校验;当蓝票的开票状态、可红冲金额通过校验后,基于蓝票的可红冲金额,对退货负数订单的负数金额进行拆分,基于拆分结果确定红票的开具张数以及每张红票的开票负数金额;基于确定的红票开具张数以及每张红票的开票负数金额进行红票开具。本发明技术方案提供一种销项系统根据退货交易开具红票的方法本发明应用于实际的另外一种场景:销售正数订单由于某种原因,已经被拆分,并开具了多张蓝票。退货交易对应的一张负数订单需要匹配原销售交易对应的多张蓝票,开具多张红票。本发明对负数订单的处理是一键式的,无须人工干预,针对一张负数订单,直接按需开具一张或多张红票。解决上述场景下可能需要多次触发,才能完成多张红票开具的弊端。本发明摒弃了当前的现实环境中,很多企业处理负数订单时采取的随便找一张票种和购销方相同的蓝票,即进行发票红冲操作的处理方法。本发明技术方案保证了发票数据与订单数据的严格匹配,从而保护了财务三单匹配的生态。