林不知道要輸入的內容的搜索字詞PHP - 銀行如每月交易
我建立一個基本系統的出租代理記錄支付租金,我這樣做沒有問題。
下一步是做租房到期時的可重複交易,是他們的任何教程或建議如何完成這個壯舉?
例如:
租戶1需要在每個月的第一天支付£2租金。
租客2需要每四周支付1英鎊租金。
林不知道要輸入的內容的搜索字詞PHP - 銀行如每月交易
我建立一個基本系統的出租代理記錄支付租金,我這樣做沒有問題。
下一步是做租房到期時的可重複交易,是他們的任何教程或建議如何完成這個壯舉?
例如:
租戶1需要在每個月的第一天支付£2租金。
租客2需要每四周支付1英鎊租金。
您應該使用的crontab這個非常任務,
# m h dom mon dow user command
17 * * * * root php /path/to/hourly.php
25 6 * * * root php daily.php
47 6 * * 7 root php weekly.php
52 6 1 * * root php monthly.php
水木清華這樣的...
在一個表中,你將有
T1:
Tenant_id | repeatable | next_due
而在另一張表,你將有
T2:
Tenant_id | Rent_date
使用類似的查詢:
SELECT
*
FROM
T1 JOIN
(SELECT
tenant_id, MAX(Rent_date) LastRent
FROM
T2
GROUP BY
tenant_id
) MaxT2 on T1.tenant_id = MaxT2.tenant_id
WHERE
MaxT2.LastRent + repeatable > T1.next_due
當你在這個SELECT找到的東西,對於當前的速率和在T1更新插入到T2交易next_due與Rent_date +重複
將這個腳本文件,並使用一個cron--讓它每天運行(早晨更好)。
這只是一個快速的答案。你將不得不照顧可重複的領域(例如,代表天數或週數,或每月的第10天)。
感謝您的回覆,這就是我一直在尋找的。可重複性可能是一個問題,一些人每四周付一次,一些每月付一次。我想我可以找到一個解決方案,現在你已經提供了對查詢的洞察力。 – PHPAdam 2011-06-08 10:27:01
您可以爲每個付款記錄保留四個字段 - payment_date
,recurring_days_interval
,owe
,price
。 然後,在每天運行的cronjob上,檢查我們是否達到了天數間隔,如果是這樣,請將price
添加到當前的owe
。一旦該人支付部分或全部賬單,就從owe
減少。
,你應該每天運行查詢應該是這樣的:
UPDATE payments SET owe=COALESCE(owe, 0)+COALESCE(price, 0) WHERE recurring_days_interval IS NOT NULL AND DATE_ADD(payment_date, INTERVAL recurring_days_interval DAY) > NOW()
如果你想停止重複,只需設置recurring_days_interval
到NULL
。
除了平衡系統,我需要更多的銀行交易系統。謝謝你,你的迴應幫助我理解了這個問題。 – PHPAdam 2011-06-08 10:30:08
@PHPAdam我很高興它做了:) – 2011-06-08 10:37:01
瀏覽[cron](http://en.wikipedia.org/wiki/Cron) – JohnP 2011-06-08 09:52:46