2012-01-06 8 views
0

私は定期的な請求が含まれているアプリケーションを構築しています。請求システムの再払い

どのメンバーがサインアップして今後11ヶ月間の支払いを受け入れるのですか?どのように私はPHPでこれを処理する必要がありますか?私は別の私のSQLテーブルまたは1つの行に格納する必要がありますか?私はそれらを私のSQLテーブルに保存したい場合は、次の11ヶ月になるためにはどのようなPHP関数を取得する必要がありますか?

どのように私はcronjobを実行する必要がありますか? monthly_dueテーブルをチェックし、そのメンバーが今月保留中のメンバーをすべて取得しますか?

+3

コードはどこですか?あなたの問題は何ですか?あなたはこれまでに何を試しましたか? –

+0

@Aron Rotteveel私はいくつかの混乱があり、始めに助けが必要です。 – seoppc

答えて

1

私は、あなたのテーブルにメンバーの購読期限を保存することをお勧めします。これは(支払日+ 11ヶ月)として計算されます。

更新の原因であるメンバー、RENEWAL_DATEは(今日の日付)の間にあるだけで、リストのメンバーと(今日の日付+ 30日)を一覧表示するには

+0

素晴らしい提案、ありがとうございます。私のSQLは、(支払日+ 11ヶ月)すなわち、追加するのに十分です。 'NOW()+ 11' – seoppc

+0

MySQLのクエリやPHPコードで日付操作を行うことができます。一般的に、私の好みはコードでそれをすることです。 –

2

個人的に私は、この

サブスクリプションデータベーステーブル を行うだろう

$expire = date('Y-m-d',time() + (86400 * 365)); 
// 86400 = 24 hrs * 365 = 1 year 
:表には、このような日付を計算するPHPのサブスクリプションの有効期限が切れたときの日付(日付フィールド)

が含まれています

私は、日付フィールドは30日著名であるサブスクリプションを選択し、cronスクリプトを実行します、

が、私はそれに近づくだろうか要するにだ

延滞10日のようなもので、サブスクリプションをブロックする更新のメールを送ります

3

会員情報とは別に定期購読を保存します。これにより、すべてのサブスクリプションの完全な記録が可能になるだけでなく、可変長サブスクリプションが必要な場合にも役立ちます。

subscriptions 
------------- 
subscription_id integer 
member_id  integer 
start_date  date 
end_date   date 
date_paid  datetime 

は、その後、あなたが

のようなものを持つことができますので、今後7日以内に期限切れに任意のサブスクリプションを見つけることなどを期限切れにする程度のサブスクリプションを見つけるために、直接SQLを使用することができます:あなたのテーブルの構造は次のようなものかもしれません
SELECT 
    member_id, 
    MAX(end_date) as expires_date 
FROM 
    subscriptions 
GROUP BY 
    member_id 
HAVING 
    expires_date < DATE_ADD(CURDATE() INTERVAL 7 DAY) 
+0

ありがとう、あなたはアイデアを持っている、実際に顧客はサインアップ日付から次の11ヶ月間私たちを支払うだろう。だから私は自分の支払いを保存する必要があります、どのように今月の支払いが落ちているユーザーを取得する。 – seoppc

関連する問題