【技术实现步骤摘要】
一种发票拆分方法及系统
[0001]本专利技术属于计算机
,具体涉及一种发票拆分方法及系统。
技术介绍
[0002]国家税务机关针对不同开票主体的经营规模,规定了不同发票类型的单张发票不含税金额上限,在实际开票操作中,通常按照国家税务机关规定对开票申请进行自动拆分。拆分的原则需要保证两个维度,即开票数量最小、金额数值准确。
[0003]现有技术的发票拆分方法包含以下几种:
[0004]一、开票时,简单地以发票金额上限为拆分标准
[0005]这种算法导致拆分后的个别发票金额相较其他发票金额差额非常大,例如:在税务机关备案的最大开票金额为1000元,则单张发票最大限额为999.99元,当需要开具1000元的发票时,则会按照999.99元+0.01元的组合拆分成两张发票,造成两者相差较大,商品的数量就会分别为0.99999和0.00001,拆分金额不合理。
[0006]二、专利CN 111144962 A所述方法
[0007]此种算法在多商品、多数量时,会出现不同发票间,商品单价不一致的情况,不够准确。
[0008]三、专利CN 107833081 A所述方法
[0009]假定开票单张限额999.99,商品数量为1,商品单价1999.98,则根据其说明书描述,n大于等于2,单张发票含税均值为1999.98/2=999.99,根据其权利要求3中第一段的描述,若所述单张发票含税均值不为整数,则将所述单张发票含税均值的整数部分的最高位的值加1,并将所述整数部分的其他位
【技术保护点】
【技术特征摘要】
1.一种发票拆分方法,其特征在于,该方法包括以下步骤:步骤一、获取待开票明细;步骤二、根据待开票明细,确定最小开票数量n;步骤三、根据待开票含税总金额M和最小开票数量n,计算单张发票最小开票金额m
min
;步骤四、根据最小开票金额m
min
,逐位取整,得到第一单张开票含税金额m
frist
;步骤五、按照各商品含税总价,从大到小依次进行排序,即可得到一个待开票明细队列m0,m1,
…
,m
Pnum
,其中,P
num
为商品种类数量且P
num
大于1,对待开票明细队列开票。2.根据权利要求1所述的一种发票拆分方法,其特征在于,所述步骤一获得的待开票明细包括商品的税率v、含税单价m
pi
和商品数量q
pi
。3.根据权利要求1所述的一种发票拆分方法,其特征在于,所述步骤二具体为:若一共有j种商品,则:n=[M
÷
m
max
]其中,m
pi
表示含税单价,q
pi
表示商品数量,m
max
表示预设的单张发票限额,[*]表示向上取整。4.根据权利要求1所述的一种发票拆分方法,其特征在于,所述步骤三通过下式计算得到单张发票最小开票金额:m
min
=M
÷
n。5.根据权利要求1所述的一种发票拆分方法,其特征在于,所述步骤四具体包括:步骤4.1,m
frist
=round(m
min
,scale,Round.up),即按照scale精度位数进行向上进位;步骤4.2,如果m
first
≤m
max
,则m
min
=m
first
,转到步骤4.4;步骤4.3,如果m
first
>m
max
,则scale=scale+1,即精度增加一位有效数字后,再次向上进位,重复4.1
‑
4.3的步骤;步骤4.4,则确定需要开具n
‑
1张含税金额为m
min
的发票,开具1张含税金额为第二开票金额m
second
=M
‑
m
min
×
(n
‑
1)的发票。6.根据权利要求1所述的一种发票拆分方法,其特征在于,所述步骤五中各商品含税总价为含税单价与商品数量之积。7.根据权利要求6所述的一种发票拆分方法,其特征在于,所述步骤五中对待开票明细队列开票具体包括:步骤5.1,令m
sum
=m0,即取第一个明细,如果m
sum
≤m
min
,跳转步骤5.3,否则跳转步骤5.2;步骤5.2,如果Δm
sum
=m
...
【专利技术属性】
技术研发人员:柳春青,李汶隆,刘文新,张亮,严义兵,徐海滨,
申请(专利权)人:四川科瑞软件有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。