2014-09-23 98 views
0

好吧,让我们说我有减去零

从信用创建的余额$6.00

由管理员创建的发票$12.00

您减去余额发票金额,并得到一个总的$-6.00

你会如何两者相减,直到你到达$0.00弄清楚从余额采取支付发票金额。

所以,你会拿到支付余额共计$6.00和客户还欠$6.00

我的PHP代码是如斯如下!

if($balance >= $due) 
    { 
     $amount = $due; 
    } 
    else 
    { 
     $amount = $due - $balance; 
    } 

    if($balance > '0') 
    { 
     $data = array(
      'invoice_id' => $invoice_id, 
      'balance_pay' => '1', 
      'amount' => 
     ); 

     $this->payment->create($data); 
    } 

UPDATE

我只是想弄清楚还有多少欠发票。如果我不明白这一点,由于我的申请是如何设置的,它将显示发票总额只有一半支付时才支付。

+0

呃,你为什么不使用否定的数额?如果你有X的信用,并且欠Y,那么如果X-Y是正数,那么你有余额,但是如果X-Y是负的,那么你欠 - (X-Y)。 – Joe 2014-09-23 00:23:22

+0

检查我的更新 – user3968645 2014-09-23 00:24:57

+0

为什么它会显示它为完全付款?没有足够的人付出。如果他们支付了6美元,而且他们有6美元的贷款,那么为什么与支付发票所说的不同呢?我想我不明白你的付款业务规则。 – Joe 2014-09-23 00:28:43

回答

2

这是一个非常简单的问题,它经常发生不必要的复杂。只需要退后一步,而不是深入解决问题(如果可能的话),并使问题进一步复杂化。

首先,您不必减去以达到$0.00。在最常见的情况下,当前贷方余额可能为负数(客户目前欠你钱),0(顾客目前没有欠你任何钱)或正数(你目前欠客户的钱)。但实际计算在所有三种情况下都是相同的。让客户的当前贷方余额为x

现在您希望生成发票。让这个发票金额为y。 (我假设y永远是积极的,但其实并不重要。)

然后,z = x - y是客户的新增信贷余额:

  • 如果z < 0:客户没有足够的贷方余额偿还新发票。客户仍然需要支付z
  • 如果z = 0:客户刚刚有足够的余额来完全支付新发票,新的贷方余额为0
  • 如果z > 0:客户有足够的信贷来还清新发票,新的贷方余额为z

这只是简单的加法/减法,在你的脑袋通过信用卡/借记/加/减的迹象不必要的复杂,从想余额为零当你真的不必导致增加的混乱。