2014-09-23 90 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

這只是簡單的加法/減法,在你的腦袋通過信用卡/借記/加/減的跡象不必要的複雜,從想餘額爲零當你真的不必導致增加的混亂。