php扫描发票的金额,关于开票时发票的金额计算--newkid来看看

本帖最后由 lypch 于 2016-8-2 13:39 编辑

中国的朋友应该都知道,现在有些发票在开票的时候,进行了限制,也就是每个发票的不含税金额不能超过99999.99。

如果合同金额大于了这个金额,那么就必须分多张发票。

这个还不是最变态的,变态的下面:

1.如果分多张发票的话,多个发票的数量只能是1。(例如:如果分成两个发票的话,那么一张的数量可能是0.8,一张的数量可能是0.2)

2.发票的单价只能是通过发票的金额除以数量得到。税金=发票总金额*税率,保留两位小数。

3.最后要求所有的 发票+税金= 合同金额

现在遇到的问题是,如果我收到一个合同金额,那么开多少张发票比较好? 每张的数量是多少?单价是多少?

我希望能写代码来完成这个计算。

大家有什么好的办法吗?

补充一个新实例:

因为我们是提供服务的,所以一般发票上都是一项内容,所以数量也都是1,如果拆分发票的话,拆分后的发票上的数量不能大于1,切所有拆分发票的数量加起来必须等于1.

我举个具体的例子:

我有一个发票,不含税的金额是873835,17%税金是873835*0.17=148551.95

这个发票必须拆分,经过人为的拼凑,开了13张票据,分别是:

序号、数量、单价、   金额(不含税), 税金

1.       0.06   873835   52430.1              8913.12

2.       0.06   873835   52430.1              8913.12

3.       0.06   873835   52430.1              8913.12

4.       0.06   873835   52430.1              8913.12

5.       0.06   873835   52430.1              8913.12

6.       0.05   873835   43691.75            7427.60

7.       0.05   873835   43691.75            7427.60

8.       0.05   873835   43691.75            7427.60

9.       0.11   873835   96121.85           16340.71

10.     0.11   873835   96121.85           16340.71

11.     0.11   873835   96121.85           16340.71

12.     0.11   873835   96121.85           16340.71

13.     0.11   873835   96121.85           16340.71

以上是真实的开票数据,总金额累计后正好是873835,然后税金是:148551.95,一分不差。

因为开票的规则中,单张发票的不含税金额不能超过99999.99。然后税金是用单张发票的金额*17%得到,存在四舍五入的问题。所以要做到一分不差非常困难,而且就算有误差也必须做到所有发票累计后的总金额不能超过拆分前的总金额。

那么是否存在更好的开票方案?所以来求一个算法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值