我不确定要输入什么搜索词。
我正在建立一个基本系统,让代理记录支付的租金,我这样做没问题。
下一步是在租金到期时进行可重复的交易,他们是否有任何教程或建议我应该如何完成这项壮举?
例如:
租户 1 需要在每个月的第一天支付 2 英镑的租金。
租户 2 需要每四个星期支付 1 英镑的租金。
在一张桌子上,您将拥有
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 中找到某些内容时,将当前费率的交易插入 T2 并在 T1 中使用 Rent_date + 可重复更新 next_due
将此脚本放在一个文件中并使用 cron - 让它每天运行(最好在早上)。
这只是一个快速的答案。您必须注意可重复的字段(例如表示天数、周数或每月的第 10 天)。
您可以为每条付款记录保留四个字段 - 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
。
您应该使用 crontabs 来完成这项任务,
# 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
像这样……