当社の Web サイトではクレジット システムを使用して、ユーザーが安価なデジタル商品 (写真など) を購入できるようにしています。アイテムは安価であり、クレジットカード/PayPal のオーバーヘッドを低く抑えようとしているため、ユーザーにアイテムの支払いを個別に依頼するのではなく、クレジットを使用しています。
私たちは銀行ではないため、一定の時間が経過するとクレジットを失効させる必要があります。デポジット クレジットは 1 年後に失効しますが、他の種類のクレジット (ボーナス、賞品、払い戻し) の有効期間は異なる場合があります。バイヤーがアイテムを購入すると、期限切れになるクレジットを最初に使用します。
私たちの現在のシステムは、元の値と使用される残りを保存することにより、すべての預金を追跡します。もちろん、すべての購入リストも保持しています。
私は現在、従来の複式簿記システムに近いシステムに移行しています。預金は元帳項目を作成し、ユーザーの「支出」口座残高を増やします。購入ごとに台帳項目も作成され、ユーザーの「支出」アカウント残高が減少します。新しいシステムには実行中の残高がありますが、古いシステムにはありません。これにより、問題を見つけて調整を行う能力が大幅に向上します。
ユーザーのアクティビティをリプレイして各預金の残りが時間の経過とともにどうなるかを計算するのは非効率的であるため、各預金レコードに「残り」の値を添付する古いシステムを使用したくありません (ユーザーの明細書用)。
ですから、この冗長な導入の後で、私の質問は「クレジットの有効期限が切れる同様のシステムを持っている人は他にいますか?」ということです。
期限切れのすべてのクレジットの保存期間がまったく同じである場合、次の式を使用して期限切れの金額を計算できます。
総預金 - 総支出 - 有効期限が切れていない預金 = 有効期限が切れる金額
ただし、デポジットの有効期限は異なる場合があるため、この公式は機能しません。