我不确定要键入什么搜索词。
我正在建立一个让代理商记录房租的基本系统,我已经做到了这一点没有问题。
下一步是做可重复的交易,当房租到期时,他们有什么教程或建议我应该如何完成这一壮举?
例如:
租户1需要在每月1日支付of 2的房租。
租户2需要每4周支付1 to的房租。
发布于 2011-06-08 17:58:59
在一个表中,您将拥有
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中找到某些内容时,使用Rent_date + repeatable在T2和T1 update next_due中插入current rate的事务
将这个脚本放在一个文件中,并使用cron -让它每天运行(最好是在早上)。
这只是一个快速的回答。您必须注意可重复字段(例如,表示天数或周数,或每月的每10天)。
发布于 2011-06-08 17:54:13
您应该使用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像这样..。
发布于 2011-06-08 18:05:02
你可以为每个支付记录保留四个字段- payment_date,recurring_days_interval,owe,price。然后,在每天运行的owe上,检查是否达到天数间隔,如果达到,则将price添加到当前cronjob。一旦此人支付了部分或全部账单,您就可以从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即可。
https://stackoverflow.com/questions/6276906
复制相似问题